Installer & Doctor
The @thinkfleet/memmesh npm package is a thin shim: it doesn’t implement
memory. It locates the thinkfleet-memory engine binary and hands your command
off to it — the engine is what writes the MCP config and runs the local (stdio)
server.
npx @thinkfleet/memmesh installNode stdlib only, no dependencies, so npx is instant. If the engine binary is
already on your $PATH, you can skip the shim and call it directly:
thinkfleet-memory install.
How the shim finds the engine
The shim resolves the binary in this order:
$THINKFLEET_BINARY— an explicit absolute path (override).thinkfleet-memory/thinkfleeton your$PATH.- A cached download at
~/.thinkfleet-memory/bin/<version>/. - A download from
$MEMMESH_RELEASE_BASEfor your platform+arch, cached then executed. - Otherwise it prints guidance and exits non-zero.
The prebuilt binary release channel isn’t live yet. Step 4 (auto-download)
will fail until releases are published. Until then, use a binary you already have
via $THINKFLEET_BINARY or a $PATH install, or build one from source with
cargo build --release (produces target/release/thinkfleet-memory).
Environment knobs
| Variable | Purpose | Default |
|---|---|---|
THINKFLEET_BINARY | Absolute path to an engine binary — skips download entirely. | — |
MEMMESH_ENGINE_VERSION | Engine version the shim targets. | 0.1.0 |
MEMMESH_RELEASE_BASE | Base URL for prebuilt engine binaries. | https://downloads.memmesh.ai/thinkfleet-memory |
THINKFLEET_MEMORY_DB | Path to the local SQLite DB the engine reads/writes. | ~/.thinkfleet-memory/memory.db |
Example — use a locally built binary:
THINKFLEET_BINARY=/Users/you/thinkfleet-memory-engine/target/release/thinkfleet-memory \
npx @thinkfleet/memmesh install --tool claude-codeInstall flags
These pass straight through to the engine’s install subcommand:
| Flag | Effect |
|---|---|
--tool <id> | Target one tool (repeatable): claude-code, cursor, windsurf, codex. Omit to wire every detected tool. |
--dry-run | Show what would change without writing anything. |
--force | Install even if the tool isn’t auto-detected (creates the config from scratch). |
--skill-only | Install just the agent skill, skip the MCP config. |
--mcp-only | Install just the MCP config, skip the skill. |
--no-hooks | Skip the Claude Code auto-observe UserPromptSubmit hook (installed by default). |
--binary <path> | Override the binary path written into the MCP configs. |
Where each tool’s config and skill land:
| Tool | MCP config | Skill / rules |
|---|---|---|
| Claude Code | ~/.claude.json | ~/.claude/skills/thinkfleet-memory/ (+ hook in ~/.claude/settings.json) |
| Cursor | ~/.cursor/mcp.json | ~/.cursor/rules/thinkfleet-memory/ |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | ~/.codeium/windsurf/memories/ |
| Codex CLI | ~/.codex/config.toml | ~/.codex/instructions/thinkfleet-memory/ |
Doctor — is memory actually working?
doctor is a read-only diagnostic. It reports, per detected tool, whether the MCP
entry is present and points at the right binary, whether the skill and (for Claude
Code) the hook are wired, plus engine and DB health.
thinkfleet-memory doctor| Flag | Effect |
|---|---|
--json | Machine-readable output (for scripts / the desktop app). |
--remediate | Compute a fix plan for every issue and execute it. Idempotent. |
--remediation-plan | Print the plan that would run, but don’t execute. |
--yes | Skip the interactive confirmation (required for cron / CI). |
--max-usd <n> | Aggregate cost cap; refuse a plan that exceeds it. |
If a check fails, doctor tells you to re-run install to repair, or use
doctor --remediate to auto-fix.
Pair a local install to a hosted account
Mesh Router (hosted) — coming soon. The hosted service these commands pair
against is still in development. The [sync] config and config set-sync flow
below exist in the engine today, but there is no public hosted endpoint to point
them at yet.
The engine’s ~/.thinkfleet-memory/config.toml holds an optional [sync]
section. When present, the engine can push local memories to a central project;
when absent, it stays fully local (the default).
[sync]
url = "https://app.memmesh.ai"
token = "<bearer token>"
platform_id = "<your platform id>"
interval_seconds = 30You don’t hand-edit this — the config set-sync command writes it atomically:
thinkfleet-memory config set-sync \
--url https://app.memmesh.ai \
--token <bearer token> \
--platform-id <your platform id>Related commands:
thinkfleet-memory config show— print the resolved config (env + file merged).thinkfleet-memory config clear-sync— drop back to local-only mode.thinkfleet-memory sync— run one sync cycle now (useful from CI / scripts).
See also
- Claude Code — the recommended, fully worked setup.
- MCP tools — the full tool surface an agent can call.
- Configuration — env vars for the self-hosted HTTP server.