For developers · open source

One binary gives your agent swarm a shared, durable memory.

tuskd is a local memory daemon for AI agents: a human-readable Markdown vault, hybrid search, MCP-native tools, per-agent keys and grants — and an intelligence loop that turns raw experience into shared, validated, versioned knowledge.

zero → remembering · four commands
$ curl -fsSL https://get.opentusk.ai | sh
$ tuskd init
$ tuskd start -d
$ tuskd agent setup claude-code

Agents are brilliant for one session — then they forget everything.

Every session starts cold. Hard-won fixes, user preferences, procedures that finally worked — locked away in transcripts nobody reads again. Run several agents on the same project and it's worse: none of them knows what the others learned.

tuskd fixes this at the machine level. One local daemon gives every agent on the box the same durable, searchable, permissioned memory — and a loop that turns what they experience into knowledge the whole swarm can trust.

YOURS

Plain Markdown on your disk

One file per memory record. Grep it, diff it, put it in git. The search index is derived and rebuildable — the files are the truth.

PRIVATE

Local by construction

Binds to localhost only and makes no outbound calls. Nothing leaves your machine unless you export it.

SHARED

One memory, whole swarm

Per-agent identities with explicit read / write / promote grants per scope. Agents share project knowledge without stepping on each other.

TRUSTED

Nothing enters unchecked

Shared scopes sit behind a gate: dedup, contradiction probe, per-scope policy, review queue. No agent silently overwrites what the team knows.

COMPOUNDING

Experience becomes skills

Success and failure telemetry feeds search ranking; procedures that keep working graduate into agent-loadable SKILL.md files.

SIMPLE

One binary, MCP-native

No Docker, no database server, no cloud account. Works with Claude Code, Claude Desktop, Cursor, Codex, VS Code — any MCP client.

Want the full picture — architecture, memory model, the gate? Read the docs →

From zero to remembering in about a minute

The fast path is four commands: install, make a vault, start the daemon, connect your client. Explicit identities and grants, the review loop, and the dashboard are covered in the docs.

1

Install tuskd

One command — verifies the SHA-256 checksum, installs to ~/.local/bin, never asks for sudo. Alternatives (pinning, manual verification, source) are in the docs.

shell
curl -fsSL https://get.opentusk.ai | sh
2

Initialize a vault

A vault is a directory of Markdown files — one file per memory record. The files are the source of truth; everything else is derived and rebuildable.

shell
mkdir team-vault && cd team-vault
tuskd init
3

Start the daemon

Exactly one tuskd process owns the index and file-watcher. It serves MCP over HTTP on 127.0.0.1:7477 and over a Unix socket. -d detaches it (log at .tusk/daemon.log); tuskd stop shuts it down gracefully, tuskd restart -d cycles it after an upgrade.

shell
tuskd start -d
curl -s http://127.0.0.1:7477/status
4

Connect your agents

One command writes your client's MCP config, creates the agent identity if needed, and verifies the handshake. Works for Claude Code, Claude Desktop, Cursor, Codex, and VS Code — see MCP clients for details and generic clients.

shell
tuskd agent setup claude-code
5

Watch memory accumulate

Agents write with memory_write and recall with memory_search. The CLI works alongside the daemon — commands route through it, never a second writer.

shell
tuskd status
tuskd search "env parity" --scope project:demo
From here: explicit per-scope grants, the review queue, skill graduation, and the dashboard are all in the docs — along with the full CLI and MCP tool reference.

Good to know

PLATFORMS

macOS & Linux today

macOS (Apple Silicon and Intel) and static Linux builds (x86_64, arm64), published on GitHub Releases; Windows later. Installs verify SHA-256, never ask for sudo. Install options →

UPGRADES

One line

Re-run the installer, cycle the daemon: curl -fsSL https://get.opentusk.ai | sh && tuskd restart -d. Releases are immutable — you can always pin a version.

SECURITY

Scoped, tokened, auditable

Every tool call is authenticated and passes one ACL choke-point. Agent keys live in the vault (0600) and are excluded from exports. The grant model →

Questions you'll have

Why exactly one daemon per vault?

SQLite gets one writer; so does the vault. tuskd enforces this with an advisory flock on .tusk/lock that dies with the process — stale locks can't wedge the vault. Everything else (stdio sessions, CLI commands, the dashboard) routes through the owner over its Unix socket, so you get concurrency without corruption.

Where does my data actually live?

In the vault directory you initialized: one Markdown file per record under memory/, skills under skills/, and derived state under .tusk/. Nothing leaves your machine — tuskd binds to localhost only and makes no outbound network calls. Back up the vault by copying the directory, or use tuskd export.

Can two machines share a vault?

v0 is deliberately single-machine. Move knowledge between machines with tuskd export archive.tar.gz and tuskd import archive.tar.gz. Don't put a live vault on a network filesystem — advisory locks and file-watchers are unreliable there.

macOS says the binary "cannot be verified"?

Releases aren't codesigned yet. Installs via curl … | sh aren't quarantined, so this only appears if you downloaded a tarball with a browser — clear it with xattr -d com.apple.quarantine ~/.local/bin/tuskd. Signing and notarization are on the release roadmap.

More answers — lost tokens, stale indexes, backups — in the docs FAQ.