I've been building Kraken for the past month — an open source autonomous dev agent that runs entirely in your terminal.
The architecture is a three-process system: a Rust scheduler (cron + file watchers), a Go LLM gateway (supports OpenAI, Anthropic and OpenRouter), and a TypeScript/React TUI built with OpenTUI. All three communicate over ConnectRPC on localhost.
A few things I wanted to get right from the start:
- Model-agnostic: uses a custom XML-based tool-calling protocol instead of native provider APIs, so it works the same regardless of the LLM - Plugin system: plugins implement a KrakenPlugin interface from the SDK, can register tools, hook into the agent lifecycle and extend the system prompt - No cloud: all state lives in a local SQLite file
It's early and a lot is still missing (docs, tests, CI). I'm sharing it now because I'd rather get feedback from people who know what they're doing than polish it in private.
Repo: github.com/galfrevn/kraken
Happy to answer questions about the architecture or design decisions.