Seamless

Memoria compartida local y coordinación de tareas para agentes de codificación de IA. Un binario Go, servidor MCP, archivos markdown que posees. Hooks para Claude Code y Codex CLI (y sus aplicaciones de escritorio).

Documentación

Seamless

Go Reference Latest release License: MIT MCP

Un agente de codificación con IA redescubre la misma restricción en cada sesión, porque nada de lo que aprende sobrevive a la ventana de contexto. Ejecuta dos agentes contra el mismo backlog y elegirán el mismo paso y lo construirán dos veces. Y los productos que prometen arreglar esto guardan la memoria de tu proyecto en la base de datos de otra persona.

Seamless es un sustrato de memoria y coordinación local-first para agentes de codificación con IA. Funciona con Claude Code, Codex CLI y cualquier cliente MCP.

Proporciona a una flota de agentes una memoria compartida y duradera y una forma de dividir el trabajo sin colisiones: memorias con ciclo de vida de supersesión, recuperación híbrida, una cola de tareas con dependencias y reclamación basada en arrendamiento, planes capturados y ensayos de investigación. El conocimiento duradero se almacena como archivos markdown en disco; el daemon seamlessd lo indexa, lo sirve a través de MCP y muestra una consola web, mientras que el CLI complementario seam ofrece una interfaz directa a los agentes sin interfaz gráfica.

Documentación completa: thereisnospoon.org/docs/  ·  Sitio web: thereisnospoon.org (fuente en docs/)

Principios de diseño

  • Construido para una flota, no para un agente solitario. Primitivas de coordinación reales: una cola de listos con dependencias, reclamación atómica de tareas basada en arrendamiento y planes compuestos de notas y pasos, para que los agentes dividan el trabajo en lugar de colisionar.
  • Los archivos son la fuente de verdad. Cada memoria y nota es un archivo markdown con frontmatter YAML bajo ~/.seamless -- con diff de git, greppable y editable a mano. SQLite indexa esos archivos y también almacena estado operativo como sesiones, tareas, ensayos y eventos, así que haz copia de seguridad de todo el directorio de datos.
  • La curación propone, los humanos disponen. Cada pasada del jardinero -- desde deduplicar y archivar hasta marcar peso muerto y lagunas de conocimiento -- solo propone; aplicar es una acción explícita. La supersesión preserva la procedencia, así que nada se reescribe en silencio.
  • Runtime pequeño y autocontenido. Un daemon y CLI estáticos en Go, sin CGO, SQLite en Go puro, sin Node, sin motor vectorial separado, sin cuenta en la nube.

Cómo se compara

El espacio de memoria para agentes se divide en algunas categorías reconocibles. Por categoría, porque las categorías no se vuelven obsoletas:

SeamlessAPIs de memoria en la nubeMemoria integrada del agenteServidores de grafo de conocimiento
Formato de almacenamientoArchivos markdown en tu disco; SQLite los indexa y almacena estado operativoSu base de datos, accedida por clave APIAlmacén gestionado por el proveedor dentro de un productoUna base de datos de grafos, a menudo un servidor separado
Dónde se ejecutaTu máquina, solo localhostSu nubeEl producto del proveedorTu máquina o la suya
Cuenta requeridaNoLa del proveedorGeneralmente no
Coordinación multi-agenteCola de tareas, reclamación basada en arrendamiento, planes compartidosNingunaNinguna -- un agente, un almacénLecturas compartidas como mucho
Política de olvidoSupersesión con procedencia; un jardinero propone, un humano disponeResumen automático que no controlasDefinida por el proveedorManual
RuntimeDaemon y CLI estáticos en GoSDK HTTP contra su servicioNinguno (integrado)Node o Python, más la base de datos

Para la versión con nombres de productos y recibos, consulta la comparación completa.

Transcripciones reales

Cuatro pares de sesiones reales de Claude Code sin editar -- mismo prompt, mismo repositorio, con y sin Seamless:

  • Arranque en frío -- una sesión continúa el plan de ayer desde un briefing inyectado; la otra re-deriva el trabajo desde un TODO y vuelve a enviar un error que el proyecto ya había corregido una vez.
  • Violación de restricción -- un escáner de seguridad exige SameSite=Strict, algo que el equipo ya aprendió que rompe los inicios de sesión con enlaces externos. Una sesión envía la regresión de todos modos; otra la rechaza y cita la restricción registrada.
  • Seguridad de tokens -- al indicarle persistir tokens de refresco, un agente refleja el mapa en memoria en una columna SQL de token en crudo; el otro lee primero una regla registrada y almacena solo hashes SHA-256.
  • Colisión de tareas -- dos agentes en vivo compiten por el mismo paso del plan. Una reclamación gana, el otro rebota con el nombre del titular y pivota al siguiente paso listo.

Lo que Seamless no es

No es una base de conocimiento de equipo alojada, no es un framework de RAG, no es un ganador de benchmarks: es memoria y coordinación para la flota de agentes de un solo propietario, en la máquina de ese propietario.

Inicio rápido

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

En Windows, la misma instalación en PowerShell:

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

Esa es toda la instalación. Necesita curl y tar y nada más -- sin Go, sin toolchain CGO, sin base de datos, sin Node. Descarga el archivo de lanzamiento verificado por checksum para tu plataforma (macOS, Linux y Windows; amd64 y arm64), instala seamlessd y seam en ~/.local/bin, genera la clave bearer, instala hooks, MCP y skills para los hosts locales Claude Code/Codex detectados, y ejecuta el daemon como un servicio por usuario -- launchd en macOS, systemd --user en Linux, una tarea programada al iniciar sesión en Windows. Actualiza en cualquier momento con seamlessd update (re-ejecuta el instalador por ti; --check informa instalado vs. última versión): tu configuración y ~/.seamless nunca se tocan.

Días tempranos, lanzamientos frecuentes. Seamless está en una etapa temprana de su ciclo de desarrollo, y los lanzamientos con mejoras y correcciones de errores llegan a menudo. Actualiza al menos semanalmente para ejecutar la última versión -- seamlessd update es el único comando. Consulta Actualizar y desinstalar.

(¿Por qué seam? El CLI conserva el nombre corto de Seam v1, el predecesor privado descomisionado del que Seamless fue reconstruido desde cero para reemplazarlo.)

Luego simplemente inicia el cliente seleccionado en un repositorio git. No hay proyecto que crear ni repositorio que registrar: el hook de inicio de sesión resuelve tu cwd a su raíz git, deriva un proyecto del nombre del directorio del repositorio y registra el mapeo en el momento, así los agentes heredan el ámbito del proyecto sin pasarlo en cada llamada. Recurre a seamlessd map-repo --path ~/code/myrepo --project myrepo solo para anular el slug derivado.

Es un script de shell y canalizar el script de un desconocido a un shell merece una lectura primero. ¿Prefieres las piezas una a la vez -- Homebrew, go install, archivos precompilados -- o quieres las opciones de anulación? Cada ruta está en Instalar y desplegar, y el Quickstart adapta cada paso a tu SO y cliente.

Luego: Quickstart · Configuración de Claude Code · Configuración de chat de la app Claude · Configuración de Codex local · Instalar y desplegar

Documentación

La documentación completa está en thereisnospoon.org/docs/ (fuentes en docs-src/, generado por cmd/docsgen).

ConceptosMemoria y notas, sesiones y briefings, recuperación, tareas y planes, proyectos y ámbito, el jardinero
GuíasIntegrar un agente, escribir memorias que se recuperen, coordinar una flota, solucionar problemas
ReferenciaCada herramienta MCP, ambos CLI, cada clave de configuración, los hooks y los formatos de archivo
InternosArquitectura, contribuciones, invariantes de dominio

Este README es deliberadamente corto. Cualquier cosa que pueda desviarse del código -- conteos de herramientas, claves de configuración, flags de CLI -- vive en el sitio de documentación, donde las páginas de referencia se generan del propio código y make check falla si se vuelven obsoletas.

Desarrollo

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/

Las pruebas son table-driven con testify/require contra SQLite nuevo o en memoria. Usa make fmt en lugar de gofmt -w .: el objetivo de Make limita el formateo a archivos rastreados por git, mientras que un pase gofmt sin formato también reescribe directorios de puntos que el patrón ./... de Go excluye.

La salida del sitio de documentación bajo docs/docs/ está confirmada, y make check ejecuta docs-check, así que un cambio en docs-src/ -- o en la superficie de herramientas o claves de configuración que la referencia genera -- debe ir seguido de make docs en el mismo cambio. Consulta SITE.md.

Las convenciones viven en AGENTS.md; léelo antes de escribir código.