Answer · running on a free model

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

Updated 11 September 2026

We ran this test inside Keelen. It used a free model on the OpenRouter route stealth/ox-alpha. It is not open to customer repos. We measured it on 24 August 2026. The run used our own OpenRouter key on a throwaway repo. One plain English request went in. The first feature merged 49 minutes after the repo was made. It was 125 lines across 3 files. A test was proven to fail without the code. A second model gave the change an adversarial review, and CI was green. The second feature took two tries. The free provider was full mid build and rejected five requests in three minutes. The loop merged nothing and paged nobody. A later run finished it. Both features are merged. The provider's own meter for the whole run read 49 requests, 2.33 million tokens, and $0.00. Free routes do retain your prompts, so treat one as public and disposable. It is not a cheap version of a paid model.

Keelen does not resell tokens. For normal projects, connect a supported AI subscription or API key. This page reports only what one test 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 often charge you in your own data. The listing for the route we tested says, word for word: "Prompts and completions for this model are retained by the provider and are not used for training". We do not know who runs that route. Use free routes only on code you are glad to share. For private code, pick a named provider. Choose one with a policy that keeps no data, and pay for it.

  2. Convert the rate limit into a daily work budget

    A free route has a request cap. It has no token cap. The one we used allows 20 requests a minute and 1,000 a day. That 1,000 only applies after a $10 one time credit purchase on OpenRouter. Below $10 spent in total it is 50 a day. A small, clear feature fits inside that many times over. A large repo with heavy context fits far fewer. Plan on a few 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. They go away when that is done. Keep a paid credential set up next to the free one. Then you can drop the free route with a settings change. Your project keeps running.

  4. Let the gates do the judging

    A cheap or new model is where checks earn their keep. Ask for a test that fails before the code exists, an independent review of the diff, and a green CI check. Then you stop asking how good the model is, and ask whether the change passed.

  5. Give it a small, well specified first job

    Our test used a small Python retry library with two features. Feature 2 needed feature 1. That is the right size for a first run on a capped route. It is big enough to prove the pipeline. It is small enough that a full provider costs you an afternoon instead of a release. Both features merged. The second one merged on its second try.

What the run actually did

One written request asked for two features in a small Python retry library. Feature 2 needed feature 1. The loop turned that one request into 2 roadmap items and 2 steering rules by itself. Feature 1 merged 49 minutes after the repo was made: 125 lines across 3 files. 22 seconds after that merge, the loop checked that feature 1 was really in the main branch. It did this before it planned feature 2. It did not assume 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 ran the tests again, 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 first build died. Not on our quota: we had used 27 of the 1,000 requests a day. The free provider was full. It returned five HTTP 429 rejections in three minutes while the model was writing tests. The loop merged nothing, invented nothing, and raised no escalation. It left the task queued and picked it up on a later run, which merged. A provider limit is the failure to expect from a free route. The real test of a loop is what it does with one. It stops cleanly, then finishes later with no one watching.

What stops a run from burning quota on a dead end

Failed runs fall into 30 kinds. Small infrastructure blips and provider limits retry on a budget. They never count against your work. A real dead end becomes one plain English card in your Needs-you queue, with a recommended action. The project pauses instead of burning quota.

Whose account pays for the tokens

Keelen runs on credentials you connect. Anthropic Claude works with a Claude Code subscription login or an API key. No Max plan is required. You can also connect OpenAI Codex, GLM, Kimi, or xAI Grok. Coding-engine token use bills to your own provider account at cost. Keelen charges one flat monthly fee and adds no markup.

See the plans →

The five gates, in full

A separate adversarial reviewer reads the diff. It does not see the conversation that wrote the code. The review model comes from your project settings. Red first proof and clean checkout tests need a verified project test command. Gated auto-merge needs the repository checks and a review window you set up. Plan review, manual merge, and branch-only mode each pick where a person must decide. Check the real evidence before you accept the result.

When Keelen is not the answer

  • Your code is private or under a customer contract. Free and preview routes retain prompts and completions. The provider of the route we tested is anonymous. That rules the route out for that code, and no amount of convenience changes it.
  • You need steady throughput. Our second feature stalled. The free provider filled up and rejected five requests in three minutes. We had used 27 of the 1,000 daily requests at that point. The wall was not ours, and we could not buy our way past it. It shipped on a later try. That is fine for a side project. It is useless if you needed it that afternoon.
  • You have a large codebase with heavy context. The daily request cap buys you a few full iterations a day at that end. That 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. The provider account is always yours, on a free route or a paid one.

Hand the work to a loop

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

FAQ

Can I run an AI coding agent for free?

Not through Keelen today. The recorded $0.00 run was an internal OpenRouter test on Keelen's own key and a throwaway repo. For normal projects, connect a supported AI subscription or API key. The platform you run the loop on is a separate charge.

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. The provider behind that route is anonymous. Retained is not private. Use free routes on code you are glad to share. For anything else, choose a named provider with a policy that keeps no data.

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. That 1,000 only applies once you have made a $10 one time credit purchase on OpenRouter. Below $10 in lifetime spend it is 50 a day. One small, clear feature fits many times over. A large repo with heavy context fits far fewer. Expect a few 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, and a later run picked it up and merged it. That is the behaviour to look for: a capped route will hit this, and a loop that guesses past it is worse than one that stops and retries.

Does Keelen give me the free model?

No. This recorded test used Keelen's own OpenRouter key. The OpenRouter coding-engine route stays limited to Keelen's own test and benchmark projects. It is off for customer repos. Separately, when hosted chat is on, Keelen pays for that inference through OpenRouter and DeepInfra. Keelen does not resell tokens. The provider sets a route's price and limits. A free preview route can be withdrawn without notice.

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

No. The OpenRouter coding-engine route stays limited to Keelen's own test and benchmark projects. It is off for customer repos. Separately, when hosted chat is on, Keelen pays for that inference through OpenRouter and DeepInfra. The run described here used our own key and our own throwaway repo. You can connect Claude Code, Codex, GLM, Kimi, or Grok with your own supported subscription or API key.