by askalf
One local endpoint that routes Claude Code, Cursor, Cline, Aider, Codex CLI and the SDKs through the Claude and ChatGPT plans you already pay for: seats first, then the fallback chain you configure, and a ledger of who paid. Zero runtime dependencies.
# Add to your Claude Code skills
git clone https://github.com/askalf/darioLast scanned: 6/14/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-14T08:16:31.447Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how dario compares with popular alternatives.
dario is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by askalf. One local endpoint that routes Claude Code, Cursor, Cline, Aider, Codex CLI and the SDKs through the Claude and ChatGPT plans you already pay for: seats first, then the fallback chain you configure, and a ledger of who paid. Zero runtime dependencies. It has 577 GitHub stars.
Yes. dario passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/askalf/dario" and add it to your Claude Code skills directory (see the Installation section above).
dario is primarily written in JavaScript. It is open-source under askalf on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh dario against similar tools.
No comments yet. Be the first to share your thoughts!
30 days in the Featured rail · terms & refunds
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Automated security scan — not a certification.
darionpm i -g @askalf/dario or brew install askalf/tap/dario · 0 runtime deps · SLSA-attested every release · nothing phones home · ~42k lines you can read in a weekend · independent, unofficial, third-party (DISCLAIMER.md)
Start · Why dario · Routing · Risk · Reference · Trust · Coming back after a while?
You already pay for Claude,[^plans] for ChatGPT, or both. Each plan spends through its own runtime: Claude Code and the Agent SDK on one side, the ChatGPT app and Codex CLI on the other. Cursor, Aider, Cline, Continue, Zed and your own scripts want a base URL and an API key instead, and an API key is a meter: every token billed again, or, on a Max plan since October 2026, a monthly credit balance that stops when it runs out, while the seat's own windows sit idle.
dario is one local endpoint that puts all of it behind one URL. Point any Anthropic- or OpenAI-compatible tool at http://localhost:3456 and you're done. Each request goes to a seat with headroom. Chain the rest with --pool-fallback and the other plan takes the request when one hits its window, with a metered backend as the last rung if you add one; without a chain, a drained pool returns its honest 429. The ledger prices every request at API rates and shows what each plan absorbed, in the TUI, the dashboard and /metrics.
npm install -g @askalf/dario # or: brew install askalf/tap/dario
dario login # your Claude plan (Pro, Max 5x or Max 20x); `dario login --manual` for SSH / headless
dario proxy # leave it running, then point any tool at http://localhost:3456 with key `dario`
Anthropic-shaped tools: export ANTHROPIC_BASE_URL=http://localhost:3456 ANTHROPIC_API_KEY=dario. OpenAI-shaped tools use OPENAI_BASE_URL=http://localhost:3456/v1 instead, same key. Every tool that honors those env vars now runs on your subscription.
Works with: Claude Code, Cursor, Aider, Cline, Roo Code, Kilo Code, Continue.dev, Zed, OpenHands, OpenClaw, Hermes, Codex CLI, the Claude Agent SDK, the Anthropic and OpenAI SDKs, curl, your own scripts. Per-tool setup →
Prefer Homebrew? brew install askalf/tap/dario installs the same npm release through a formula that follows the registry (tap); upgrade with brew upgrade dario. Prefer Docker? ghcr.io/askalf/dario:latest, multi-arch (amd64 + arm64), published from the same workflow as every npm release (guide). Something off? dario doctor prints one paste-ready health report.
/analytics/ui, /analytics, Prometheus /metrics and dario usage. Analytics--pool-fallback chain you configure: the other plan on a 429, a metered rung last (your Max plan's API credits through a Console key, or an openai-compat backend). No chain means no substitution, a drained pool returns its honest 429. Nothing is swapped silently: every substituted response says so in a header. Failover--pool-strategy=fill-first fills seats in alias order and expiring-first spends the seat whose weekly window resets soonest. The active strategy shows in the startup banner, GET /status, dario doctor and dario accounts list. The pooldario compare. Shadow compareYou point every tool at one URL. dario reads each request, decides which plan or backend owns it, and forwards it in that backend's native protocol.
| Client speaks | Model | Routes to | What happens |
|---|---|---|---|
| Anthropic Messages | claude-* / opus / sonnet / haiku |
Claude pool | OAuth swap + Claude Code template, then api.anthropic.com |
| Anthropic Messages | a slug your ChatGPT account lists | Codex engine | Messages→Responses translation, subscription auth |
| Anthropic Messages | gpt-4o, llama-*, any name no plan lists |
Refused | 400 + x-dario-upstream-rejection: model_unroutable; reach an API-key backend from this shape with a provider prefix |
| OpenAI Chat | gpt-* / o1-* / o3-* / o4-* |
OpenAI-compat backend | Auth swap, body forwarded byte-for-byte |
| OpenAI Chat | a slug your ChatGPT account lists | Codex engine | chat/completions→Responses translation, subscription auth |
| OpenAI Chat | claude-* |
Claude pool | OpenAI→Anthropic translation, then the Claude path |
| Either | <provider>:<model> |
Forced by prefix | Explicit override |
The tool doesn't know. The backend doesn't know. dario is the seam.
The full Claude lineup, shortcuts, the live model catalog and when a name is refused: routing.md.
Every proxy serves a dashboard at http://localhost:3456/analytics/ui: