rumilo
Rumilo is a CLI that dispatches specialized research subagents. It supports two modes:
webfor web research (search + fetch, stored in a sandboxed workspace)repofor git repository exploration (clone to workspace, git-aware tools)
Requirements
- Bun
- Git (for repo mode)
- Kagi session token
- Tabstack API key
Configuration
Rumilo reads configuration from $XDG_CONFIG_HOME/rumilo/config.toml.
Example:
[defaults]
model = "anthropic:claude-sonnet-4-20250514"
cleanup = true
[web]
model = "anthropic:claude-sonnet-4-20250514"
[repo]
model = "anthropic:claude-sonnet-4-20250514"
Custom Models
You can define custom OpenAI-compatible endpoints like Ollama, vLLM, or self-hosted models in the [custom_models] section:
[custom_models.ollama]
provider = "ollama"
api = "openai-completions"
base_url = "http://localhost:11434/v1"
id = "ollama/llama3"
name = "Llama 3 (Ollama)"
reasoning = false
input = ["text"]
cost = { input = 0, output = 0 }
context_window = 128000
max_tokens = 4096
Use custom models with the custom: prefix:
rumilo web "query" --model custom:ollama
rumilo repo -u <uri> "query" --model custom:ollama
Custom Model Fields
provider: Provider identifier (e.g., "ollama", "custom")api: API type - typically "openai-completions"base_url: API endpoint URLid: Unique model identifiername: Human-readable display namereasoning: Whether the model supports thinking/reasoninginput: Input modalities -["text"]or["text", "image"]cost: Cost per million tokens (can use 0 for local models)context_window: Maximum context size in tokensmax_tokens: Maximum output tokens
Compatibility Flags (Optional)
Some OpenAI-compatible endpoints have quirks. Use the compat section to override:
[custom_models.mistral]
provider = "mistral"
api = "openai-completions"
base_url = "https://api.mistral.ai/v1"
# ... other fields ...
[custom_models.mistral.compat]
max_tokens_field = "max_tokens"
requires_tool_result_name = true
requires_thinking_as_text = true
requires_mistral_tool_ids = true
See pi-ai documentation for all compat flags.
Credentials
Set credentials either via config or environment:
KAGI_SESSION_TOKEN: Kagi session tokenTABSTACK_API_KEY: Tabstack API key
Usage
rumilo web "how does X work"
rumilo web -u https://example.com/docs "explain the auth flow"
rumilo repo -u https://github.com/org/repo "how is caching implemented"