Skip to main content

A small CLI that lets Claude Code reach non-Anthropic models — Ollama, Perplexity, OpenAI, Gemini — through a subagent that knows how to call it.

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 running Ollama. 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.6.0 alpha. Apache 2.0.

What it does

Two 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 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

You can install Dragoman securely using any modern Python tool manager:

# Using pipx (Standard)
pipx install dragoman-ai

# Using uv (Fastest)
uv tool install dragoman-ai

(Homebrew support is currently being built!)

Then, initialize your config and provider keys:

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:

[providers.perplexity_1]
type = "openai_compat"
host = "https://api.perplexity.ai"
api_key = "op://Personal/Perplexity/credential"   # 1Password CLI

[providers.groq_1]
type = "openai_compat"
host = "https://api.groq.com/v1"
api_key = "keychain://groq/apikey"              # macOS Keychain

Dragoman fetches by reference, uses the key for one HTTPS call, discards it. The key never enters Claude's context.

Multiple providers, multiple accounts

Dragoman replaces hardcoded singleton endpoints with a dynamic provider registry. You can connect as many distinct accounts, gateways, or local instances as you want simultaneously.

For example, if you run Ollama on a laptop and on a separate workstation reachable via Tailscale:

[providers.laptop_1]
type = "openai_compat"
host = "http://localhost:11434/v1"

[providers.workstation_1]
type = "openai_compat"
host = "http://workstation.tailnet.ts.net:11434/v1"

Then you simply tell Claude exactly which pipe to use: --model workstation_1:qwen2.5:72b. No magic network probing; just explicit, unopinionated routing.

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-ai pip uninstall dragoman-ai

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. There is also no evidence that dragons were actually reptiles.

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.6.0.tar.gz (37.5 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.6.0-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file dragoman_ai-0.6.0.tar.gz.

File metadata

  • Download URL: dragoman_ai-0.6.0.tar.gz
  • Upload date:
  • Size: 37.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dragoman_ai-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4edf24b91874544acf2f8390bdbf5e948b702f5c5f3eb22ca0cc4596d07e6110
MD5 08c5216ec660418a1403ebf9bd0cd30f
BLAKE2b-256 bde4cf60faa4997ad607790262e80da736a355cc6a3f43b93366b710cb499b1d

See more details on using hashes here.

File details

Details for the file dragoman_ai-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: dragoman_ai-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dragoman_ai-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1709ee135dd7aac4ce064681b84bf0a9241d27677964382eae1c56584766344b
MD5 117b099972e6bde9c41bad5cbb76ec1c
BLAKE2b-256 6602820ef4fb3f4dc978315d9881e23f485239c70630dc1c16fad8f589903306

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