Install and connect your first tools
Go from the signed release archive to a working local MCP connection, and verify the same memory from the desktop app, the terminal, and the coding tool itself.Outcome and prerequisites
You will install Synapse, install its command-line tool, connect at least one coding tool, store one harmless memory, and see that same record through three separate surfaces. By the end you will also know exactly which files were touched and how to take every one of them back.
- Apple-silicon Mac running macOS 13 or later.
- Codex, Claude Code, or both installed and on
PATH. - The latest
synapse.ziprelease archive. - About twenty minutes.
-
Move the app somewhere permanent, then open it
Extract
synapse.zip, move synapse.app to Applications, and open it. The app is Developer ID signed and notarized, so it opens without a security override and without a right-click workaround. -
Install the CLI
Open Synapse Settings and choose Install CLI, or run the installer from inside the bundle. Either way it reports where it landed:
Installed /Users/example/.local/bin/synapse Add /Users/example/.local/bin to PATH to use synapse from your shell.Open a new terminal and confirm the shell can find it:
synapse version synapse pathsynapse 0.1.0-beta.24data /Users/example/Library/Application Support/synapse soul /Users/example/Library/Application Support/synapse/SOUL.md cli /Users/example/.local/bin/synapseIf the shell cannot find
synapse, add~/.local/bintoPATHand start another shell. Thedatapath above must match what the app reports on its Settings screen — if the two differ, something has setSYNAPSE_DATAin one context and not the other, and they are reading different stores. -
Connect a detected tool
Return to the dashboard. Each supported tool appears as a row with its state. Choose Connect beside Codex, Claude Code, or pi, and the row moves from detected to connected. Connect the others too if you have them — the whole point is one memory behind all of them.
Detection is not a guess. Synapse parses the actual entry named
synapsein the tool's own configuration and reports connected only when the stored command resolves to the expected executable and its arguments are exactly["mcp"]. A tool whose binary was deleted or moved reads as stale, not healthy. -
Know what connecting actually wrote
This is worth understanding now rather than the first time something looks wrong. Connecting is not a black box — it is four specific changes, and every one is reversible.
Change Where How it is made The MCP server ~/.codex/config.tomlor~/.claude.jsonThrough the tool's own mcp addcommand, not by editing its file directly.A guidance pointer ~/.codex/AGENTS.mdor~/.claude/CLAUDE.mdAppended inside a managed block. Your own text is untouched. A session hook ~/.claude/settings.jsonClaude Code only. Runs synapse sessionat session start.A status line ~/.claude/settings.jsonClaude Code only, and only if you do not already have one. Yours is reported, never replaced. Every changed file gets a
.synapsebackupsibling before it is replaced, and the whole operation rolls back if any step fails. Check the shared guidance file was created:synapse guidance showSOUL.md /Users/example/Library/Application Support/synapse/SOUL.md exists true pointers 2/2 consolidated falseA full count —
pointers 3/3with all three tools connected — means each one points at a single editableSOUL.md. That file is yours to edit; it is where shared guidance for every connected tool lives. -
Restart the tool and read its first line
Close and reopen the connected tool so it loads the new MCP server. A running session keeps the tool list it started with, so this step is not optional.
Claude Code will print a line beside its welcome box before the model has written anything:
Synapse connected · no memories yetThat line comes from the session hook, which is the only way to state the connection before the first reply. It also hands the session this project's memory directly, so a Claude Code session starts already holding what the project has decided rather than being asked to go and look. On an empty store there is nothing to hand over yet, which is what you are seeing.
Codex has no session hook, so it reports the connection in its first reply instead, following the guidance in
SOUL.md. Either way, ask the tool what Synapse tools it has. The answer should includeremember,recall, andvaultstatus— three, not more. The sixteen mesh tools appear only when you switch the mesh on. -
Store one memory
Tell the connected tool:
Remember this confirmed tutorial convention: documentation examples use the source label synapsetutorial.
It should call
rememberwith the current project root and report a numeric ID. Use an ordinary convention for this — memory is plain text readable by every connected tool, so never put a token, password, or private key in it. -
Verify the same record three ways
One store, three surfaces. Check all of them, because a mismatch here is the clearest signal that something is pointed at the wrong place.
synapse memory list synapsetutorial1 project:/Users/example/project synapsetutorial Documentation examples use the source label synapsetutorial.The columns are the ID, the scope and project it belongs to, the source label, and the body. Now the exact record:
synapse memory show 1Memory #1 Scope: project Project: /Users/example/project Source: synapsetutorial Created: 1785776940 Documentation examples use the source label synapsetutorial.Finally, open the Memories screen in the app and search for
synapsetutorial. The body, source, and scope must match what the terminal just printed. At this point the coding tool, the CLI, and the desktop app are provably reading one local database.
If something is not right
| Symptom | What it usually means |
|---|---|
| The tool lists no Synapse tools | It was not restarted after connecting. Close it fully and reopen. |
| The dashboard row says stale | The app moved after the connection was made. Choose Repair. |
synapse: command not found | ~/.local/bin is not on PATH, or the shell has not been restarted. |
| CLI and app show different memory counts | They are on different data directories. Compare synapse path with the app's Settings screen. |
| The tool reports a connection that is not there | Run synapse doctor. It reports what is actually configured rather than what should be. |
synapse doctor
That one command is also what to attach to a bug report. It carries no memory contents and no secret names, so it is safe to paste into a public issue.
Undoing all of it
synapse disconnect claude # or codex, or nothing for every tool
Disconnecting removes only what Synapse wrote: the MCP entry, the managed block in the instruction file, the session hook, and the status line — and only if that status line is the one Synapse installed. Your own words in CLAUDE.md, your own status line, and every memory survive it. Removing memory is a separate, explicit decision covered in Check, migrate, and remove Synapse.
Next step
Continue with Carry one decision between tools to prove a real handoff across a session boundary and a tool boundary.