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
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:
| Seamless | APIs de memoria en la nube | Memoria integrada del agente | Servidores de grafo de conocimiento | |
|---|---|---|---|---|
| Formato de almacenamiento | Archivos markdown en tu disco; SQLite los indexa y almacena estado operativo | Su base de datos, accedida por clave API | Almacén gestionado por el proveedor dentro de un producto | Una base de datos de grafos, a menudo un servidor separado |
| Dónde se ejecuta | Tu máquina, solo localhost | Su nube | El producto del proveedor | Tu máquina o la suya |
| Cuenta requerida | No | Sí | La del proveedor | Generalmente no |
| Coordinación multi-agente | Cola de tareas, reclamación basada en arrendamiento, planes compartidos | Ninguna | Ninguna -- un agente, un almacén | Lecturas compartidas como mucho |
| Política de olvido | Supersesión con procedencia; un jardinero propone, un humano dispone | Resumen automático que no controlas | Definida por el proveedor | Manual |
| Runtime | Daemon y CLI estáticos en Go | SDK HTTP contra su servicio | Ninguno (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
TODOy 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 updatees 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).
| Conceptos | Memoria y notas, sesiones y briefings, recuperación, tareas y planes, proyectos y ámbito, el jardinero |
| Guías | Integrar un agente, escribir memorias que se recuperen, coordinar una flota, solucionar problemas |
| Referencia | Cada herramienta MCP, ambos CLI, cada clave de configuración, los hooks y los formatos de archivo |
| Internos | Arquitectura, 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.