{"id":50769807,"url":"https://github.com/olindkri/claudr","last_synced_at":"2026-06-11T17:01:58.960Z","repository":{"id":357719431,"uuid":"1238243594","full_name":"olindkri/claudr","owner":"olindkri","description":"claudr — the simplest way to run Claude Code with any OpenRouter model.","archived":false,"fork":false,"pushed_at":"2026-06-02T10:09:18.000Z","size":204,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T12:10:28.192Z","etag":null,"topics":["ai-tools","anthropic","bash","claude","claude-code","cli","deepseek","developer-tools","fzf","gemini","kimi-k2","linux","llm","macos","openrouter","powershell","qwen3","windows"],"latest_commit_sha":null,"homepage":"https://openrouter.ai/rankings/programming","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olindkri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-14T00:26:14.000Z","updated_at":"2026-06-02T10:09:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/olindkri/claudr","commit_stats":null,"previous_names":["olindkri/openrouter-claude","olindkri/claudr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/olindkri/claudr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olindkri%2Fclaudr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olindkri%2Fclaudr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olindkri%2Fclaudr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olindkri%2Fclaudr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olindkri","download_url":"https://codeload.github.com/olindkri/claudr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olindkri%2Fclaudr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34208761,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-tools","anthropic","bash","claude","claude-code","cli","deepseek","developer-tools","fzf","gemini","kimi-k2","linux","llm","macos","openrouter","powershell","qwen3","windows"],"created_at":"2026-06-11T17:01:58.033Z","updated_at":"2026-06-11T17:01:58.936Z","avatar_url":"https://github.com/olindkri.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# claudr\n\n**Run Claude Code with any model on OpenRouter.**\n\nClaude Code is one of the best terminal coding assistants out there — but\nout of the box it only talks to Anthropic. claudr is a tiny launcher that\npoints it at [OpenRouter](https://openrouter.ai) instead, so you can use\nthe exact same `claude` CLI (slash commands, MCP, `/resume`, all of it)\nwith **any** model the platform offers: Kimi K2, Sonnet 4.6, Opus 4.7,\nDeepSeek V4, GPT-5, Gemini 2.5 Pro, Grok, Qwen, GLM — anything.\n\nYou install it once. You give it an OpenRouter key. You pick a model from\na fuzzy-searchable list of OpenRouter's live programming leaderboard.\nThat's the whole product.\n\n```\nclaudr\n```\n\nPay-as-you-go billing (and OpenRouter ships **free model variants** good\nenough for full Claude Code sessions — see [below](#free-models-that-handle-the-claude-code-agentic-flow)).\nNo proxy server, no per-model setup, no config files to hand-edit.\n\n---\n\n## Install\n\n### macOS / Linux\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/olindkri/claudr/main/install.sh | bash\n```\n\n### Windows (PowerShell)\n\n```powershell\n$d=\"$env:TEMP\\orc-src\"; if(Test-Path $d){rm -r -fo $d}; git clone --depth 1 https://github.com/olindkri/claudr $d; \u0026 \"$d\\install.ps1\"; rm -r -fo $d\n```\n\nThen open a **new** terminal and run:\n\n```\nclaudr\n```\n\nFirst launch walks you through:\n\n1. **OpenRouter API key** — required.\n   - Sign up: [openrouter.ai](https://openrouter.ai/sign-up)\n   - Create a key: [openrouter.ai/keys](https://openrouter.ai/keys)\n   - Pay-as-you-go (preload credits) — most coding-capable models are\n     a few cents per million tokens; some are **free**, see below.\n2. **Tavily API key** — optional, gives the model web search.\n   - Sign up: [app.tavily.com](https://app.tavily.com) (no credit card)\n   - **1000 queries/month free**, no per-second rate cap. Press Enter\n     to skip if you don't want web search.\n3. **Three picks** — your default model, mid-tier subagent model, and\n   fast/background model. Change any time with `claudr --tiers`.\n\n### Free models that handle the Claude Code agentic flow\n\nOpenRouter offers free variants of many models — usable for full\nClaude Code sessions, tool use included. Look for the **`:free`** suffix\nin the picker (or fuzzy-search for it). As of writing, these handle\nAnthropic's tool schema well enough for real agentic work:\n\n- `deepseek/deepseek-v4-flash:free` — fast, surprisingly good at tool use\n- `z-ai/glm-5.1:free` — solid all-rounder\n- `qwen/qwen3-coder-plus:free` — coding-tuned\n- `meta-llama/llama-4-scout:free` — long context, decent reasoning\n\nFree tiers are rate-limited and may queue under load — for hobby use it's\nfine; for daily heavy use, add a few dollars of OpenRouter credit and\npick a paid model that fits your budget.\n\nRe-run the install command later to update. Keys are saved to\n`~/.config/claudr/` on macOS/Linux and `%USERPROFILE%\\.claudr\\` on Windows.\n\n\u003e **Cautious about `curl | bash`?** Inspect first:\n\u003e ```bash\n\u003e curl -fsSL https://raw.githubusercontent.com/olindkri/claudr/main/install.sh -o install.sh\n\u003e less install.sh \u0026\u0026 bash install.sh\n\u003e ```\n\u003e Source is browsable at [github.com/olindkri/claudr](https://github.com/olindkri/claudr/blob/main/install.sh).\n\n---\n\n## Why bother?\n\nPointing Claude Code at OpenRouter is technically just an env-var change.\nBut to actually use it daily you also need to:\n\n- Find the right model slug among OpenRouter's hundreds of entries\n- Handle Claude Code's hardcoded 200K context cap on non-Anthropic models\n  (which is wrong for Kimi's 256K, DeepSeek's 1M, etc.)\n- Wire up web search since Anthropic's built-in `WebSearch` tool only\n  works on their first-party endpoint\n- Route subagents to the right tier (opus / sonnet / haiku model aliases)\n  without each one running on your most expensive model\n- Work around quirks like [empty `-p` results](https://github.com/anthropics/claude-code/issues/38805)\n  when OpenRouter responses include `redacted_thinking` blocks\n\nclaudr does all of that in one launcher. No proxy server, no fork of\nClaude Code, no maintenance — it just sets env vars and calls `claude`.\n\n---\n\n## Quick reference\n\n\u003e **Windows flag syntax**: examples below use bash style. PowerShell users\n\u003e swap to single-dash: `-Tiers`, `-Preset`, `-Ask`, `-Doctor`, `-Presets`,\n\u003e `-List`, `-Refresh`, `-Model`. Same semantics, idiomatic per shell.\n\n```bash\nclaudr                          # launch with your saved tier config\nclaudr --tiers                  # re-pick the 3 tier models\nclaudr --tiers coding           # save tier picks as a named preset\nclaudr --preset coding          # launch with a named preset\nclaudr --presets                # list saved presets and exit\nclaudr -m kimi                  # override only the main model\nclaudr --solo kimi              # run every tier (opus/sonnet/haiku) on one model\nclaudr --solo                   # same, but pick the one model interactively (alias: -1)\nclaudr -p \"summarize file.md\"   # one-shot, returns just the text reply\nclaudr --ask \"what is 2+2?\"     # explicit non-interactive form\nclaudr --doctor                 # health-check CLI, key, fzf, slugs, caches\nclaudr --list -n 50             # print top 50 as a table, exit\nclaudr --view month             # ranking window: day | week | month | trending\nclaudr --refresh                # bypass 6h cache\nclaudr --list-all               # dump every OpenRouter model\nclaudr -- --resume              # forward flags to `claude`\n```\n\n---\n\n## How it works\n\nClaude Code honors three env vars:\n\n- `ANTHROPIC_BASE_URL` — where to send requests\n- `ANTHROPIC_AUTH_TOKEN` — bearer token sent on each request\n- `ANTHROPIC_MODEL` — model slug\n\nOpenRouter exposes an Anthropic-compatible endpoint at\n`https://openrouter.ai/api`. Pointing `ANTHROPIC_BASE_URL` there (with your\nOpenRouter key as the auth token) makes Claude Code talk to OpenRouter\nnatively — no proxy needed.\n\nThe picker scrapes the rankings page's RSC payload, sums tokens per\npermaslug (same ordering the site shows), maps OpenRouter's dated permaslug\n(e.g. `moonshotai/kimi-k2.6-20260420`) to the canonical model id\n(`moonshotai/kimi-k2.6`) using `/api/v1/models`, and pulls description,\ncontext length, and price from the catalog. Both feeds are cached for 6h.\nWhen the rankings page can't be scraped (e.g. it switches to client-side\nloading), the picker falls back to a curated catalog so it's never empty.\n\n## Prerequisites\n\n- `claude` CLI: `npm i -g @anthropic-ai/claude-code`\n- OpenRouter API key from https://openrouter.ai/keys\n- `fzf` (recommended — enables the arrow-key picker; installer offers to\n  install it via `brew` / `winget` / `scoop`)\n- macOS / Linux: `python3` + `curl` (preinstalled on macOS)\n- Windows: PowerShell 5.1+ (preinstalled)\n\n---\n\n## Three-tier model setup\n\nClaude Code uses three model aliases — `opus`, `sonnet`, `haiku` — and routes\nsubagents and background tasks (compaction, title generation, file searches)\nthrough whichever one their frontmatter declares. claudr maps each alias to\nan OpenRouter slug of your choice via env vars\n([`ANTHROPIC_DEFAULT_OPUS_MODEL`](https://code.claude.com/docs/en/model-config),\n`ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`).\n\nThe **opus** tier is also the **main** model — what your session runs on by\ndefault. The other two only activate when Claude Code dispatches a subagent\nat that tier, or when you type `/model sonnet` or `/model haiku` mid-session.\n\n### First launch: the setup wizard\n\nThe first time you run `claudr`, it opens a 3-pick wizard in the fzf picker:\n\n```\n╭─ claudr · 1/3 · OPUS (main) ─────────────────────────────────────────╮\n│   ↑↓ navigate   ⏎ confirm   ⌃A change key   esc cancel               │\n│   search ›                                                           │\n│ ▶ #1   qwen/qwen3.7-max          1M ctx     $4.00 / $20.00 /M        │\n│   #2   anthropic/claude-opus-4.7 1M ctx     $5.00 / $25.00 /M        │\n│   ...                                                                │\n╰──────────────────────────────────────────────────────────────────────╯\n```\n\n1. **OPUS (main)**: your default model. Every session runs on this unless\n   Claude Code routes elsewhere.\n2. **SONNET**: mid-tier subagent model. Used when an agent file says\n   `model: sonnet` or `/model sonnet` is typed.\n3. **HAIKU**: fast/background model. Used for compaction, title generation,\n   file searches, and `model: haiku` subagents.\n\nPicks are saved to **`~/.config/claudr/tiers.conf`** and reused on every\nsubsequent launch — no more pickers, instant start.\n\n### Re-running the wizard\n\n```bash\nclaudr --tiers\n```\n\nReopens the same 3-pick flow and overwrites your saved config. Pressing\n**Esc** on any screen cancels without changing anything.\n\n### Manual editing\n\nYou can edit `~/.config/claudr/tiers.conf` directly:\n\n```\n# claudr tier config — what each Claude Code model alias resolves to.\nOPUS=qwen/qwen3.7-max\nSONNET=moonshotai/kimi-k2.6\nHAIKU=deepseek/deepseek-v4-flash\n```\n\nAny OpenRouter slug works. If you typo a slug, claudr warns you on next\nlaunch and points to `claudr --tiers` to fix it.\n\n### Mid-session switching\n\nInside Claude Code:\n\n- `/model opus` → switches to your OPUS slug\n- `/model sonnet` → switches to your SONNET slug\n- `/model haiku` → switches to your HAIKU slug\n- `/model` (no arg) → opens Claude Code's own picker\n\nSubagents declared with `model: opus|sonnet|haiku` in their frontmatter\nget routed automatically.\n\n### Per-launch overrides\n\n| Override                                | Effect                                          |\n|-----------------------------------------|-------------------------------------------------|\n| `CLAUDR_OPUS_MODEL=\u003cslug\u003e claudr`       | Override opus tier for this launch only         |\n| `CLAUDR_SONNET_MODEL=\u003cslug\u003e claudr`     | Override sonnet tier for this launch only       |\n| `CLAUDR_HAIKU_MODEL=\u003cslug\u003e claudr`      | Override haiku tier for this launch only        |\n| `claudr -m \u003cslug\u003e`                      | Override main model only; tiers stay as configured |\n| `claudr --solo \u003cslug\u003e`                  | Force **every** tier (opus/sonnet/haiku) onto one model |\n| `claudr --preset \u003cname\u003e`                | Use a named preset instead of the default tier config |\n\nExample: run with saved config but swap opus to GPT-5 just for this session:\n\n```bash\nCLAUDR_OPUS_MODEL=openai/gpt-5 claudr\n```\n\n### Run on a single model (`--solo`)\n\nSometimes you don't want a three-tier mix — you want one model handling the\nmain session *and* every subagent (opus/sonnet/haiku). `--solo` does exactly\nthat, ignoring any saved preset, tier config, and `CLAUDR_*_MODEL` env vars:\n\n```bash\nclaudr --solo kimi              # all tiers → moonshotai/kimi-k2.6\nclaudr --solo openai/gpt-5      # all tiers → a full slug\nclaudr --solo                   # pick the one model from the leaderboard (alias: -1)\n```\n\nWith no model argument, `--solo` falls back to `-m` if given, then to an\ninteractive picker, then (non-interactive) to a safe default. The launch banner\nshows the model marked `= solo (all tiers)` so you know the mode is active.\n\n\u003e **PowerShell**: `-Solo` is a switch and takes its model from `-Model`:\n\u003e `claudr -Solo -Model kimi`, or `claudr -Solo` for the interactive picker.\n\n---\n\n## Named presets\n\nIf you flip between workflows — cheap models for boilerplate, top-tier for\nhard debugging — save each one as a named preset:\n\n```bash\nclaudr --tiers cheap            # wizard → saves to ~/.config/claudr/presets/cheap.conf\nclaudr --tiers power            # different picks → saves as power\nclaudr --presets                # list all presets\nclaudr --preset cheap           # launch with the 'cheap' preset\n```\n\nBare `claudr` still uses the default `tiers.conf`. Each preset is a small\nshell-source file you can edit by hand:\n\n```\n# ~/.config/claudr/presets/coding.conf\nOPUS=anthropic/claude-opus-4.7\nSONNET=anthropic/claude-sonnet-4.6\nHAIKU=anthropic/claude-haiku-4.5\n```\n\nThe active preset name shows in the launch banner and the statusline.\n\n---\n\n## Non-interactive use (`-p` / `--ask`)\n\n`claudr -p \"your prompt\"` works like `claude -p` and returns just the text\nreply on stdout — useful for scripts, pipelines, and agent frameworks:\n\n```bash\nclaudr -p \"list the TODO comments in src/\" | tee todos.txt\necho \"describe this image\" | claudr --ask \"$(cat -)\"\n```\n\nUnder the hood, claudr transparently routes `-p` through a stream-json\nparser to work around upstream\n[claude-code#38805](https://github.com/anthropics/claude-code/issues/38805)\n(empty `result` field when OpenRouter responses include trailing\n`redacted_thinking` blocks). You keep the `-p` ergonomics, you get the\nactual text out.\n\nIf you explicitly pass `--output-format json` or `--output-format stream-json`,\nclaudr passes through to `claude` untouched — you're presumably parsing the\nstructured output yourself.\n\nThe launch banner auto-suppresses in print mode. Force-show with\n`CLAUDR_BANNER=1`. Opt out of the auto-routing with `CLAUDR_RAW_PRINT=1`.\n\n---\n\n## Doctor\n\n```bash\nclaudr --doctor\n```\n\nHealth-checks the `claude` CLI, `fzf`, `python3`, your OpenRouter key\n(live ping to `/auth/key`), Tavily key, default tier config, tier slug\nvalidity against the OpenRouter catalog, saved presets, and model-cache\nfreshness. Color-coded ✓ / ! / ✗ with a summary. **Run this first when\nanything feels off.**\n\n---\n\n## Statusline\n\nclaudr writes a small statusline script and per-session settings file,\nthen passes them to `claude --settings`. Claude Code's footer then shows\nthe model, context window, active preset, and working directory:\n\n```\nclaudr · qwen/qwen3.7-max · ctx 1M · [coding] · myproject\n```\n\nDisable with `CLAUDR_STATUSLINE=0` if you have your own statusline config.\n\n---\n\n## OpenRouter attribution\n\nEvery request claudr makes is tagged with `HTTP-Referer:\ngithub.com/olindkri/claudr` and `X-Title: claudr` (via\n`ANTHROPIC_CUSTOM_HEADERS`), so your\n[OpenRouter activity dashboard](https://openrouter.ai/activity) groups\nclaudr usage under one label. Override with `CLAUDR_REFERER` /\n`CLAUDR_TITLE`.\n\n---\n\n## Web search \u0026 URL fetching (Tavily, scoped to this launcher)\n\nTwo of Claude Code's built-in tools — `WebSearch` and `WebFetch` — are\nproblematic on OpenRouter. claudr replaces both with the **Tavily MCP\nserver**, scoped to claudr launches only (passed via `--mcp-config`,\nnever registered globally — other `claude` invocations on the same\nmachine are unaffected).\n\n### Why both are replaced\n\n- **`WebSearch`** runs server-side on Anthropic's infrastructure. It's a\n  no-op when you point Claude Code at OpenRouter. claudr always disables\n  it (opt back in with `CLAUDR_ALLOW_WEBSEARCH=1`).\n- **`WebFetch`** internally calls a \"small fast model\" (your HAIKU tier)\n  to summarize fetched pages. On non-Anthropic HAIKU tiers — deepseek,\n  qwen, kimi, etc. — that internal call fails silently with \"No response\n  from model\" because the provider doesn't return the response shape\n  Claude Code expects. claudr disables WebFetch whenever Tavily is\n  configured (opt back in with `CLAUDR_ALLOW_WEBFETCH=1`).\n\n### What Tavily MCP provides instead\n\n| Built-in tool | Tavily replacement | Behaves the same? |\n|---------------|---------------------|--------------------|\n| `WebSearch`   | `tavily_search`     | Yes — better even (real search results, snippets, dates) |\n| `WebFetch`    | `tavily_extract`    | Different in one way: returns **raw cleaned page content** instead of WebFetch's AI-summarized version. Larger context, more faithful. |\n\nIn practice the model picks the Tavily tool automatically when only one\nis visible. For agentic work, raw content (Tavily) is generally better —\nthe model decides what's relevant rather than getting a pre-filtered\nsummary from a separate Haiku call. Trade-off: a single `tavily_extract`\nof a long article uses ~5-10k tokens vs. WebFetch's ~1k summary.\n\n### Free tier\n\n**1000 queries/month** with no per-second rate cap, no credit card.\nRealistic usage: one or two fetches per coding task → you won't run out.\nAggressive scraping → upgrade tier or set `CLAUDR_ALLOW_WEBFETCH=1` to\nfall back to (broken) WebFetch.\n\n### Setup\n\n- **Sign up:** https://app.tavily.com (30 sec, no card required) — the\n  first-launch prompt has a clickable link\n- **Skip:** press Enter at the prompt — both search and URL fetching\n  are unavailable until you set a key\n- **Rotate:** edit or delete `~/.config/claudr/tavily-key`\n  (`%USERPROFILE%\\.claudr\\tavily-key` on Windows) and re-launch\n\nUnder the hood: the key is saved per-platform; on every launch claudr\nwrites an `mcp.json` pointing at Tavily's hosted remote MCP and passes\nthat file via `claude --mcp-config`. It also passes `--disallowedTools\nWebSearch WebFetch` (when both should be disabled) so the model only\nsees the working Tavily tools.\n\n---\n\n## Context window on non-Anthropic models\n\nClaude Code hardcodes a 200K window for unknown / non-Anthropic models —\neven if the model actually supports 1M (DeepSeek V4 Pro) or 256K (Kimi K2.6).\nThe env var `CLAUDE_CODE_MAX_CONTEXT_TOKENS` only takes effect when\n`DISABLE_COMPACT=1` is *also* set. There's no way to get both auto-compaction\nand the true window.\n\nclaudr picks the **real window** by default:\n\n- Sets `DISABLE_COMPACT=1` and `CLAUDE_CODE_MAX_CONTEXT_TOKENS=\u003ccatalog value\u003e`\n- DeepSeek V4 Pro shows as 1,000,000 tokens in `/context`, Kimi K2.6 as 256,000\n- Auto-compaction is off — run `/compact` yourself when you want to summarize\n\nIf you'd rather have auto-compaction back (at the cost of a 200K cap):\n\n```bash\nCLAUDR_AUTOCOMPACT=1 claudr\n```\n\nThat sets `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=75` and skips `DISABLE_COMPACT`,\nso Claude Code auto-compacts at 75% of its 200K assumption.\n\n---\n\n## All configurable options\n\n| Setting                            | Default        | What it does                                                                |\n|------------------------------------|----------------|-----------------------------------------------------------------------------|\n| `OPENROUTER_RANK_VIEW` env var     | `week`         | Leaderboard window for the picker (`day` / `week` / `month` / `trending`)   |\n| `OPENROUTER_TOP_N` env var         | `25`           | How many ranked models appear above the full catalog in the picker          |\n| `--view \u003cwindow\u003e`                  | —              | Same as `OPENROUTER_RANK_VIEW`, per-launch                                  |\n| `-n \u003cN\u003e` / `--top \u003cN\u003e`             | —              | Same as `OPENROUTER_TOP_N`, per-launch                                      |\n| `--refresh`                        | —              | Bypass the 6h leaderboard/catalog cache for this launch                     |\n| `CLAUDR_AUTOCOMPACT=1` env var     | off            | Re-enable Claude Code's auto-compaction (pins window at 200K)               |\n| `CLAUDR_SAFE=1` env var            | off            | Don't pass `--dangerously-skip-permissions` to claude                       |\n| `CLAUDR_ALLOW_WEBSEARCH=1` env var | off            | Don't pass `--disallowedTools WebSearch` (lets the no-op tool show up)      |\n| `CLAUDR_ALLOW_WEBFETCH=1` env var  | off            | Re-enable WebFetch (auto-disabled when Tavily MCP is configured — Tavily's `tavily_extract` does the same job and works on non-Anthropic models, where WebFetch's internal Haiku call fails silently) |\n| `TAVILY_API_KEY` env var           | —              | Use this Tavily key for the web-search MCP instead of the saved file       |\n| `CLAUDR_STATUSLINE=0` env var      | on             | Disable claudr's statusline (use your own `claude` settings.json instead)  |\n| `CLAUDR_BANNER=1` env var          | auto           | Force-show the launch banner (normally hidden in `-p` / `--ask` modes)     |\n| `CLAUDR_RAW_PRINT=1` env var       | off            | Disable `-p` auto-routing; pass `claude -p` through raw                    |\n| `CLAUDR_REFERER` / `CLAUDR_TITLE`  | claudr/github  | Override OpenRouter attribution headers (`HTTP-Referer` / `X-Title`)       |\n| `CLAUDR_THINKING=1` env var        | off            | Keep extended thinking enabled in print mode (default: disabled for `-p`)  |\n\n### Built-in model aliases\n\nFor `-m` and inside the wizard: `kimi`, `kimi-thinking`, `sonnet`, `opus`,\n`haiku`, `deepseek`, `deepseek-flash`, `glm`, `qwen`, `qwen-coder`, `gemma`,\n`gemini`, `minimax`, `grok`, `gpt`. Anything else is passed through as a\nliteral OpenRouter model slug.\n\n### In the picker / wizard\n\n- **↑↓** to move, **Enter** to confirm, **Esc** to cancel\n- Type to fuzzy-filter the list\n- **Ctrl+A** to change your OpenRouter API key without leaving the picker\n\n---\n\n## Troubleshooting\n\nStart with `claudr --doctor`.\n\n| Symptom                                          | Try                                                    |\n|--------------------------------------------------|--------------------------------------------------------|\n| Picker empty / leaderboard not loading           | `claudr --refresh` (bypasses the 6h cache)             |\n| Wrong model slug saved                           | `claudr --tiers` to re-pick, or edit `~/.config/claudr/tiers.conf` |\n| Want to swap your OpenRouter key                 | Press **Ctrl+A** inside the picker, or delete `~/.config/claudr/key` |\n| Web search not working                           | Set `TAVILY_API_KEY` or write the key to `~/.config/claudr/tavily-key` |\n| `claudr -p \"...\"` returns empty in older versions | Update — claudr auto-routes around [claude-code#38805](https://github.com/anthropics/claude-code/issues/38805); set `CLAUDR_RAW_PRINT=1` to opt out |\n| WebFetch returns \"No response from model\"        | Tavily's `tavily_extract` does the same thing reliably; claudr auto-disables WebFetch when Tavily is configured. Set `CLAUDR_ALLOW_WEBFETCH=1` to re-enable, or set HAIKU tier to `anthropic/claude-haiku-4.5` |\n| Statusline clashes with your own                 | `CLAUDR_STATUSLINE=0 claudr`                           |\n| `unknown option: --gutter` (or similar fzf error)| Your fzf is too old or distro-patched; claudr probes per-flag, so just update to fzf 0.42+ |\n\n---\n\n## Uninstall\n\n**macOS / Linux:**\n\n```bash\nrm -f \"$(command -v claudr)\" ~/.config/claudr/key\n# if you cloned to ~/.claudr:\nrm -rf ~/.claudr\n```\n\n**Windows:**\n\n```powershell\n\u0026 \"$env:LOCALAPPDATA\\Programs\\claudr\\install.ps1\" -Uninstall\n```\n\n---\n\n## Caveats\n\n- Tool-use / agentic features depend on the chosen model implementing the\n  Anthropic tool schema correctly. Anthropic's own models (Sonnet/Opus/Haiku\n  via OpenRouter), Kimi K2.6, GLM 5/5.1, DeepSeek V4, and Qwen3 Coder Plus\n  work well; some smaller open models do not.\n- Anthropic's prompt caching and 1M-context features only apply on\n  Anthropic's first-party endpoint, not via OpenRouter.\n- The leaderboard reflects **all** OpenRouter programming traffic — popularity\n  ≠ quality. Top entries skew toward cheap/fast models (Gemini Flash, GPT-4o\n  mini). Use `--view month` for a steadier signal, or just type a slug.\n- Pricing shown is USD per million tokens for both input and output. See\n  https://openrouter.ai/models for the full sheet.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folindkri%2Fclaudr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folindkri%2Fclaudr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folindkri%2Fclaudr/lists"}