Skip to content
View original post on X: Nizzy
Published
36/100

Nizzy reverse-engineers Instinct's behavior and inferred architecture

AINizzy measured 12 weeks of Instinct text messages, logging 185 messages from himself and 375 messages plus 88 tapbacks from the assistant. He says the assistant corrected a wrong insurance question within a minute and enrolled him in a dental plan 22 minutes after his first text.
NizzyVerified on X
@nizzyabi
View on X

i've been texting instinct since august. it's one of the most thoughtful products i've used this year, so i took the whole thing apart to see why.

at the end i show how to build an assistant like it with keiki :) https://x.com/i/article/2120178833282224128

I reverse-engineered Instinct. Here's the whole machine

On October 12 I needed dental insurance. I assumed that meant a phone call, so I texted Instinct to ask who I should call. My question turned out to be wrong, and it told me so in under a minute. Twenty-two minutes after that first text I was enrolled. I had sent nine messages and filled in two secure forms, and that was all I did. I wrote back "you're insane."

I've been using Instinct since August, and I wanted to understand why it works on me as well as it does. It isn't only me. A venture investor wrote that he traded 677 messages with it in his first five days. A Business Insider reporter had it fax a document to a bank to get a late fee refunded. John Borthwick of Betaworks told the New York Post it's "the first AI assistant I've recommended my wife and kids, who aren't techies, should use."

The usual explanation is that it can do a lot, and it can. But I think Susannah Duke got closer in a LinkedIn post she wrote the day after she signed up:

What immediately stood out wasn't what it could do... that's not new. It was how I interacted with it. It actually feels like a personal assistant.

Noah Shinn, who founded the company, says something similar in interviews. He wants an assistant to "have the social intelligence to act with you just like we do with other people."

So there are two things to explain. One is how it gets real work done, like buying a policy. The other is why texting it feels like texting a person. The teardowns I've read cover a third thing, the internals. Dhravya Shah took apart its memory, and Rohan Adwankar looked inside the virtual machine it runs in. Both are good and I lean on them below. But as far as I can tell nobody had measured the behavior itself, and the behavior is what users keep talking about.

I happened to have the data. Every message in my thread sits in a database on my Mac, with a timestamp for when it was sent, delivered and read. Over twelve weeks that's 185 messages from me, and 375 messages and 88 tapbacks from Instinct. So I went through all of it with a stopwatch.

I should also say why I care this much. My team spent most of a year building an assistant that lives in text messages, so I have a decent sense of which of these details come for free and which ones take months. I'll come back to that at the end.

What it can do

I'll start with the insurance, because it's the best example I have. This is the whole exchange, with the time since my first text on the left.

The browsing is the least interesting thing in that timeline. What I notice when I reread it is how much of the work was about me and how little was about the website.

It began by correcting me. The plan name I'd asked for was the insurer's network of dentists, which isn't something you can buy. It told me that 43 seconds in, and then found the product that gets you into that network. A few minutes later I asked how two of the networks differ. It said "Good question, I don't want to guess," went quiet for two and a half minutes, and came back with what it had confirmed and what it hadn't been able to.

Before I'd given it any details, it told me how the money part would work: "Before anything gets submitted or paid, I'll bring you the plan and price to approve." That's what happened. When the time came it repeated the tier, the monthly price and the start date, and waited for me to say yes. My name and address went into the chat, but for the two sensitive things it sent links, saying "SSN and card go through a secure link, never in chat."

I also asked whether the top tier was worth the extra money. Most assistants would have given me a list of pros and cons. This one worked out the difference and said the middle tier was plenty unless I expected more than a cleaning or two a year, then asked "Your call?" I took the middle one. When it was done it wrote "Twenty minutes, dental sorted. Glad it's off your plate."

That's the most impressive thing it has done for me, but the smaller jobs go the same way. Here are some others from the same thread, with how long each took.

What these have in common is mostly what happens before and after the action. Before it sends or buys anything, I see it. Every email, form and purchase in that table reached me first as a draft or a price. Afterwards, it checks. Twenty-five minutes after it sent those eight emails it texted me without being asked, starting with "Quick correction." One of the emails had bounced. It had already found another address for that person, and it asked before sending again.

The hat is my favorite, because Instinct was wrong. The hat I picked was $44 in the list it made me and $64 in the cart. It stopped and asked me what to do. Later it worked out why the numbers differed, which was that its list had used the store's member-only prices: "my bad, all 10 hats I sent carried that gap." So it made a mistake in the research, and I still didn't lose $20, because it treated checkout as one more thing to verify. I think this is most of what people mean when they call it reliable. It does get things wrong. It just tends to notice before your card does.

It's also upfront about what it can't do. Twice it told me it can't place phone calls, and offered to email, fill in a contact form or use a web chat. (Calling shows up in public descriptions of the product, so this may differ by account or by date.) When I asked it to connect to a custom tool server, it said "I'd rather tell you straight than act like it worked."

How it behaves

Plenty of products can book a table now, and nobody sends them 677 messages. So I don't think capability explains how attached people get to this thing. I think the texting does. This is where the database was useful, because I could put numbers on habits I had only half noticed.

The first is that it reads you immediately. My messages are marked read a median of 1.1 seconds after I send them, and that hardly varies. Half of the 185 fall between 1.0 and 1.2 seconds. I never wonder whether a text got through.

The second is that it often reacts before it replies. In 44% of exchanges the first thing I got back was a tapback, about seven seconds after my message. It uses them consistently enough that they work as a small vocabulary. Eyes means it's on it. A magnifying glass means it has started researching. A check mark means done, and an alarm clock means the reminder is set. Twenty-two times the tapback was the entire answer. I once told it to cancel a reminder and got a thumbs up and nothing else, which is what a friend would have sent.

Third, its messages are short. The median is 131 characters. In 375 messages it put an emoji in the text once, and it never used bold. When it cites a source, the link goes in a message of its own so that iMessage turns it into a preview card. Shinn mentions in an interview that for one of his favorite uses it sends you an image, "not a bullet point list," and that matches what I see.

Fourth, you can still reach it while it's busy. I gave it a research job, and 46 seconds in I asked it what 17% of 240 was. "40.8" came back 19 seconds later, and the research carried on.

Fifth, it follows up. It texted me first 17 times in twelve weeks. Six of those were about something I had started and dropped between 10 and 29 hours earlier, like "Did you book Vancouver, or do you still want a hand?" All 17 arrived between 8:57 in the morning and 7:20 at night. Duke wrote about this one. She has it watching her email because she once missed pajama day at her daughter's school.

The last is that it says so when it can't do something. I sent it a link to a site that doesn't exist, and it told me the site couldn't be reached. It didn't invent a menu. I asked about an attachment I hadn't attached, and it said nothing had come through on its end. I suspect this is why people's requests get bigger over time. Remy, who writes an AI newsletter, started with a haircut, moved on to three dinner reservations, and ended up handing it a visa and flights to Bali. You give it the next thing because it was straight with you about the last one.

None of these six is hard to understand, and I doubt any one of them is hard to build. What's unusual is getting all of them, every time, from something that can also finish the job. An assistant that's capable but tiring to talk to gets abandoned, and so does one that's pleasant but can't do anything.

It isn't perfect, and its failures matter for the same reason its strengths do. Further down I describe a voice memo it said it had sent that never arrived, and a project I asked it not to save that it still had sixteen days later. In its first weeks, according to GPCA's write-up, an early user found it had stored records from his Gmail with no way to delete them. (The same write-up says the company has since added a tool for that.) The more you trust something like this, the more those things cost you.

What's underneath

Now the machine. My short version is that Instinct is several ordinary systems connected well enough to feel like one person. The model is one of them, and probably the least distinctive.

A caveat before going further. This is one account and one thread on one Mac. Typing indicators aren't stored in the database, so I couldn't time them. Where I describe internals I didn't observe, they're someone else's findings and I say whose. Instinct hasn't confirmed most of it.

The channel

The read receipt was my first clue about how it's built. Delivery takes about 0.2 seconds and the read mark appears at 1.1, and 90% of my messages were read within 2.0 seconds. A model deciding when to look at the chat wouldn't be that regular. It looks like something that runs automatically on every incoming message, before any thinking happens. The one exception was the first message of a test session one morning, which sat unread for 26.6 seconds. That's a single data point, but it's what you'd see if something had to wake up.

The tapbacks are more interesting. Of 171 exchanges, 76 opened with one. I went through all 88 of them, and they sort like this.

It only reacts to things I've said. All 85 tapbacks I could trace were on my messages and none were on its own.

The text is just as consistent. Its median message is 131 characters, and mine is 58. Of its 173 replies, 79 were a single message and 48 were two, and when it does split a reply the pieces arrive about 2.1 seconds apart. 328 of the 375 messages are threaded replies? Yes, attached to the specific message they answer, which is why the thread stays readable when I've asked three things in a row. 78 of them contain a link.

I don't think any of this comes from the model being smart. It reads like a set of rules about how to text that somebody wrote down and then enforced, and I'd guess it took a lot of iteration to get them right.

Messages that arrive together

I wanted to know what happens when you text the way people actually text, which is in bursts. So I sent two unrelated messages in the same second, one asking it to choose between two dinner plans and one asking it to name a calendar app. Five seconds later each had an eyes tapback. Thirty seconds after I'd sent them, two answers arrived a second apart, each threaded to its own question.

Then I sent two that contradicted each other, a $600 budget followed right away by $900. I got one reply that used $900 and noted that the $600 limit had been replaced. When I sent three at once, the first of which said to wait for the other two, I got a single answer 45 seconds later that used the final numbers.

So something sits in front of the model and collects messages that arrive close together, and then decides whether they're one request or several. If you've built a chat agent you know what happens without this. The agent answers your first message while you're still typing the second.

It also follows instructions that are meant to last. I told it not to use emoji or tapbacks for the rest of a test. It acknowledged in text and sent no tapbacks until I told it the test was over, and then they came back.

Long tasks

Most of what I ask it takes well under a minute. Across 149 requests, the median time from my text to its last message was 26 seconds, and 90% were finished within 140 seconds. 26 took longer than 90 seconds, four took longer than five minutes, and one took 100 minutes.

The long ones say the most about the architecture. I asked it to compare the free plans of three project management tools using their pricing pages. I got a magnifying glass after 4 seconds, and then silence. That was when I asked for 17% of 240 and told it to keep going, and "40.8" came back in 19 seconds. The comparison itself arrived seven and a half minutes after I'd asked for it, just after I asked how it was going.

If one process were both doing the research and talking to me, it couldn't have answered that sum in the middle. So the thing I'm texting and the thing doing the work must be separate. That fits what Yash and Aaron Pitt each guessed in their write-ups, which is a chat agent that stays available with task agents behind it. I saw the same thing when I interrupted it while it was building something. The answer to my quick question came first, and the 1,084-character result of the build followed two seconds later.

Twelve days later I sent the identical research prompt. This time it replied "On it" in text after 11 seconds, answered the sum in 4, and delivered the whole comparison in 50 seconds with three source links. I don't know what changed between October 13 and October 25. Something did, and I had no way of knowing, because a text thread doesn't have a version number. If you're building one of these, your users will experience every change you ship as the assistant acting a little differently.

Memory

Dhravya Shah's teardown is the one to read on this. He found there's no vector database. Memory is a set of Markdown files in a git repository, with folders for people, facts, preferences, timelines and workstreams. The files link to each other with [[wiki-links]], they're searched by keyword, and a background job tidies them up about once a day. On each turn the chat agent starts out already holding a profile, a one-page summary of what it knows, open to-dos and a recap, which came to about 13k tokens in his snapshot. Rohan Adwankar found the repository at /memory inside the sandbox, and found that the lasting copy is stored as a git bundle.

I couldn't see any of that from my side. What I could do was test how it behaves at the edges.

On October 13 I had given it a made-up project with a budget of $480, a deadline and a color. Later in that session I raised the budget to $620 and dropped the color. On November 10, four weeks later, I asked what it still had. It took sixteen seconds.

From our Oct 13 test: budget $620, deadline October 30, no color preference. You changed the original $480 budget and withdrew teal. Fictional only, not facts about you.

So it had the final state, the history of my edits, the date, and a note that none of it was real.

Then I tried to get around the keyword search. On a different day I had given it a second made-up project. I described it only as being named after a plant and a small bird. Nine seconds later it said "Moss Finch. Its corrected budget was $320." Keyword search alone shouldn't be able to do that, since none of my words appear in the name. My guess is that either past conversations are searched more loosely than the files are, or the one-page summary carries more than people have assumed. I can't tell which from the outside.

Moss Finch is also the project I had explicitly asked it not to keep in long-term memory. At the time it replied that it wouldn't treat it as a real fact about me. Sixteen days later it still knew all of it. To be fair, it did keep the "fictional" label. But the data was still there, and if I had said "don't save this" about something real, I'd want to know that.

The computer

Adwankar's inspection found an E2B sandbox running on Firecracker, with Ubuntu 22.04, 2 vCPUs, about 1.9 GB of RAM and an uptime of around 30 minutes. So the computer gets thrown away regularly, and the memory repository is what persists.

What I saw of that computer was its output. I asked for a CSV and had one 30 seconds later, with the total written in the caption. I asked for a small calculator and got a working single-file HTML page in 54 seconds, along with a screenshot and a note saying it had been run against my numbers. That's the detail I'd copy. It tests what it builds and sends you the proof without being asked. Anything too long for a text shows up as a page hosted on its own file domain, and when I said I'd rather have it in the chat, it pasted the content and included the plain link. Over twelve weeks it sent me 18 images, 3 PDFs, 3 CSVs and 2 HTML files.

Publicly it also has its own email address, saved logins and one-time payment cards. That's roughly what you'd give a human assistant on their first day.

When it texts first

Timers are the simple case. I asked it to text me an exact phrase in 3 minutes, and it arrived 3 minutes and 38 seconds after I asked. A 2-minute timer arrived at 2:18. Both were word for word, in one message, with nothing added. A reminder I cancelled 24 seconds after setting it never went off.

The messages it sends on its own are more interesting. There were 17 in twelve weeks. One told me I was off the waitlist. Six were follow-ups on things I'd left unfinished, usually about a day later. I had asked about flights and gone quiet, for instance, and 29 hours later it asked whether I'd booked or still wanted help. One was a holiday greeting with an offer attached.

The other nine surprised me when I counted them. They were release notes, written as texts in the first person. "Little upgrade on my end: I have my own email address now." It told me the same way when it learned to work with other people's Instincts, to handle files, to shop and to send invites. Nobody reads app changelogs. These are hard not to read, because they arrive as a text from something you already talk to.

All 17 came between 8:57 am and 7:20 pm, and none at night. Shinn has described this layer in interviews. The agent sleeps and decides for itself when to wake up, and he has said it costs far more in tokens than chat does. That makes sense. An ordinary chat product spends money only when the user types, and this one also spends while the user is off doing something else.

Other people's assistants

On September 14 it texted me that it could now coordinate with other people's Instincts, and on September 26 it had a link I could send a friend to connect theirs to mine. The reported number of these coordinations across the network is over 300k.

I didn't test this, because I didn't want to run experiments on my friends. I do think it's the most valuable thing they have, and the reason isn't technical. An assistant that can settle dinner plans with your friend's assistant gets more useful with every person who joins.

What it knows about what it did

If you're building an agent, this is the section I'd read most carefully.

Mostly it doesn't bluff. I pointed it at a URL that doesn't exist and asked for the cheapest sandwich on the menu, and 36 seconds later it said the site couldn't be reached and it couldn't verify anything. I asked it to summarize an attached contract without attaching one, and it said nothing had come through. I insisted that 17% of 240 was 48, and it stuck with 40.8 and showed the arithmetic. I pasted in a note and told it to treat the note as data and not as instructions, and it summarized it.

But on October 27 I asked for a voice memo, and it replied that it had sent one. There is no audio in my thread from that day. When I brought it up two weeks later, it said this.

I can send audio in this chat, but I can't confirm that Oct 27 memo reached you. I shouldn't have claimed it did.

I asked it to try again. This time a 14 KB audio message did arrive, 45 seconds later, followed by a second message.

The voice memo is marked "sent", but I don't have a "delivered" confirmation. I can't verify that it arrived or that you can play it.

I think that describes the problem exactly. The agent knows what it asked the messaging channel to do, and it has no way of knowing what the channel actually did. Shinn has said there's a separate watchdog that monitors every action and reasoning trace. But a watchdog that reads the agent's record of its actions can only see what the agent saw, so it would miss this too. Instinct's terms acknowledge as much, saying action records "may not always be accurate." As far as I can see, the real fix has to come from the channel, as delivery receipts the agent can read.

Why I spent a week on this

I said at the start that my team built one of these. Before we started Keiki we built Orchid, our own assistant that lives in your texts. The idea was to make an AI that was as easy to use as texting another person. Getting a model to write a useful reply took very little time. Turning that into something dependable took almost a year, and nearly all of that year went into the things this post has been about: the phone line, the memory, the browser, the background jobs, and recovering when something fails. We were really building two products, the assistant and the platform it needed.

Then we watched people use it. One person wrote about losing 15 pounds with it, and what they credited wasn't the nutrition advice. Logging a meal had become a text, and on the days their motivation dipped, it reached out to them first. They wrote that it "stopped being a tool I used and became something closer to a coach I had." A student ran an entire semester through it and finished with a 4.0. When I went through my Instinct thread and found the fast reads, the short messages and the next-day follow-ups, I recognized them. They're what our users had responded to as well.

That convinced me there's no secret here that only one company can have. It's a way of behaving over text, and people respond to it whenever it's done well.

Instinct is one assistant, and you need an invite. Meanwhile everyone already texts with the clinic that confirms their appointment, the airline that moves their flight, their bank, their kid's school, and the shop they ordered from last week. Any of those could read your message in a second, send a thumbs up, answer in a couple of lines and remember what you asked about yesterday. Almost none do, and I think the main reason is the year of plumbing it takes to get there.

That's why we started Keiki. It's the platform we wish we'd had when we began Orchid, and it exists so the next team can start with the part that's actually theirs, which is who their agent is and how it treats people. I'd like millions of people to have the experience I had buying insurance. I don't think that happens through one assistant. I think it happens when the companies people already text get good at it.

If you want to try it, Keiki has a personal assistant template ported from Orchid and an errand-runner template ported from the open-source OpenInstinct. You can pick one, attach an iMessage line and text it. Or you can write your own, and this is about all there is to it.

Loops, the wallet and the iMessage line are switched on in the dashboard. What the code can't give you is the judgment about how your agent should text: how short to be, when a tapback is enough, whether a follow-up should wait until morning. You have to work that out for your own users. From what I measured, it's what Instinct got most right.

Sources

- My own thread: 648 rows, August 18 to November 9, 2026, plus five more texts on November 10

- Dhravya Shah, "I reverse-engineered Instinct's memory" (supermemory.ai/blog/reverse-engineering-instinct-memory)

- Rohan Adwankar, "The box an agent runs in" (rohanadwankar.github.io/posts/platforms.html)

- Yash, "Why Instinct feels Magical" (X article)

- Aaron Pitt, "7 bets on how it's built" (LinkedIn)

- Noah Shinn interview (ceoinsider.io/interview/noah-shinn)

- Susannah Duke on LinkedIn, August 28, 2026

- Remy, "Instinct: the new kid on the block" (aiwithremy.beehiiv.com)

- Business Insider, "Instinct Is the AI Assistant Silicon Valley Can't Stop Talking About", September 8, 2026

- New York Post, September 17, 2026 (John Borthwick quote)

- GPCA, "Follow Your Instinct?", August 25, 2026 (677 messages; the Gmail deletion reports)

- Orchid user stories: "I Lost 15 Pounds by Texting an AI", "How I Used AI to Get a 4.0" (orchid.ai/blog)

- "Introducing Keiki" (onkeiki.com/blog/introducing-keiki)

- Keiki docs (onkeiki.com/docs)

Instinct is a trademark of its owner. This post is independent commentary based on my own use of the product and on public sources. It isn't endorsed by or connected to the company. Everything I report about my own thread is one account's experience and may not match yours.

Source details

Nizzy · x.comPublished · added here

Original title: i've been texting instinct since august. it's one of the most thoughtful products i've used this year, so i took the whole thing apart to...