~/work/gnomaActive

gnoma

Agentic coding assistant for the terminal, written in Go. A multi-armed bandit router picks a model per prompt, whether cloud or local, and shows its choice on every turn. Extensible through hooks, skills, MCP servers, and plugins.

Solo Engineer · Personal Project · 2025 - present

What it does

A provider-agnostic agentic coding assistant. gnoma routes each prompt through a multi-armed bandit router that weighs capability gates, declared strengths, latency, and cost. It shows the selected arm and the reason on every turn. Anthropic, OpenAI, Google, Mistral, Ollama, and llama.cpp run side by side, with a tier-0 small model for prompt classification and trivial local answers. Every outgoing message and tool result passes a secret scanner and content boundary. Paths are canonicalised TOCTOU-safe, Unicode is sanitized, and gnoma sends nothing off-machine on its own. Language-server grounding covers 14 LSP servers. The distribution is one static binary plus a multi-arch container image.

How it's built

  • You type in the TUI.
  • The agent loop receives the prompt; a safety layer scans every outgoing message and tool result.
  • The bandit router picks the best provider arm per prompt and shows its choice.
  • The prompt goes to one of six providers, or is answered locally by a small model.
  • Tools extend the agent through LSP, MCP servers, and hooks.
gnoma · request path

Evidence

Provider backends
6

Anthropic, OpenAI, Google, Mistral, Ollama, llama.cpp

LSP integrations
14

Language-server grounding

Distribution
Static binary

Plus a multi-architecture container image

Related case study

The project page describes what exists. The case study follows the decisions, constraints, and trade-offs behind it.

Case study

Highlights

  • Transparent model routing A multi-armed bandit router selects an arm per prompt from capability gates, declared strengths, latency, and cost. The choice is visible on every turn.
  • Security at the content boundary Outgoing messages and tool results are scanned for secrets, paths are canonicalised TOCTOU-safe, Unicode is sanitized, and gnoma sends nothing off-machine on its own.