instibrain
instibrain  /  on your device

The sync client runs on your machine. The server never sees a key.

It owns the files, the keys, and the sync. Nodes land as plain markdown you can open in any editor, secure-area pages are encrypted here before they leave, and nothing is overwritten while a conflict stands.

one folder · plain markdown · your keys · one token

this machinereal output
$ instibrain status device 9f3c1a84-62b7-4de0-9a15-7c4e2f08d331 root /home/you/brain cursor 2026-09-13T09:41:22.174382Z tracked 7 live, 2 tombstones on disk 7
no key ever reaches our server
day one

Day one starts from a folder you already have.

No import and no new editor. This is the first day, from a folder of company markdown to an agent on your phone, with the commands as they run.

  1. Point it at the folder you already have. The runbooks and notes stay where they are. On the first sync the sync client adopts each file, and the only thing it adds is a short header: id, scope and key_id.
  2. Mark the pages we must not read. Create a scope key, then put scope: finance in the header of those pages. From that sync on, they leave this device encrypted, path included.
  3. Keep working the way you do. instibrain watch syncs every save, and Claude Code on this machine reads the same plain files it read yesterday.
  4. Connect the AI on your phone. Claude on the web or on your phone connects over MCP and reads the open area. It holds no key, so the finance pages are out of its reach.
  5. When two edits collide, nothing is lost. The server's copy lands beside yours as a .conflict.md file. Merge the two, then run instibrain resolve.
the first day~/acme-brain
# the folder you have, and the server and token we issue $ export INSTIBRAIN_ROOT=~/acme-brain $ export INSTIBRAIN_REMOTE=… SYNC_TOKEN=… $ instibrain key init finance scope ready: finance — this device is its admin # add "scope: finance" to the pages we must not read $ instibrain sync pulled 0 pushed 214 adopted 214 $ instibrain watch watching /home/you/acme-brain
one thing to know first

An agent that reads a file sees what the file says: the model reads plaintext, secure-area pages included. What our server cannot read and what your AI can read are two different claims.

the cycle

Survey, pull, adopt, push. Then wait for the next change.

One cycle on demand with instibrain sync, or continuously with instibrain watch, debounced so a burst of saves is one cycle. This is a real session, output included.

~/brain  ·  two devices, one conflicting edit
$ instibrain watch pulled 12 pushed 0 adopted 0 watching /home/you/brain # a save on this device pulled 0 pushed 1 adopted 0 # the other laptop had already pushed the same node pulled 0 pushed 0 adopted 0 conflicts 1 conflict: pricing/floors.md — server copy written beside it, then 'instibrain resolve pricing/floors.md' # merge the two files by hand, or let your agent do it, then $ instibrain resolve pricing/floors.md resolved pricing/floors.md

The server copy lands as pricing/floors.conflict.md next to yours. The node stays blocked until you resolve it — no cycle will push over an open conflict.

the surface

Ten commands. Most days you use one.

The rest exist for the moments that matter: admitting a second device, taking up an admission, and making sure one lost laptop is not the end of your brain.

instibrain sync

One cycle: survey the folder, pull what changed, adopt what is new, push what you edited.

instibrain watch

A cycle now, then on every change, debounced. The one you leave running.

instibrain status

Device id, root folder, cursor, and what it tracks: live nodes, tombstones, and adoptions still pending.

instibrain resolve

Push a file you merged after a conflict. The two vectors were joined when the conflict was raised; this bumps your counter and pushes.

instibrain key init

Create a scope key this device owns. Every node in that scope is encrypted under it.

instibrain key grant

Admit another device to one scope, key included and wrapped to that device alone.

instibrain key join

Take up an admission an admin already signed. The chain is verified from genesis first.

instibrain key backup

Seal this device's keys under a passphrase, into one file you store off this machine.

instibrain key restore

Rebuild an empty device from that file, so one lost laptop is not the end of the brain.

instibrain key public

Print this device's public key. The one thing you paste elsewhere, and the only key that is safe to.

commands10

and most days you use one.

folder1

everything the sync client owns lives inside it.

areas2

open for reach, secure for the key.

keys leave0

the server stores wraps, never a key.

why a chain, not a list

Admission is a signed entry appended to a membership chain, and this device verifies that chain from its genesis entry before it accepts a scope key from it. An operator who appends itself is caught by the verification, not by our good intentions. The threat model has the detail.

a teammate's day one

One command, and their agent arrives already knowing the company.

We ship to the agent, not to the machine. A new person runs one command: the sync client installs, the scope they were granted materializes as plain files, and their agent builds the rest of its own setup from pages in the brain, because the pages carry the commands.

The scope lands as files

Everything their role may read is on the disk in minutes, in the folder their editor and their agent already open.

The agent sets itself up

Config, launchers and tool wiring are pages, so the agent reads them and builds its own environment. A page encodes intent, and survives the machine that differs.

The agent drives the sync client

Over the client's own MCP surface an agent closes a merge, pushes a file, or checks what changed, with nobody at the terminal.

Leaving is one move

Pull the scope and the agent loses the map: what exists, where it lives, how it is used. What was pulled before stays on that device, as in any encrypted store.

A hosted agent reads the brain over the brain's MCP endpoint and reaches the open area. An agent beside the sync client on your machine drives the client over its own surface, and reads what your key opens.

Plain markdown on your device, whichever area a page is in.

The sync client runs on our own machines first, exactly as described on this page. Read the protocol it speaks, or the security model that keeps us out of your secure area.