This repository has been archived on 2026-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Levi Neely 8a2f2feecf main: add status bar with model, agent state, token usage, and context stats
Add a one-line status bar rendered between the viewport and the textarea.
The bar shows:
  [model] <state> | last: ↑N ↓N | ctx: ~Nk tokens (N msgs)

Agent state transitions:
  idle      - no agent running
  thinking… - agent is running, no tool call yet this step
  tool: foo - agent is executing tool 'foo'

Token usage is updated from the 'usage' agent output event.
Context stats are updated from session.ContextStats() after each agent step.
The 'usage' role no longer appends a display line; it only updates the bar.
2026-04-01 13:20:54 +02:00
agent agent: add bounded context builder to prevent prompt explosion 2026-04-01 13:10:56 +02:00
backend backend/openai: fix streaming token counts always zero 2026-04-01 13:16:31 +02:00
config Restore MCP server support alongside built-in execute_code 2026-04-01 00:34:09 +02:00
exec Add ollie/exec package: extract execute_code from anvillm-mcp 2026-03-31 22:30:19 +02:00
mcp MCP subprocess inherits only whitelisted env vars 2026-04-01 00:53:10 +02:00
tools Restore MCP server support alongside built-in execute_code 2026-04-01 00:34:09 +02:00
.gitignore Fix: move modelName resolution after backend creation; rename install artifact to ollie 2026-04-01 11:12:56 +02:00
ARCHITECTURE.md Initial commit 2026-02-21 20:47:38 +01:00
LICENSE Add GNU General Public License v3 2026-02-21 22:21:21 +01:00
README.md README: note anvillm dependency 2026-04-01 01:05:55 +02:00
config.json.sample config json sample 2026-04-01 00:55:57 +02:00
go.mod Add ollie/exec package: extract execute_code from anvillm-mcp 2026-03-31 22:30:19 +02:00
go.sum Add ollie/exec package: extract execute_code from anvillm-mcp 2026-03-31 22:30:19 +02:00
main.go main: add status bar with model, agent state, token usage, and context stats 2026-04-01 13:20:54 +02:00
mkfile Fix: move modelName resolution after backend creation; rename install artifact to ollie 2026-04-01 11:12:56 +02:00

README.md

Ollie

An agentic CLI built on a sandboxed execute_code tool and a common LLM backend interface. Supports local (Ollama) and OpenAI-compatible backends, optional MCP server connections, and a skill system for domain-specific capabilities.

Intended to be used with anvillm, which provides the skill system, tool scripts, and multi-agent infrastructure that ollie builds on.

Build

go build

Requires Go 1.21+.

Run

./ollie [model]

Model defaults to qwen3:8b. Override with OLLIE_MODEL or pass as the first argument:

OLLIE_BACKEND=openai ./ollie qwen/qwen3-235b-a22b

Configuration

Environment: ~/.config/ollie/env

OLLIE_BACKEND=openai           # ollama | openai (default: ollama)
OLLIE_OLLAMA_URL=              # base URL for Ollama (default: http://localhost:11434)
OLLIE_OPENAI_URL=https://openrouter.ai/api  # any OpenAI-compatible endpoint
OLLIE_OPENAI_KEY=sk-or-...
OLLIE_MODEL=qwen/qwen3-235b-a22b

Shell environment variables take precedence over the env file.

Config file: ~/.config/ollie/config.json

{
  "mcpServers": {
    "my-server": {
      "command": "my-mcp-server",
      "args": [],
      "env": {
        "API_TOKEN": "${API_TOKEN}"
      }
    }
  },
  "hooks": {
    "agentSpawn": "notify-send ollie started",
    "userPromptSubmit": "",
    "stop": ""
  }
}

MCP server env values support ${VAR} expansion from the parent environment. Only whitelisted vars are passed to the subprocess.

An alternate config path can be provided as a second argument:

./ollie qwen3:8b /path/to/config.json

UI

  • Enter — submit message
  • Ctrl+J — insert newline
  • PageUp / PageDown — scroll chat history
  • Ctrl+U / Ctrl+D — half-page scroll
  • Ctrl+C / Esc — quit

Token usage is shown after each response: [↑N ↓N tokens].

Tools

The agent has one built-in tool: execute_code. It runs shell code in a sandboxed environment and supports three invocation modes:

  • code — inline bash
  • tool + args — named tool script
  • pipe — sequence of {tool, args} steps

MCP server tools are discovered at startup and available alongside execute_code.

Skills

Skills are domain-specific tool scripts and knowledge discoverable at runtime:

{"tool": "discover_skill.sh", "args": ["keyword"]}
{"tool": "load_skill.sh",     "args": ["skill-name"]}

The agent discovers and loads relevant skills automatically at the start of each task.

License

GPLv3