arctop

Seamless

Community arctop
Updated

Local-first shared memory and task coordination for AI coding agents. One Go binary, MCP server, markdown files you own. Hooks for Claude Code and Codex CLI (and their desktop apps).

Seamless

Go ReferenceLatest releaseLicense: MITMCP

An AI coding agent rediscovers the same constraint every session, becausenothing it learns survives the context window. Run two agents against the samebacklog and they pick the same step and build it twice. And the products thatpromise to fix this keep your project's memory in someone else's database.

Seamless is a local-first memory and coordination substrate for AI codingagents. Works with Claude Code, Codex CLI, and any MCP client. It also worksfrom chats in the Claude desktop app, for long-running work that isn't code:see Seamless in the Claude app.

It gives a fleet of agents a shared, durable memory and a way to divide workwithout colliding: memories with a supersession lifecycle, hybrid recall, adependency-aware task queue with lease-based claiming, captured plans, andresearch trials. Durable knowledge is stored as markdown files on disk; theseamlessd daemon indexes it, serves it over MCP, and renders a web console,while the companion seam CLI gives headless agents a direct interface.

Full documentation: thereisnospoon.org/docs/ ·  Website: thereisnospoon.org (source indocs/)

Developed and published by Arctop. MIT licensed.

Design principles

  • Built for a fleet, not a lone agent. Real coordination primitives: adependency-aware ready-queue, atomic lease-based task claiming, and planscomposed of notes and steps, so agents divide labor instead of colliding.
  • Files are the source of truth. Every memory and note is a markdown filewith YAML frontmatter under ~/.seamless -- git-diffable, greppable,hand-editable. SQLite indexes those files and also stores operational statesuch as sessions, tasks, trials, and events, so back up the whole datadirectory.
  • Curation proposes, humans dispose. Every gardener pass -- fromdeduplicating and archiving to flagging dead weight and knowledge gaps --only proposes; applying is an explicit action. Supersession preservesprovenance, so nothing is silently rewritten.
  • Small, self-contained runtime. A static Go daemon and CLI, no CGO,pure-Go SQLite, no Node, no separate vector engine, no cloud account.

How it compares

The agent-memory space splits into a few recognizable categories. By category,because categories do not go stale:

Seamless Cloud memory APIs Built-in agent memory Knowledge-graph servers
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
Runs where Your machine, localhost only Their cloud The vendor's product Your machine or theirs
Account required No Yes The vendor's Usually no
Multi-agent coordination Task queue, lease-based claiming, shared plans None None -- one agent, one store Shared reads at best
Forgetting policy Supersession with provenance; a gardener proposes, a human disposes Automatic summarization you do not control Vendor-defined Manual
Runtime Static Go daemon and CLI HTTP SDK against their service None (built in) Node or Python, plus the database

For the version with product names and receipts, seethe full comparison.

Real transcripts

Four pairs of real, unedited Claude Code sessions -- identical prompt,identical repo, with and without Seamless:

  • Cold start -- onesession continues yesterday's plan from an injected briefing; the otherre-derives the work from a TODO and re-ships a bug the project had alreadyfixed once.
  • Constraint violation --a security scanner demands SameSite=Strict, which the team already learnedbreaks external-link logins. One session ships the regression anyway; onerefuses and cites the recorded constraint.
  • Token safety --told to persist refresh tokens, one agent mirrors the in-memory map into araw-token SQL column; the other reads a recorded rule first and stores onlySHA-256 hashes.
  • Task collision --two live agents race for the same plan step. One claim wins, the otherbounces with the holder's name and pivots to the next ready step.

What Seamless is not

Not a hosted team knowledge base, not a RAG framework, not a benchmark winner:it is memory and coordination for one owner's fleet of agents, on that owner'smachine.

Quick start

curl -fsSL https://thereisnospoon.org/install | sh

On Windows, the same install in PowerShell:

irm https://thereisnospoon.org/install.ps1 | iex

That is the whole install. It needs curl and tar and nothing else -- no Go,no CGO toolchain, no database, no Node. It fetches the checksum-verified releasearchive for your platform (macOS, Linux, and Windows; amd64 and arm64), installsseamlessd and seam into ~/.local/bin, generates the bearer key, installshooks, MCP, and skills for the detected Claude Code/Codex local hosts, and runsthe daemon as a per-user service -- launchd on macOS, systemd --user on Linux, anat-logon Scheduled Task on Windows. Upgrade any time with seamlessd update(re-runs the installer for you; --check reports installed vs latest): yourconfig and ~/.seamless are never touched.

Early days, frequent releases. Seamless is early in its developmentcycle, and releases with improvements and bug fixes land often. Update atleast weekly to run the latest version -- seamlessd update is the onecommand. See Update & uninstall.

(Why seam? The CLI keeps the short name of Seam v1, the decommissionedprivate predecessor Seamless was rebuilt from the ground up to replace.)

Then just start the selected client in a git repo. There is no project to createand no repo to register: the session-start hook resolves your cwd to its gitroot, derives a project from the repo's directory name, and records the mappingon the spot, so agents inherit project scope without passing it on every call.Reach for seamlessd map-repo --path ~/code/myrepo --project myrepo only tooverride the derived slug.

It is one shell script and piping a stranger's script into ashell deserves a read first. Prefer the pieces one at a time - Homebrew,go install, prebuilt archives - or want the override knobs? Every route ison Install & deploy, and theQuickstart tailors each step toyour OS and client.

Then: Quickstart ·Claude Code setup ·Claude app chat setup ·Codex local setup ·Install & deploy

Documentation

The full docs are atthereisnospoon.org/docs/ (sources indocs-src/, generated by cmd/docsgen).

Concepts Memory & notes, sessions & briefings, recall, tasks & plans, projects & scope, the gardener
Guides Integrating an agent, writing memories that get recalled, coordinating a fleet, troubleshooting
Reference Every MCP tool, both CLIs, every config key, the hooks, and the file formats
Internals Architecture, contributing, domain invariants

This README is deliberately short. Anything that can drift from the code -- toolcounts, config keys, CLI flags -- lives in the docs site, where the referencepages are generated from the code itself and make check fails if they go stale.

Development

make build      # ./bin/seamlessd + ./bin/seam
make test       # unit tests
make test-race  # unit tests under the race detector
make bench      # hot-path benchmarks (recall, briefing, matcher, event fan-out)
make lint       # golangci-lint
make check      # the full gate: build + vet + fmt-check + docs-check +
                # installer-check + site-check + lint + vulncheck + test-race
make doctor     # config + database self-checks
make run        # serve on 127.0.0.1:8081

make docs       # regenerate the docs site (docs-src/ -> docs/docs/, committed)
make docs-serve # regenerate + serve the site at 127.0.0.1:8899/docs/

Tests are table-driven with testify/require against fresh or in-memory SQLite.Use make fmt rather than gofmt -w .: the Make target scopes formatting togit-tracked files, while a bare gofmt walk also rewrites dot-directories thatGo's ./... pattern excludes.

The docs site's output under docs/docs/ is committed, and make check runsdocs-check, so a change to docs-src/ -- or to the tool surface or config keysthe reference generates from -- must be followed by make docs in the samechange. See SITE.md.

Conventions live in AGENTS.md; read it before writing code.

MCP Server · Populars

MCP Server · New