A local-first orchestration agent.
dokoro gives it memory. TachiBot gives it better judgment. TachiBot orchestrates models; tachi-agent orchestrates work. The default brain runs 100% local — no API keys, no cloud cost.
Chat with bare tachi-agent, run skill bundles with --skill <name>, or deploy it as an unattended daemon with a persistent queue, recurring schedules, and per-task hearts.
# one line installs the whole stack $ curl -fsSL https://bypawel.github.io/tachi-agent/install.sh | sh $ tachi-agent tachi › /jury "Is this design thread-safe?" → recall · dokoro_session_recall → tool · tachibot_jury → log · trace saved to dokoro
The loop lives in the client — never inside an MCP server.
That keeps the hub small, embeddable, and free of nested-loop coupling — no agent-inside-a-server recursion, no hidden control flow on the wire. Every front-end just calls orchestrator.run(task), and the core depends on three interfaces and nothing else.
Pluggable without a plugin framework.
The core depends only on three interfaces. Swap any one without touching the orchestrator. The seams in depth →
Default Qwen2.5 via Ollama, fully local. Pick a heart with TACHI_DRIVER — or register your own via registerDriver. Each queued task can carry its own driver. One interface, any brain.
dokoro + tachibot MCP servers merged and namespaced. Add servers via config, not code — tools just appear. The agent ships a small curated allowlist.
dokoro session recall and log wrap each run. Swap the backend or disable persistence entirely — the orchestrator is stateless between runs.
A REPL by default. Skill bundles on demand.
tachi [driver·skill] ›. Prior exchanges carry into each run so follow-ups keep their referent; /reset starts fresh. History persists at ~/.tachi-agent/repl_history..tachi/skills/ (or TACHI_SKILLS_DIR) — frontmatter sets name, description, tool allowlist and driver; the body becomes the system prompt. Ready-made recipes: repo-review, researcher, nightly-digest, fact-checker. Skills →1# open interactive chat (default — no args needed)2tachi-agent3 4# start with a specific driver or skill5tachi-agent --driver openai6tachi-agent --skill researcher "explain the CAP theorem trade-offs"7 8# inside the REPL9/skill repo-review10/driver openai11/jury "Is this design thread-safe?"Everything the agent can do.
From a one-line install to an unattended daemon, a parallel swarm, and coding workers Claude Code can delegate to.
From core to swarm.
- L0 · coreOrchestrator + seamsThe ReAct hub and the Driver / ToolHost / Memory interfaces, fully tested with mocks — no network needed.shipped
- L1 · adaptersReal brains, tools, memoryOllamaDriver (Qwen2.5, native
/api/chat) + HermesDriver via a driver registry; McpToolHost (dokoro + tachibot over stdio); DokoroMemory; a CLI.shipped - L2 · front-endsTalk to it from anywhereCLI, REPL, Telegram, Slack (Socket Mode), Claude Code via a
run_agentMCP server, an HTTP/SSE Gateway, and the OpenClaw bridge.shipped - L2.5 · daemonLong-running, attachableThin-client attach, session handoff, durable event sequence, buffered replay, refcount-aware TTL/GC, graceful drain — and a
UnifiedClientthat makes local and daemon execution interchangeable.shipped - L3 · swarmFan out, then synthesizeN role-specialized agents in parallel, merged by a synthesizer. Bounded concurrency, quorum warnings, per-member memory isolation. Swarm →shipped
- L4 · standaloneUnattended operationCrash-safe task queue with retry/backoff, recurring schedules, per-task multi-heart drivers, Telegram/Slack notifications, durable JSONL run logs, queue/run-log CLI. Standalone →shipped
- L5 · chatInteractive chat, skills, service installBare
tachi-agentopens a REPL; unified/commandsacross REPL and Telegram; skill bundles;tachi-agent service install(macOS launchd);tachi-agent doctorpreflight.shipped · v0.4.0 - L6 · installOne command, whole stackInstalls Node ≥ 22 + Ollama if missing, then tachi-agent + dokoro + tachibot-mcp, and runs the setup wizard: local Ollama or one OpenRouter key for agent and council, MCP wiring,
GATEWAY_TOKEN, optional daemon — config in~/.tachi/.env(chmod 600).shipped · v0.5.0 - L7 · memoryA real multi-turn agentREPL and Telegram chats carry prior turns into every run, locally and through the daemon (
POST /runsacceptshistory); windows are capped and marked as data, never instructions.run_agentgainsdriver,skillandsystemPrompt.new · v0.6.0
Built from the Tachi stack.
Memory, runtime, and reasoning — each independently replaceable; none depends on the internals of another.
MIT · local-first · built on MCP. Provider keys and the memory backend live behind the MCP wire (tachibot-mcp, dokoro), so the MIT client and the servers it calls compose cleanly.