A small CLI that lets Claude Code reach non-Anthropic models — Ollama, Perplexity, OpenAI, Gemini — through one verb the existing subagent runtime can call.
Project description
dragoman
A small CLI that lets Claude Code reach non-Anthropic models — Ollama (local), Perplexity (search-augmented), OpenAI, Gemini, anything OpenAI-compatible — through one verb the existing subagent runtime can call.
I have a GPU in my basement running Ollama and a Tailscale link to it from any coffee shop. I have laptop Ollama for when the network drops. I pay for OpenAI, Gemini, and Perplexity because each is the right answer for a different shape of question. Claude Code is the conductor. Dragoman is the verb that lets the conductor talk to the rest of the orchestra.
v0.5.0 alpha. Apache 2.0.
What it does
Three commands. No agent loop. No tool execution. No shell. Just one HTTPS call per ask.
dragoman ask --model perplexity:sonar-pro --prompt "..." # one HTTPS call, prints text
dragoman recommend "summarize 200 transcripts privately" # rules table + your config
dragoman models # what's configured, one per line
The persona injected by dragoman init teaches Claude Code when to spawn a real Task() subagent that uses dragoman ask for the cognitive step. All filesystem and shell work happens through Claude Code's normal tools — the harness's audit, fan-out, and permissions stay intact. Dragoman holds keys; the harness holds the runtime.
Install
pip install git+https://github.com/asakin/dragoman.git
dragoman init
Open a fresh Claude Code session. Try: "What's the best model for [your task]?" If the dragon shows up, it works.
Keys live where you already keep them
API keys can be literal strings, environment variables, or references resolved at call time:
[perplexity]
api_key = "op://Personal/Perplexity/credential" # 1Password CLI
default_model = "sonar-pro"
[openai_compat]
host = "https://api.openai.com"
api_key = "keychain://openai/apikey" # macOS Keychain
Dragoman fetches by reference, uses the key for one HTTPS call, discards it. The key never enters Claude's context.
auto: routing
If you have a beefy Ollama somewhere and a fallback Ollama somewhere else, dragoman will pick:
[ollama]
host = "http://basement.tailnet.ts.net:11434"
fallback_host = "http://localhost:11434"
default_model = "qwen2.5:14b"
Then --model auto:qwen2.5:14b does a fast TCP probe; basement first, laptop fallback. The persona never has to know your network state.
What it writes to your system
| Artifact | Path | Created by | Removed by |
|---|---|---|---|
| Provider config | ~/.config/dragoman/config.toml |
dragoman init |
dragoman uninstall --purge-config |
| Persona block | ~/.claude/CLAUDE.md (or project) |
dragoman init |
dragoman uninstall |
| Python package | active env | pip install dragoman |
pip uninstall dragoman |
The persona block is bracketed by <!-- dragoman persona ... --> markers; removal is exact and idempotent.
Telemetry
None. Dragoman makes no outbound calls of its own — only to provider endpoints you configured.
Contributing
See CONTRIBUTING.md. Small PRs welcome; commits need DCO sign-off (git commit -s); Contributor Covenant applies.
License
Apache 2.0. See LICENSE.
Dragoman was the translator-fixer at Ottoman, Levantine, and European courts. The English word and the Hebrew meturgeman share an Akkadian root and have nothing to do with reptiles. The 🐉 emoji is a typo I refuse to fix.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dragoman_ai-0.5.0.tar.gz.
File metadata
- Download URL: dragoman_ai-0.5.0.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.5 cpython/3.12.13 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f4dc41e5407201dee1bd157925b28300ff15fe9d234c03d1e1b7d0c4c60668d
|
|
| MD5 |
ccf75e6299de5edc35e1d25f29073ea4
|
|
| BLAKE2b-256 |
0584248edbef328b257e9322f24df53813455ec8b0ac9395ecf82d4836bbdf04
|
File details
Details for the file dragoman_ai-0.5.0-py3-none-any.whl.
File metadata
- Download URL: dragoman_ai-0.5.0-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.5 cpython/3.12.13 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
179a25c7798aa51d1762acd3802a28eb8e5db30bb0400f7e33879a35de164f64
|
|
| MD5 |
c3df447a836dd2704203e814380dc1cf
|
|
| BLAKE2b-256 |
592754dc010393f49c12565c3c4628ba237fe255447c8d86fe20dd7c7e8e542e
|