Nine: A Self-Hosted AI Agent Runtime in One Go Binary
Summary
Nine is an experimental self-hosted AI agent runtime distributed as a single Go binary for Docker, Linux, and macOS. It can use local models through Ollama or the hosted Mistral API, while storing conversations, goals, memories, files, skills, generated tools, and an append-only event journal in one SQLite database. A daemon runs ReAct agent loops, coordinates sub-agents and scheduled background goals, and exposes a TUI, CLI, and OpenAPI-specified REST API through a Unix socket or configured network endpoint. Its tool dispatcher combines built-in tools, subprocess plugins, MCP servers, and JavaScript or WebAssembly tools running in a wazero sandbox. Sandboxed tools use default-deny capabilities, with operator-controlled grants for filesystem, environment, and HTTP access; generated tools follow the same rules and cannot change the operator's configuration or grants. The runtime ranks tools against the current query and treats context as a budget, trimming lower-priority sources when necessary, while an LLM queue prioritizes supervisor and active work over background goals. The project has been tested with several small models on a 16 GB M4 and is explicitly experimental, with changing interfaces and limited long-run user mileage. Security is uneven: the sandbox has a real boundary, but shell and native plugins run with the daemon user's filesystem and network access. API authentication and TLS are disabled until configured, the daemon supports one model at a time, and only Ollama and Mistral are supported.