Seamless

io.github.arctopv0.6.0Updated Oct 9, 2026

Local-first shared memory and task coordination for AI coding agents. Go daemon plus headless CLI.

Overview

AI-generated overview

Seamless gives AI coding agents a local, shared memory and a task queue so multiple agents can recall past decisions and divide work without colliding.

What it does
It runs a local daemon and CLI that store durable memories and notes as markdown files on disk, indexed by SQLite and served over MCP. Agents get hybrid recall of past constraints and decisions, a dependency-aware task queue with lease-based claiming, captured plans, and research trials. A gardener pass proposes deduplication, archiving, and gap flagging, but applying changes is an explicit human action, and supersession preserves provenance.
When to use it
Worth adding when you run one or more AI coding agents on the same repository and want knowledge to survive context windows, or when two agents might otherwise pick the same plan step and build it twice. It is aimed at a single owner's fleet of agents on that owner's machine, not a hosted team knowledge base.
Requirements
A local process on the user's machine; the manifest declares no packages, authentication, environment variables, or headers. The README says the installer needs curl and tar, installs the seamlessd daemon and seam CLI, generates a bearer key, and runs the daemon as a per-user service on macOS, Linux, or Windows. No Go, Node, database, or cloud account is required.
Before you install
The README notes the install is a shell script piped into a shell and recommends reading it first, with Homebrew, go install, or prebuilt archives as alternatives. A bearer key is generated during install. Memories and notes are written to a local data directory, and the README advises backing up the whole directory because SQLite also holds operational state. The project describes itself as early in development with frequent releases.

Installation

In SourceWeft

  1. Open Seamless in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Seamless

[Go Reference] [Latest release] [License: MIT] [MCP]

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

Seamless is a local-first memory and coordination substrate for AI coding agents. Works with Claude Code, Codex CLI, and any MCP client. It also works from 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 work without colliding: memories with a supersession lifecycle, hybrid recall, a dependency-aware task queue with lease-based claiming, captured plans, and research trials. Durable knowledge is stored as markdown files on disk; the seamlessd 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 in docs/)

Developed and published by Arctop. MIT licensed.

Design principles

  • Built for a fleet, not a lone agent. Real coordination primitives: a dependency-aware ready-queue, atomic lease-based task claiming, and plans composed of notes and steps, so agents divide labor instead of colliding.
  • Files are the source of truth. Every memory and note is a markdown file with YAML frontmatter under ~/.seamless -- git-diffable, greppable, hand-editable. SQLite indexes those files and also stores operational state such as sessions, tasks, trials, and events, so back up the whole data directory.
  • Curation proposes, humans dispose. Every gardener pass -- from deduplicating and archiving to flagging dead weight and knowledge gaps -- only proposes; applying is an explicit action. Supersession preserves provenance, 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:

SeamlessCloud memory APIsBuilt-in agent memoryKnowledge-graph servers
Storage formatMarkdown files on your disk; SQLite indexes them and stores operational stateTheir database, reached by API keyVendor-managed store inside one productA graph database, often a separate server
Runs whereYour machine, localhost onlyTheir cloudThe vendor's productYour machine or theirs
Account requiredNoYesThe vendor'sUsually no
Multi-agent coordinationTask queue, lease-based claiming, shared plansNoneNone -- one agent, one storeShared reads at best
Forgetting policySupersession with provenance; a gardener proposes, a human disposesAutomatic summarization you do not controlVendor-definedManual
RuntimeStatic Go daemon and CLIHTTP SDK against their serviceNone (built in)Node or Python, plus the database

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

Real transcripts

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

  • Cold start -- one session continues yesterday's plan from an injected briefing; the other re-derives the work from a TODO and re-ships a bug the project had already fixed once.
  • Constraint violation -- a security scanner demands SameSite=Strict, which the team already learned breaks external-link logins. One session ships the regression anyway; one refuses and cites the recorded constraint.
  • Token safety -- told to persist refresh tokens, one agent mirrors the in-memory map into a raw-token SQL column; the other reads a recorded rule first and stores only SHA-256 hashes.
  • Task collision -- two live agents race for the same plan step. One claim wins, the other bounces 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's machine.

Quick start

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

On Windows, the same install in PowerShell:

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 release archive for your platform (macOS, Linux, and Windows; amd64 and arm64), installs seamlessd and seam into ~/.local/bin, generates the bearer key, installs hooks, MCP, and skills for the detected Claude Code/Codex local hosts, and runs the daemon as a per-user service -- launchd on macOS, systemd --user on Linux, an at-logon Scheduled Task on Windows. Upgrade any time with seamlessd update (re-runs the installer for you; --check reports installed vs latest): your config and ~/.seamless are never touched.

Early days, frequent releases. Seamless is early in its development cycle, and releases with improvements and bug fixes land often. Update at least weekly to run the latest version -- seamlessd update is the one command. See Update & uninstall.

(Why seam? The CLI keeps the short name of Seam v1, the decommissioned private 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 create and no repo to register: the session-start hook resolves your cwd to its git root, derives a project from the repo's directory name, and records the mapping on the spot, so agents inherit project scope without passing it on every call. Reach for seamlessd map-repo --path ~/code/myrepo --project myrepo only to override the derived slug.

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

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

Documentation

The full docs are at thereisnospoon.org/docs/ (sources in docs-src/, generated by cmd/docsgen).

ConceptsMemory & notes, sessions & briefings, recall, tasks & plans, projects & scope, the gardener
GuidesIntegrating an agent, writing memories that get recalled, coordinating a fleet, troubleshooting
ReferenceEvery MCP tool, both CLIs, every config key, the hooks, and the file formats
InternalsArchitecture, contributing, domain invariants

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

Development

make build      # ./bin/seamlessd + ./bin/seammake test       # unit testsmake test-race  # unit tests under the race detectormake bench      # hot-path benchmarks (recall, briefing, matcher, event fan-out)make lint       # golangci-lintmake check      # the full gate: build + vet + fmt-check + docs-check +                # installer-check + site-check + lint + vulncheck + test-racemake doctor     # config + database self-checksmake 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 to git-tracked files, while a bare gofmt walk also rewrites dot-directories that Go's ./... pattern excludes.

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

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

Source: README.md at commit ddbefdd

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.6.0LatestOct 9, 2026