Factory Droid and Claude Code are both proprietary, closed-source terminal coding agents, and the choice between them is decided less by the terminal than by one question: what happens when you point the client at an endpoint you chose. Droid will take any model over three wire protocols, but its plan fee survives a custom key and Factory keeps metering you past an allowance it does not publish. Claude Code's gateway credential replaces the subscription outright — and Anthropic "doesn't support routing Claude Code to non-Claude models through any gateway." Cheaper tokens and a wider model shelf are, on these two clients, two different products.
Both are current and both shipped the same day. On the npm registry on September 21, 2026, Factory's droid is at 0.223.0, published September 19, 2026, declaring UNLICENSED; Anthropic's @anthropic-ai/claude-code is at 2.1.278, published September 19, 2026, declaring SEE LICENSE IN README.md. Both ship near-daily, so check the registry rather than trusting these two numbers. Neither is open source: the GitHub API reports no license on either Factory-AI/factory or anthropics/claude-code, and neither repository is archived. So "fork it and pay only for tokens" is off the table for both, and every configuration route below is the one the vendor documents. One sourcing note: factory.ai now answers HTTP 307 to factory.com (checked the same day), while docs.factory.ai still serves directly, so prices below cite factory.com and behaviour cites docs.factory.ai.
Claude Code vs Factory Droid: which one to pick
Take the row that describes you and stop there. The rest of this page is the evidence behind these five lines.
| If this is your situation | Pick | Because |
|---|---|---|
| You want GPT, Gemini, Grok, Qwen or a local model inside one terminal agent | Factory Droid | Its custom-model setting accepts any model behind three protocols; Anthropic does not support routing Claude Code to non-Claude models through a gateway |
| You want to stop paying a subscription and pay only for tokens | Claude Code | A gateway credential replaces the claude.ai login for that session and the plan's usage limits stop applying; on Factory the plan fee and the meter both survive a custom key |
| You want one plan that covers a web app, mobile, Slack-style delegation and long-lived cloud compute | Factory Droid | Droid Computers, Missions and the hosted app are part of every plan — but Factory documents that custom models don't appear in its hosted web or mobile platforms, so at least that work bills to Factory whatever key you hold |
| You want to run the client without taking out a new subscription | Claude Code | A Claude Console account with prepaid credits, a cloud provider, or a gateway credential all authenticate it; Factory's CLI signs in to Factory and its pricing page publishes no free tier and no trial terms |
| You need a per-task dollar figure before you commit | Claude Code | Its costs page publishes a per-developer average and the CLI computes a session figure from token counts; Factory publishes multipliers but never the dollar value of a credit |
Two of those rows deserve a warning. The FAQ on Factory's pricing page answers "Which products are included in each plan?" with "All products; IDE, Web, CLI, Slack etc are included in all plans", and that is true of plan access; Factory's BYOK page separately says custom models "don't appear in Factory's hosted web or mobile platforms." Both sentences are published, they are about different things, and a buyer who reads only the first one and then buys a key will budget wrong. And "pay only for tokens" on Claude Code holds only when you set a credential: Anthropic's documentation is explicit that setting ANTHROPIC_BASE_URL alone, without a gateway credential, does not replace the subscription — the traffic routes through your endpoint while your claude.ai login stays the active credential and its limits and billing still apply.
The custom-endpoint door, side by side
This is the mechanical difference, and it explains every consequence further down. Droid takes a config file and a protocol name; Claude Code takes two environment variables and assumes one protocol.
| Factory Droid | Claude Code | |
|---|---|---|
| Where it is configured | customModels array in ~/.factory/settings.json | ANTHROPIC_BASE_URL plus one credential variable, in the shell or the env block of ~/.claude/settings.json |
| Protocols accepted | Three: anthropic (Messages), openai (Responses), generic-chat-completion-api (Chat Completions) | One on this path: Anthropic Messages at /v1/messages |
| Models you may point it at | Any, with Factory's caveat that only official Anthropic and OpenAI endpoints are "fully tested and benchmarked" | Claude models; Anthropic does not support routing to non-Claude models through a gateway |
| Credential header | On provider: "anthropic" the credential goes in x-api-key by default, and authMode: "bearer" switches it to Authorization; Factory documents authMode for Anthropic models only, and says the other providers get "the provider-appropriate auth header" | ANTHROPIC_AUTH_TOKEN sends Bearer, ANTHROPIC_API_KEY sends x-api-key, an apiKeyHelper sends both |
| Effect on the subscription | None. The plan fee stays, and BYOK is charged to the plan past an unpublished allowance | Replaced for that session: the subscription is unused and its usage limits do not apply |
| Which surfaces honour it | Droid CLI and the desktop app only | The surfaces Anthropic's connect guide covers: the CLI, the VS Code extension, GitHub Actions and the Agent SDK; the desktop app reads its own third-party inference configuration, not ANTHROPIC_BASE_URL. The guide does not cover the JetBrains extension either way |
| An admin can revoke it | Yes — allowCustomModels: false disables user BYOK entirely, allowedBaseUrls forces custom-model traffic through an approved host, and a net-new org-managed entry cannot carry a static apiKey (existing ones keep working and can still rotate) | Yes — managed settings with forceLoginMethod or forceLoginOrgUUID cannot coexist with a gateway credential |
Read against Factory's custom-models documentation, its individual-plans page, its org-control reference, Anthropic's gateway overview and its connect guide, all on September 19, 2026. Kunavo serves all three of Droid's protocols — /v1/messages, /v1/responses and /v1/chat/completions — so both configurations below are expressible. Neither has been runtime-tested here with either client; they are derived from the vendors' documented protocols and should be treated as a starting point while you keep your working route available.
{
"customModels": [
{
"model": "claude-sonnet-5",
"baseUrl": "https://api.kunavo.com",
"provider": "anthropic"
}
]
}For the Anthropic protocol the base URL is the origin with no /v1, since Droid appends the path itself; see the base URL reference. For the Chat Completions path instead, set provider to generic-chat-completion-api and the base URL to https://api.kunavo.com/v1. Claude Code needs no file at all:
# Claude Code: environment variables, no config file required.
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-your-key # travels as: Authorization: Bearer
# ANTHROPIC_API_KEY is the same credential in the x-api-key header instead.
# Anthropic's docs: "If you weren't told which kind, use ANTHROPIC_AUTH_TOKEN."
# Optional, off by default — adds the endpoint's models to the /model picker:
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1One asymmetry worth knowing before you enable that last line. Claude Code's discovery request is GET /v1/models?limit=1000 with a three-second default timeout, and any redirect — even http to https — fails it silently; it then keeps only entries whose id contains "claude" or "anthropic". Kunavo's Claude ids are the bare Anthropic ones, such as claude-sonnet-5, so they pass that filter, but whether the endpoint answers inside the timeout has not been measured here. Discovery is off by default and the built-in model list works without it.
What each client switches off behind a third-party endpoint
Both clients lose capability when they stop talking to their own vendor, and both vendors document it. The lists are different in kind: Factory's losses are about where your key reaches, Anthropic's are about which features stop.
| Client | What stops working, per the vendor |
|---|---|
| Factory Droid | Custom models reach the Droid CLI and desktop app only — not Factory's hosted web or mobile platforms. Prompt caching on the generic provider "varies by provider and cannot be guaranteed." Only official Anthropic and OpenAI endpoints are "fully tested and benchmarked," and Factory notes that models below 30 billion parameters underperform on agentic coding. |
| Claude Code | Remote Control and server-managed settings are turned off whenever ANTHROPIC_BASE_URL points at a host other than api.anthropic.com, whatever the endpoint forwards. MCP tool search is off by default on a non-first-party host, and claude.ai connectors load only under a subscription login. Cloud sessions, mobile, Slack, Claude Code Desktop, Routines, Ultrareview, Code Review, the Chrome extension, computer use, Artifacts and voice dictation all require a claude.ai account. |
Anthropic's availability matrix has columns for a subscription, the Console and four cloud providers, and none for a generic third-party endpoint. Its own rule fills the gap: availability "matches the underlying provider the gateway forwards to, except for the features Claude Code itself turns off." That is a rule, not a list, so a feature not named above is genuinely unresolved rather than confirmed either way — auto mode is one such case, and this page does not claim it works or that it does not.
A second class of breakage is protocol-level rather than product-level, and it falls on the endpoint. Anthropic's gateway compatibility guide is blunt about it: cache_control markers must be forwarded unchanged or "the conversation bills as uncached input on every turn"; where a capability pairs a beta header with a body field — context management, beta tool fields, output_config — the two must travel together or the request returns a hard 400, while a header-only capability such as extended context goes silently missing instead; streams must not be buffered and keep-alive pings must be relayed, or Claude Code aborts after 300 seconds of silence; error bodies must be forwarded unmodified or its automatic capability-downgrade retry stops matching. Token counting is the one optional endpoint — Kunavo does not implement /v1/messages/count_tokens, so /context falls back to a character-based estimate.
Migration cost, in both directions
The instruction file is the cheap part. Factory's AGENTS.md documentation says Droid looks for AGENTS.md and also accepts agents.md, Agents.md, CLAUDE.md and Claude.md, searching the directory, then .factory/, .agents/ and .agent/ up to the git root — its stated reason is that "existing instruction files from other coding tools keep working." Anthropic's memory documentation goes the other way: Claude Code reads AGENTS.md as project instructions when there is no CLAUDE.md at or above your working directory, and reading it directly requires v2.1.277 or later — the version published on September 18, 2026. One condition attaches on this page's own subject, and Anthropic states it twice: reading AGENTS.md also needs a session that fetches feature flags from Anthropic, and the environment-variable reference lists the sessions that skip that fetch — a third-party provider such as Amazon Bedrock, a Claude apps gateway session, or any session with telemetry or GrowthBook turned off. A generic ANTHROPIC_BASE_URL gateway is not on that list and not excluded from it either, so whether a Kunavo-routed session reads AGENTS.md is undocumented and untested here. Where it does, Anthropic's fallback is to import the file from a CLAUDE.md, which works in every session.
Everything else is per-client. Droid has /commands for custom commands, /droids for subagents, /skills, and /mcp for MCP servers; Claude Code has its own commands, subagents, skills, hooks, plugins and MCP configuration, which Anthropic lists among the features that work on every provider. The formats and directories differ, so budget a rewrite of those, not a copy. Autonomy is the other translation cost: Factory exposes Off, Low, Medium and High autonomy levels alongside Normal, Spec and Mission interaction modes, while Claude Code uses its own permission modes — there is no mapping table between the two, so re-derive your guardrails deliberately rather than assuming a like-for-like setting exists.
What the tokens cost, and what the plans cost
Only one side of this comparison can be priced honestly. Factory publishes per-model multipliers against Factory Standard Credits but never the dollar value of a credit, so no one outside Factory can convert a Droid session into money — the Factory Droid pricing guide works through the plan table, the credit model and the rolling windows in full. What can be priced is the token path both clients share.
Assume one working day of agent sessions at 1.5M uncached input tokens and 100K output tokens, and a 20-day month. That is a stated assumption, not a measurement of any session. At current Kunavo catalog rates:
| Model | Anthropic list: input / output | Kunavo: input / output | Modeled day | Modeled 20-day month |
|---|---|---|---|---|
| Claude Haiku 4.5 | $1.00 / $5.00 | $0.40 / $2.00 | $0.80 | $16.00 |
| Claude Sonnet 5 | $2.00 / $10.00 | $2.00 / $10.00 | $4.00 | $80.00 |
| Claude Opus 5 | $5.00 / $25.00 | $2.00 / $10.00 | $4.00 | $80.00 |
Prices are per million tokens; Anthropic list rates read from its pricing page and Kunavo rates from the live catalog, September 19, 2026. This is illustrative token arithmetic under the stated assumptions — not a measured task cost, not a bill ceiling, and it excludes cache charges, tool calls and tax. Compare the row for the model you will actually run rather than a vendor-wide gap. On Claude Sonnet 5 the catalog rate is Anthropic's own list price, so there is no saving on that row at all, while Claude Opus 5 carries the same $10.00 output rate as Claude Sonnet 5 against a much higher official reference. The gap is per model, not per vendor.
Now the reality check, because a flattering assumption is how these comparisons go wrong. Anthropic's own cost documentation reports that across enterprise deployments "the average cost is around $13 per developer per active day and $150-250 per developer per month, with costs remaining below $30 per active day for 90% of users." That $13 is roughly 3.3× the modeled day above at the Claude Sonnet 5 rate, so the day modeled here is a light one. Anthropic's published monthly range straddles the $200 that Factory Max and Claude Max 20x each cost: the bottom of it, $150, is below both, and the top, $250, is above both. A rate card alone therefore cannot settle the plan-versus-tokens question — where you land inside that range decides it, and Anthropic reports the range across enterprise deployments, not for your team.
| Published price | Factory | Anthropic |
|---|---|---|
| Free tier | None published on the pricing page | Free, $0 |
| Entry paid plan | Pro, $20/mo | Pro, $20/mo, or $17/mo billed annually ($200 up front) |
| Mid tier | Plus, $100/mo (~5x Pro usage) | Max 5x, $100/mo |
| Top individual tier | Max, $200/mo (~10x Pro usage) | Max 20x, $200/mo |
| Team seat | Teams, $60/mo per team plus $40/mo per seat | Team, $20/seat/mo annually or $25 monthly; Premium seat $100 annually or $125 monthly |
| Overage | Extra Usage: prepaid credits, $10 minimum, no expiration — or a free switch to Droid Core, the open-weight pool with its own separate rate limit | Usage credits at standard API rates, against a monthly spend limit you set |
Factory prices from docs.factory.ai, Anthropic's from claude.com/pricing, both September 19, 2026. Name the vendor every time you say "Max": Factory Max and Claude Max 20x are different products at the same $200. Note also that the two Max tier prices are not on claude.com/pricing, which says only "From $100 Per month" — the $100 and $200 figures come from Anthropic's Help Center, which adds that they are "for web subscriptions only." Where two official pages differ like this, confirm the amount in checkout before you commit.
If the token path is the one you want, Kunavo's minimum top-up is $10 in prepaid credit with no plan attached, and the catalog amount is a billing floor rather than a ceiling — the billing guide explains why. Cheapest listed rate and lowest cost to finish the task are still different claims: a smaller model that needs three attempts and a human review can cost more than one pass on a stronger one. Create a Kunavo account if you want to measure that on your own repository; Claude Code's side of the setup is written up at the Claude Code integration page, and there is no Droid setup page here, which is why the Droid configuration above is inline and marked untested.
Surfaces and execution model
| Capability | Factory Droid | Claude Code |
|---|---|---|
| Terminal client | Droid CLI, installed with npm install -g droid or Homebrew | Claude Code CLI, listed as working on every provider |
| Headless / CI | Droid Exec, "non-interactive execution mode for CI/CD pipelines and automation scripts" | Headless CLI plus documented GitHub Actions and GitLab CI/CD integrations |
| Long-running compute | Droid Computers, "persistent, long-lived compute environments", including bring-your-own-machine | Cloud sessions, which require a claude.ai account and are not part of a gateway deployment |
| Multi-step orchestration | Missions, which require Extra Usage to be enabled and pause when they hit a rate limit | Subagents, Workflows and checkpoints, all listed as available on every provider |
| Autonomy control | Autonomy levels Off, Low, Medium, High; interaction modes Normal, Spec, Mission; an org maxAutonomyLevel caps all of them | Permission modes, with hooks and sandboxing on every provider. The built-in starting mode is auto on a Pro, Max or Team plan in a terminal or VS Code, and Manual on an Enterprise plan or a Console key — but several conditions ahead of the plan force Manual, including a session that does not fetch feature flags, so read Anthropic's table rather than the plan name |
| Extensibility | /commands, custom droids via /droids, /skills, MCP via /mcp | Commands, subagents, skills, hooks, plugins and MCP servers |
| In-client cost readout | /cost, "show usage statistics" | /usage, computed locally from token counts at list price |
| Editor integration | Factory App desktop client | VS Code and JetBrains extensions, available on every provider |
Read from Factory's documentation index and CLI reference, and from Anthropic's feature-availability page, September 19, 2026. Note what the cost readouts are: both are the client's own arithmetic over reported tokens, not a statement from a billing system, so reconcile either against your provider's usage record before you trust a monthly figure. For Kunavo that record is the usage endpoint and the dashboard ledger.
If neither client fits, the adjacent comparisons on this site take the same approach: OpenCode vs Claude Code, Claude Code vs Codex and Goose vs Claude Code cover clients whose model routing and account models differ again, and the Claude Code provider comparison covers the endpoint choice on its own.
FAQ
Is Factory Droid better than Claude Code?
No published head-to-head test settles this, and neither vendor publishes one. Factory's own "#1 on Terminal-Bench" announcement at factory.ai/news/terminal-bench is the figure that still circulates: it reports 58.75% in the headline and 58.8% in its results section, on the Terminal-Bench Core set v0.1.1 of 80 tasks, and it is dated September 25, 2025 — it ran Claude Opus 4.1, which Anthropic's model-deprecations page now lists as retired on the Claude API since August 5, 2026. That is a vendor benchmark about an agent harness on a model generation that no longer ships, not a current comparison. Decide on the model access, the execution surfaces and the billing path instead, and run one bounded task on each with your own repository.
Can Factory Droid use my Claude subscription?
Factory's custom-model setting takes an API endpoint and a key, not a claude.ai subscription login, so there is no documented route from a Claude Pro or Max subscription into the Droid CLI. Third-party proxies that claim to bridge the two are unofficial and unverified, and this page does not recommend one. Separately, a custom key does not remove Factory's plan fee: Factory's own pricing documentation says BYOK is free up to an allowance on all Individual plans and is charged to your plan after that.
Does bringing your own API key make either client cheaper?
The two answers are opposite, and this is the single most important difference between them. On Claude Code, a gateway credential replaces the subscription for that session: Anthropic's documentation states that while a gateway credential variable or apiKeyHelper is active, the claude.ai subscription is not used and its usage limits do not apply, so you pay the endpoint and nothing to Anthropic for that traffic. On Factory Droid, the plan fee survives, and past an allowance whose size Factory publishes nowhere, Factory also charges the usage to your plan — so a custom key sits on top of the subscription rather than in place of it.
Can Claude Code run GPT or Gemini models through a gateway?
Not on a supported path. Anthropic's gateway documentation states that Anthropic "doesn't endorse, maintain, or audit third-party gateway products, and doesn't support routing Claude Code to non-Claude models through any gateway." Its model-discovery filter is built the same way: Claude Code keeps a discovered entry only when its id contains "claude" or "anthropic" anywhere in the string. Factory Droid has no equivalent restriction — its custom-model setting accepts any model behind one of three wire protocols. If running non-Claude models inside one terminal agent is the requirement, that is an argument for Droid, or for a client built around multi-provider routing.
Which one runs unattended in CI?
Both do, by different mechanisms. Factory ships Droid Exec, documented as a "Non-interactive execution mode for CI/CD pipelines and automation scripts", plus Droid Computers as persistent compute and a bring-your-own-machine option. Claude Code runs headless from the CLI and documents GitHub Actions and GitLab CI/CD integrations, with the CLI and Agent SDK listed among the features that work on every provider. The difference is the credential: Claude Code's GitHub Actions path reads ANTHROPIC_BASE_URL from the workflow env, so CI can point at your own endpoint. On the Factory side, the documentation says custom models live in the local settings.json that the Droid CLI and desktop app read and do not appear in Factory's hosted web or mobile platforms; it does not say how Droid Exec resolves them on a runner you supply, so verify that before you assume either answer.
How much work is it to switch between them?
Less than most migrations, because both read AGENTS.md. Factory's documentation says Droid searches for AGENTS.md and also accepts the compatible filenames agents.md, Agents.md, CLAUDE.md and Claude.md, so existing instruction files from other coding tools keep working. Claude Code reads AGENTS.md as project instructions when there is no CLAUDE.md or CLAUDE.local.md in your working directory or above it; reading it directly requires Claude Code v2.1.277 or later, and Anthropic adds that it also needs a session that fetches feature flags, which some provider and telemetry configurations turn off. In those sessions Anthropic's documented fallback is to import AGENTS.md from a CLAUDE.md. What does not transfer is everything below the instruction file: slash commands, subagent definitions, hooks, skills and MCP server configuration are per-client formats in per-client directories, and permission or autonomy settings have no shared vocabulary.
Checked September 19, 2026: both npm packages' latest version, publish date and license field, and both GitHub repositories' archived and license fields through the GitHub API; the factory.ai to factory.com redirect; factory.com/pricing including its FAQ answers; Factory's individual-plans, organization-plans, custom-models, org-control, AGENTS.md, CLI-reference and documentation-index pages; Anthropic's gateway, gateway-connect, gateway-protocol, feature-availability, memory, environment-variable, permission-mode, model-deprecation and costs pages; claude.com/pricing and the Max plan Help Center article; and Factory's Terminal-Bench announcement. The two npm version numbers and the two GitHub license fields were re-read on September 21, 2026. Factory's per-model credit multipliers were not re-read for this page and are covered on the pricing guide instead. Kunavo token rates are read from the live catalog and the cost figures are illustrative arithmetic under the stated assumptions. Kunavo has not runtime-tested either client against its API, so every configuration claim here is read from the vendors' documented protocols rather than from a session.