A self-hosted, plugin-based agent harness. Four frontends, five backends, long-term memory.
Most harnesses are one-shot terminal wrappers. Talon runs as a long-lived process with persistent memory, hot-swappable MCP plugins, and frontends for wherever you need it — CLI, Telegram, Discord, Microsoft Teams, or your own.
Every backend implements the same capability interface — heartbeat, dream, and chat handlers don't know or care which one is running. Streaming, model fallback, and context-overflow recovery come standard.
In-process via the Claude Agent SDK. Hook-based turn termination.
Local HTTP server, SSE-streamed turns. Routes to many providers.
Local HTTP server. Same session shape as Kilo (upstream fork).
Per-turn subprocess on the Codex CLI's JSONL event stream.
Responses API, or any OpenAI-compatible endpoint.
Switch with one line: "backend": "claude" in ~/.talon/config.json.
Claude Agent SDK, Kilo, OpenCode, Codex, OpenAI Agents — one capability interface. Streaming, model fallback, context-overflow recovery.
18+ MCP plugins. Built-ins ship in the box; drop-in path plugins follow a uniform shape. Hot-reload at runtime.
Mempalace integration. ChromaDB vector store + SQLite knowledge graph. Semantic recall across sessions.
Same brain, different mouths. Telegram, Discord, Teams, terminal — or write your own.
Background modes for memory consolidation and proactive maintenance. Reflects on its own logs while you sleep.
Your VPS, your data, your backend choice. 3,300+ tests. No vendor lock-in — swap the backend, keep the agent.
A model-free identity substrate that persists across sessions. Collects signal taps — reactions, corrections, directives — and builds a self-organizing representation independent of any backend.
Internal plugins live in the talon repo. External path plugins live in the
talon-agent
org and follow a uniform shape: a package.json + an src/index.ts.
Install, run the setup wizard, start. Bring your own backend — Claude Code login, Codex, or an API key.
# install $ npm install -g talon-agent # set up $ talon setup # run $ talon start