Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dragoman_ai-0.5.0.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dragoman_ai-0.5.0-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

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

Hashes for dragoman_ai-0.5.0.tar.gz
Algorithm Hash digest
SHA256 8f4dc41e5407201dee1bd157925b28300ff15fe9d234c03d1e1b7d0c4c60668d
MD5 ccf75e6299de5edc35e1d25f29073ea4
BLAKE2b-256 0584248edbef328b257e9322f24df53813455ec8b0ac9395ecf82d4836bbdf04

See more details on using hashes here.

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

Hashes for dragoman_ai-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 179a25c7798aa51d1762acd3802a28eb8e5db30bb0400f7e33879a35de164f64
MD5 c3df447a836dd2704203e814380dc1cf
BLAKE2b-256 592754dc010393f49c12565c3c4628ba237fe255447c8d86fe20dd7c7e8e542e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page