by askalf
Use your Claude and ChatGPT subscriptions in Cursor, Cline, Aider, Claude Code and the Agent SDK — at subscription pricing, not per-token API bills. One local Anthropic + OpenAI-compatible endpoint: either plan answers either wire shape, auto-failover when one hits its limit, multi-seat pooling, live Claude Code drift tracking.
# 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. Use your Claude and ChatGPT subscriptions in Cursor, Cline, Aider, Claude Code and the Agent SDK — at subscription pricing, not per-token API bills. One local Anthropic + OpenAI-compatible endpoint: either plan answers either wire shape, auto-failover when one hits its limit, multi-seat pooling, live Claude Code drift tracking. It has 525 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!
⚠️ 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.
darionpm i -g @askalf/dario · 0 runtime deps · SLSA-attested every release · nothing phones home · ~36k lines you can read in a weekend · independent, unofficial, third-party (DISCLAIMER.md)
Start · Your tools · Routing · Two plans · Pool · Drift · Trust · Risk · Commands · FAQ · Coming back after a while?
You're already paying $20, $100 or $200 a month for Claude,[^plans] or for a ChatGPT plan. Then Cursor wants an API key. Aider wants an API key. Cline, Continue, Zed, your own scripts — every one of them bills you again, per token, while the plan you bought sits idle in the one app it shipped with.
dario is one local endpoint that routes all of them through the plans you already pay for. Point any Anthropic- or OpenAI-compatible tool at http://localhost:3456 and you're done. No per-tool config, no second bill, and when one plan hits its limit the other one takes the request.
# 1. Install
npm install -g @askalf/dario
# 2. Log in to your Claude subscription (Pro, Max 5x, or Max 20x)
dario login # or `dario login --manual` for SSH / headless
# 3. Start the local proxy
dario proxy # separate terminal or background
# 4. Point any Anthropic-compatible tool at it
export ANTHROPIC_BASE_URL=http://localhost:3456
export ANTHROPIC_API_KEY=dario
That's the whole setup. Every tool that honors those env vars now runs on your subscription. OpenAI-shaped tools use OPENAI_BASE_URL=http://localhost:3456/v1 instead, same key.
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 snippets are one section down.
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.
Two base URLs, one key. Anthropic-shaped clients talk to http://localhost:3456; OpenAI-shaped clients — chat/completions and, since 6.3, the Responses API — talk to http://localhost:3456/v1. The key is dario (any value works until you set DARIO_API_KEY, which then has to match).
# ~/.codex/config.toml
model = "claude-opus-5"
model_provider = "dario"
[model_providers.dario]
name = "dario"
base_url = "http://127.0.0.1:3456/v1"
env_key = "DARIO_API_KEY"
wire_api = "responses"
Codex CLI 0.154 dropped the chat wire for custom providers, so dario speaks the Responses API: the request is translated once at the front door and served like any Claude request — pool, failover, mid-stream continuation, the 17 KB Codex system prompt cached on the Claude side. The full agent loop runs: Claude calls exec_command, Codex executes it, the result goes back, Claude answers from it. Add a ChatGPT account too and -m gpt-5.6-sol on the same block goes to that plan through the same proxy. Walkthrough and what is dropped.
export ANTHROPIC_BASE_URL=http://localhost:3456
export ANTHROPIC_API_KEY=dario
claude
A genuine Claude Code request already is the Claude Code shape, so dario forwards it byte-for-byte — system prompt, tools, thinking, key order untouched — swapping in only the pool's credential, its billing tag and cache breakpoints. That covers the main loop, its Task/Agent sub-agents and the permission classifier. What you gain is the pool: several seats behind the one URL, with headroom routing and 429 failover. Background: #678.
Cursor's BYOK is backend-mediated: the app sends your base URL up to Cursor's servers and they make the call, behind an SSRF guard that rejects localhost by design (confirmed by Cursor staff, threads linked in the long-form guide). So:
dario proxy # terminal 1
cloudflared tunnel --url http://localhost:3456 # terminal 2 → https://<random>.trycloudflare.com
In Cursor → Settings → Models: enable Override OpenAI Base URL with https://<random>.trycloudflare.com/v1, key dario, and add models as anthropic:opus / anthropic:sonnet / anthropic:haiku. The anthropic: prefix routes to the Claude backend without the claude- substring that makes Cursor switch to a tool format the OpenAI path can't parse, and it dodges Cursor's built-in-name collision. Use Agent mode (Cmd/Ctrl+I); Chat sends no tools. Treat the tunnel URL as a credential. Full walkthrough with every gotcha: agent-compat.md#cursor.
Provider Anthropic · API key dario · Anthropic Base URL http://localhost:3456 · model claude-sonnet-5 / claude-opus-5 / claude-haiku-4-5.
These clients speak an XML tool protocol. dario detects them from their system-prompt identity markers and flips into preserve-tools mode on its own, so their schemas pass through and their parsers keep working. --no-auto-detect if you'd rather choose. [Details](./docs/integrations/agent-compat.md#cl