Before you start
Access is invite-only right now. Myelin is pre-release and the hosted
instance has no self-serve signup, so you need a token from the project owner —
open an issue on
the repository and ask.
A token looks like myl_pat_… and is shown once.
The hosted instance is one small server, run by the project owner, with no
uptime guarantee and no support commitment. myelin pull takes your whole brain
back to your machine at any moment, so nothing you put there is trapped — but
please read security before you decide what belongs in it.
1. Install the binary, once
You need this even though the server is hosted, and the reason is the point of the whole design: your brain’s key is generated on your device and the server never receives it. There is nothing on the server that could create a key for you, so the first key has to be made locally.
git clone https://github.com/GoosesORGeese/myelin-layer.git
cd myelin-layer
make build
sudo install -m 0755 ./bin/myelin /usr/local/bin/myelin
myelin version
2. Point it at the hosted instance
myelin login https://myelin.myelin-layer.com
It asks for your token, saves it to ~/.myelin/config.json (mode 0600), and
verifies it immediately. It refuses plaintext URLs.
3. Create a brain
One brain per project is the intended shape.
myelin brains create my-project
The key is generated here, on your machine, stored in your OS keychain, and a 24-word recovery phrase is printed once.
Write the recovery phrase down, on paper, before you do anything else. Your key exists in exactly two places: your keychain and that phrase. Lose both and the brain is unrecoverable — by you, by the server, by anyone. There is no reset path, and the design is the reason there cannot be one.
4. Connect your host
You need two values: your token, and the brain’s key as a header value.
myelin key export --base64 my-project
Claude Code
claude mcp add --transport http myelin https://myelin.myelin-layer.com/mcp \
--header "Authorization: Bearer myl_pat_..." \
--header "X-Myelin-Brain: my-project" \
--header "X-Myelin-Key: <base64 key>"
Claude Desktop, or any other MCP host
The same three headers, in whatever shape your host uses for a remote MCP server:
{
"mcpServers": {
"myelin": {
"transport": "http",
"url": "https://myelin.myelin-layer.com/mcp",
"headers": {
"Authorization": "Bearer myl_pat_...",
"X-Myelin-Brain": "my-project",
"X-Myelin-Key": "<base64 key>"
}
}
}
}
Restart the host. It should list Myelin’s eighteen tools, its four resources,
and the myelin-loop prompt.
Say this part out loud before you paste it: putting the key in a connector header means that host platform now holds your key, in whatever way it stores connector configuration. That is a real reduction in the guarantee on the security page, and it is the price of reaching a brain from more than one machine. If you are only ever going to use this from one laptop, use stdio instead and the key never leaves the machine at all.
5. A first task
Nothing special is required. Use the host the way you already do; it reaches for Myelin’s tools as they become relevant.
What is worth doing deliberately on day one is stating the conventions you would otherwise re-explain every week. Durable phrasing matters: “we squash before merging, from now on” becomes a stored preference, “squash this one” does not, by design — see preferences.
Then work normally. Outcomes get logged. After the third success in one family of task, or the second time you correct the same thing, a proposal appears:
myelin proposals list
myelin proposals accept prp_7f2a
Accepting takes a snapshot first, so a change you regret is recoverable.
Checking on it
myelin stats # what this brain holds
myelin doctor # integrity, FTS sync, dangling references
myelin pull my-project # bring the whole brain down to this machine
myelin export --format md # everything, as plain readable Markdown
The Markdown export exists so that Myelin is never the only thing that can read your brain.
Staying local instead
If you only use one machine, you do not need the hosted instance at all, and the key trade-off above disappears with it. Run the server as a child process of your host over stdio:
cd ~/code/your-project
myelin init
claude mcp add myelin -- myelin serve
Nothing listens on a port, nothing crosses a network, and no platform ever holds your key. On a laptop this is the better option, and it is what the design prefers.
Running your own server
Also supported, and the right answer if you want a shared brain but not on
someone else’s box. The full procedure — user and directory setup, firewall, SSH
hardening, the systemd unit, TLS through Caddy, tenant bootstrap, backups and
incident response — is in
deploy/RUNBOOK.md.
Follow it there rather than from here; it is ordered, and the order matters in a
few places.