Answer: running on a free model

Can I run an AI coding agent on a free model?

Updated 25 August 2026

Yes, with limits worth knowing before you start. You bring your own key from a provider that offers free routes, and the agent runs on that route instead of a paid model. We measured it. On 24 August 2026 we pointed Keelen's loop at the free OpenRouter route stealth/ox-alpha, on our own OpenRouter key, on a throwaway repository. One plain-English request went in. 49 minutes after the repository was created, the first feature was a merged pull request: 125 lines across 3 files, gated on a test proven to fail without the code, an adversarial review by a second model, and green CI. The provider's own meter for the whole run read 27 requests, 1.2 million tokens, and $0.00. The second feature then died when the free provider saturated, and free routes retain your prompts, so treat a free route as public and disposable rather than as a cheaper version of a paid one.

Keelen does not supply the model. The key, the route, and the provider's terms are yours, and we never resell tokens. What we can report is what one run on one free route did on one small project.

What to do, in order

  1. Read the retention policy before you read the price

    Free and preview routes usually pay for themselves with your data. The listing for the route we tested says, verbatim: "Prompts and completions for this model are retained by the provider and are not used for training". The provider behind that particular route is anonymous. Use free routes only on code you are comfortable sharing. For private code, pick a named provider with a published no-retention policy and pay for it.

  2. Convert the rate limit into a daily work budget

    A free route is capped in requests, not in tokens. The cap on the one we used is 20 requests a minute and 1,000 a day, and that 1,000 only applies after a one-time $10 credit purchase on OpenRouter. Below $10 spent in total it is 50 a day. A small, well-specified feature fits inside that many times over. A large repository with heavy context fits far fewer, so plan on single-digit full iterations a day at the heavy end.

  3. Assume the route can be withdrawn without notice

    Free preview routes exist to gather feedback on a model, and they disappear when that is done. Keep a paid credential configured next to the free one so a withdrawal is a setting change rather than a stopped project.

  4. Let the gates do the judging, not the model's reputation

    A cheaper or unfamiliar model is exactly where verification earns its keep. Require a test that is proven to fail before the code exists, an independent review of the diff, and a green CI check. Then the question stops being how good the model is and becomes whether the change passed.

  5. Give it a small, well-specified first job

    Our test was a two-feature Python retry library, with feature 2 depending on feature 1. That is the right size for a first run on a capped route: big enough to prove the pipeline, small enough that a saturated provider costs you an afternoon rather than a release.

What the run actually did

One written request specified two features for a small Python retry library, with feature 2 depending on feature 1. The loop turned that single request into 2 roadmap items and 2 steering rules by itself. 49 minutes after the repository was created, feature 1 was merged: 125 lines across 3 files. 22 seconds after the merge, the loop checked that feature 1 was really in the main branch before it planned feature 2, rather than assuming its own merge had landed.

What stood between that code and the main branch

The red-first gate ran in three stages. The test was written first and proven to fail without the implementation. It then passed with the implementation. Then the loop deleted the body of the function it had just written and re-ran the tests, which had to fail again, and did. A second model then reviewed the pull request adversarially and returned "VERDICT: PASS / WRONG_IMPL: none found." CI was green. Those gates are the same on a free route as on a paid one.

How the gates work

Where it stopped, and what the loop did about it

Feature 2's build died. Not on our quota: we had used 27 requests of the 1,000 a day allowance. The free provider itself was saturated and returned five HTTP 429 rejections over three minutes while the model was writing tests. The loop merged nothing, invented nothing, and raised no escalation. That task is still queued. A provider limit is the failure mode you should expect from a free route, and the honest measure of a loop is what it does with one.

What stops a run from burning quota on a dead end

Failed runs are classified into 30 kinds. Infrastructure blips and provider limits retry on a budget and never count against your work. A real dead end becomes one plain-English card in your Needs-you queue with a recommended action, and the project pauses rather than burning quota.

Whose account pays for the tokens

Keelen runs on credentials you connect: Anthropic Claude (a Claude Code subscription login or an API key, no Max plan required), OpenAI Codex, Zhipu GLM, or Moonshot Kimi. Token usage bills to your own provider account at cost. Keelen charges a flat monthly tier and never marks tokens up.

See the plans

The five gates, in full

Five gates stand between the loop and your main branch. New tests are applied without the implementation first and must fail, so tests born green are rejected. An independent reviewer that shares no context with the run that wrote the code reviews the diff. Your own test suite runs on a clean checkout. Nothing merges over a red required CI check. And a review window stands before gated auto-merge, which you can replace with plan-review sign-off, manual merge, or branch-only mode.

When Keelen is not the answer

  • Your code is private or under a customer contract. Free and preview routes retain prompts and completions, and the provider of the route we tested is anonymous. That is disqualifying, and no amount of convenience changes it.
  • You need predictable throughput. Our second feature stopped because the free provider itself saturated and rejected five requests in three minutes. We had used 27 of the 1,000 daily requests, so the wall was not ours and there was nothing to buy our way past.
  • You have a large codebase with heavy context. The per-day request cap buys you single-digit full iterations at that end, which is a different product from a loop that runs all day.
  • You want one bill with model usage included. Keelen charges a flat tier and never resells tokens, so the provider account is always yours, free route or paid.

Hand the work to a loop

Connect a repository, write what you want in plain language, and review the tested pull requests that come back.

FAQ

Can I run an AI coding agent for free?

You can run the model half for free on a provider's free route, using your own key. Our measured run cost $0.00 on OpenRouter's meter across 27 requests and 1.2 million tokens, with an 85.1% prompt-cache hit rate. The platform you run the loop on is a separate charge, and free routes come with request caps and data retention that decide whether this is usable for your code.

Is my code private on a free model?

No. The listing for the route we tested states that prompts and completions for that model are retained by the provider and are not used for training, and the provider behind that route is anonymous. Retained is not private. Use free routes on code you are comfortable sharing, and choose a named provider with a no-retention policy for anything else.

How much work fits inside a free route's daily limit?

The route we used allows 20 requests a minute and 1,000 a day, and the 1,000 only applies once you have made a one-time $10 credit purchase on OpenRouter. Below $10 in lifetime spend it is 50 a day. One small well-specified feature fits many times over. A large repository with heavy context fits far fewer, so expect single-digit full iterations a day at that end.

What happens when the free provider runs out of capacity?

In our run it returned five HTTP 429 rejections in three minutes while the model was writing tests, and the build stopped. Nothing was merged and nothing was fabricated. The task stayed queued for a later attempt. That is the behaviour to look for, because a capped route will hit this and a loop that guesses past it is worse than one that stops.

Does Keelen give me the free model?

No. You connect your own OpenRouter key and pick the route. Keelen charges a flat monthly tier and never marks up or resells tokens, so what the provider charges you, free or paid, is between you and the provider. Free preview routes can also be withdrawn without notice, so keep a paid credential configured alongside.

Can I point my own project at an OpenRouter route today?

Not yet. OpenRouter routing is in early access and is off by default while we finish the consent step that records, per project, that you understand your prompts and repository contents reach a third-party provider. The run described on this page was done on our own key and our own throwaway repository. The engines you can select today are Anthropic Claude, OpenAI Codex, Zhipu GLM, and Moonshot Kimi, all on your own credentials. Ask us if you want to be in the first group when OpenRouter opens.