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.
ollie-core/README.md

102 lines
2.4 KiB
Markdown

# Ollie
An agentic CLI built on a sandboxed `execute_code` tool and a common LLM backend interface. Supports local (Ollama) and OpenAI-compatible (OpenAI, OpenRouter) backends, optional MCP server connections, and a skill system for domain-specific capabilities.
## Build
```bash
go build
```
Requires Go 1.21+.
## Run
```bash
./ollie [model]
```
Model defaults to `qwen3:8b`. Override with `OLLIE_MODEL` or pass as the first argument:
```bash
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`
```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:
```bash
./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:
```bash
{"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