{
  "markdown": "# Seamless\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/0spoon/seamless.svg)](https://pkg.go.dev/github.com/0spoon/seamless)\n[![Latest release](https://img.shields.io/github/v/release/0spoon/seamless)](https://github.com/0spoon/seamless/releases/latest)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![MCP](https://img.shields.io/badge/MCP-compatible-6f42c1)](https://thereisnospoon.org/docs/reference/mcp/)\n\nAn AI coding agent rediscovers the same constraint every session, because\nnothing it learns survives the context window. Run two agents against the same\nbacklog and they pick the same step and build it twice. And the products that\npromise to fix this keep your project's memory in someone else's database.\n\nSeamless is a local-first memory and coordination substrate for AI coding\nagents. Works with Claude Code, Codex CLI, and any MCP client.\n\nIt gives a fleet of agents a shared, durable memory and a way to divide work\nwithout colliding: memories with a supersession lifecycle, hybrid recall, a\ndependency-aware task queue with lease-based claiming, captured plans, and\nresearch trials. Durable knowledge is stored as markdown files on disk; the\n`seamlessd` daemon indexes it, serves it over MCP, and renders a web console,\nwhile the companion `seam` CLI gives headless agents a direct interface.\n\n**Full documentation: [thereisnospoon.org/docs/](https://thereisnospoon.org/docs/)**\n&nbsp;·&nbsp; Website: [thereisnospoon.org](https://thereisnospoon.org) (source in\n[`docs/`](docs/))\n\n## Design principles\n\n- **Built for a fleet, not a lone agent.** Real coordination primitives: a\n  dependency-aware ready-queue, atomic lease-based task claiming, and plans\n  composed of notes and steps, so agents divide labor instead of colliding.\n- **Files are the source of truth.** Every memory and note is a markdown file\n  with YAML frontmatter under `~/.seamless` -- git-diffable, greppable,\n  hand-editable. SQLite indexes those files and also stores operational state\n  such as sessions, tasks, trials, and events, so back up the whole data\n  directory.\n- **Curation proposes, humans dispose.** Every gardener pass -- from\n  deduplicating and archiving to flagging dead weight and knowledge gaps --\n  only *proposes*; applying is an explicit action. Supersession preserves\n  provenance, so nothing is silently rewritten.\n- **Small, self-contained runtime.** A static Go daemon and CLI, no CGO,\n  pure-Go SQLite, no Node, no separate vector engine, no cloud account.\n\n## How it compares\n\nThe agent-memory space splits into a few recognizable categories. By category,\nbecause categories do not go stale:\n\n| | Seamless | Cloud memory APIs | Built-in agent memory | Knowledge-graph servers |\n|---|---|---|---|---|\n| Storage format | Markdown files on your disk; SQLite indexes them and stores operational state | Their database, reached by API key | Vendor-managed store inside one product | A graph database, often a separate server |\n| Runs where | Your machine, localhost only | Their cloud | The vendor's product | Your machine or theirs |\n| Account required | No | Yes | The vendor's | Usually no |\n| Multi-agent coordination | Task queue, lease-based claiming, shared plans | None | None -- one agent, one store | Shared reads at best |\n| Forgetting policy | Supersession with provenance; a gardener proposes, a human disposes | Automatic summarization you do not control | Vendor-defined | Manual |\n| Runtime | Static Go daemon and CLI | HTTP SDK against their service | None (built in) | Node or Python, plus the database |\n\nFor the version with product names and receipts, see\n[the full comparison](https://thereisnospoon.org/compare/).\n\n## Real transcripts\n\nFour pairs of real, unedited Claude Code sessions -- identical prompt,\nidentical repo, with and without Seamless:\n\n- **[Cold start](https://thereisnospoon.org/scenarios/cold-start/)** -- one\n  session continues yesterday's plan from an injected briefing; the other\n  re-derives the work from a `TODO` and re-ships a bug the project had already\n  fixed once.\n- **[Constraint violation](https://thereisnospoon.org/scenarios/constraint-violation/)** --\n  a security scanner demands `SameSite=Strict`, which the team already learned\n  breaks external-link logins. One session ships the regression anyway; one\n  refuses and cites the recorded constraint.\n- **[Token safety](https://thereisnospoon.org/scenarios/token-safety/)** --\n  told to persist refresh tokens, one agent mirrors the in-memory map into a\n  raw-token SQL column; the other reads a recorded rule first and stores only\n  SHA-256 hashes.\n- **[Task collision](https://thereisnospoon.org/scenarios/task-collision/)** --\n  two live agents race for the same plan step. One claim wins, the other\n  bounces with the holder's name and pivots to the next ready step.\n\n## What Seamless is not\n\nNot a hosted team knowledge base, not a RAG framework, not a benchmark winner:\nit is memory and coordination for one owner's fleet of agents, on that owner's\nmachine.\n\n## Quick start\n\n```bash\ncurl -fsSL https://thereisnospoon.org/install | sh\n```\n\nOn Windows, the same install in PowerShell:\n\n```powershell\nirm https://thereisnospoon.org/install.ps1 | iex\n```\n\nThat is the whole install. It needs `curl` and `tar` and nothing else -- no Go,\nno CGO toolchain, no database, no Node. It fetches the checksum-verified release\narchive for your platform (macOS, Linux, and Windows; amd64 and arm64), installs\n`seamlessd` and `seam` into `~/.local/bin`, generates the bearer key, installs\nhooks, MCP, and skills for the detected Claude Code/Codex local hosts, and runs\nthe daemon as a per-user service -- launchd on macOS, systemd `--user` on Linux, an\nat-logon Scheduled Task on Windows. Upgrade any time with `seamlessd update`\n(re-runs the installer for you; `--check` reports installed vs latest): your\nconfig and `~/.seamless` are never touched.\n\n> **Early days, frequent releases.** Seamless is early in its development\n> cycle, and releases with improvements and bug fixes land often. Update at\n> least weekly to run the latest version -- `seamlessd update` is the one\n> command. See [Update & uninstall](https://thereisnospoon.org/docs/updating/).\n\n(Why `seam`? The CLI keeps the short name of Seam v1, the decommissioned\nprivate predecessor Seamless was rebuilt from the ground up to replace.)\n\nThen just start the selected client in a git repo. There is no project to create\nand no repo to register: the session-start hook resolves your cwd to its git\nroot, derives a project from the repo's directory name, and records the mapping\non the spot, so agents inherit project scope without passing it on every call.\nReach for `seamlessd map-repo --path ~/code/myrepo --project myrepo` only to\noverride the derived slug.\n\nIt is [one shell script](docs/install) and piping a stranger's script into a\nshell deserves a read first. Prefer the pieces one at a time - Homebrew,\n`go install`, prebuilt archives - or want the override knobs? Every route is\non [Install & deploy](https://thereisnospoon.org/docs/install/), and the\n[Quickstart](https://thereisnospoon.org/docs/quickstart/) tailors each step to\nyour OS and client.\n\nThen: [Quickstart](https://thereisnospoon.org/docs/quickstart/) ·\n[Claude Code setup](https://thereisnospoon.org/docs/claude-code/) ·\n[Claude app chat setup](https://thereisnospoon.org/docs/claude-app/) ·\n[Codex local setup](https://thereisnospoon.org/docs/codex-cli/) ·\n[Install & deploy](https://thereisnospoon.org/docs/install/)\n\n## Documentation\n\nThe full docs are at\n**[thereisnospoon.org/docs/](https://thereisnospoon.org/docs/)** (sources in\n[`docs-src/`](docs-src/), generated by [`cmd/docsgen`](cmd/docsgen/)).\n\n| | |\n|---|---|\n| [Concepts](https://thereisnospoon.org/docs/concepts/) | Memory & notes, sessions & briefings, recall, tasks & plans, projects & scope, the gardener |\n| [Guides](https://thereisnospoon.org/docs/guides/) | Integrating an agent, writing memories that get recalled, coordinating a fleet, troubleshooting |\n| [Reference](https://thereisnospoon.org/docs/reference/) | Every MCP tool, both CLIs, every config key, the hooks, and the file formats |\n| [Internals](https://thereisnospoon.org/docs/internals/) | Architecture, contributing, domain invariants |\n\nThis README is deliberately short. Anything that can drift from the code -- tool\ncounts, config keys, CLI flags -- lives in the docs site, where the reference\npages are generated from the code itself and `make check` fails if they go stale.\n\n## Development\n\n```\nmake build      # ./bin/seamlessd + ./bin/seam\nmake test       # unit tests\nmake test-race  # unit tests under the race detector\nmake bench      # hot-path benchmarks (recall, briefing, matcher, event fan-out)\nmake lint       # golangci-lint\nmake check      # the full gate: build + vet + fmt-check + docs-check +\n                # installer-check + site-check + lint + vulncheck + test-race\nmake doctor     # config + database self-checks\nmake run        # serve on 127.0.0.1:8081\n\nmake docs       # regenerate the docs site (docs-src/ -> docs/docs/, committed)\nmake docs-serve # regenerate + serve the site at 127.0.0.1:8899/docs/\n```\n\nTests are table-driven with `testify/require` against fresh or in-memory SQLite.\nUse `make fmt` rather than `gofmt -w .`: the Make target scopes formatting to\ngit-tracked files, while a bare `gofmt` walk also rewrites dot-directories that\nGo's `./...` pattern excludes.\n\nThe docs site's output under `docs/docs/` is committed, and `make check` runs\n`docs-check`, so a change to `docs-src/` -- or to the tool surface or config keys\nthe reference generates from -- must be followed by `make docs` in the same\nchange. See [`SITE.md`](SITE.md).\n\nConventions live in [`AGENTS.md`](AGENTS.md); read it before writing code.\n",
  "bytes": 9783,
  "sha": "9322f83f33b741aa3ad30841f7d5acd288e99b88304c5e9792ea41ba2f90b909",
  "repo_slug": "0spoon/seamless",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_0spoon_seamless_a9f37f0b/readme"
}