Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## [Unreleased]

### Fixed

- The key notes were out of date. Cerebras is no longer free: it gives a $5 trial for 30 days and asks for a card. Mistral has a free plan with $10 a month in API credits, not the old Experiment plan. Groq's free plan allows 8K tokens a minute. `anus setup` and the README now say so, and warn that free tiers may use what you send to improve their models.

## [0.2.2] - 2026-09-30

### New Features
Expand Down
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ ANUS asks for at least one free key. Each takes a minute to get:

| Service | Get a key | What is free |
| --- | --- | --- |
| OpenRouter | [openrouter.ai/keys](https://openrouter.ai/keys) | about fifteen free models; 50 requests a day, 1000 after a one-time $10 top-up |
| Google Gemini | [aistudio.google.com/apikey](https://aistudio.google.com/apikey) | free tier while billing is off on the project |
| Groq | [console.groq.com/keys](https://console.groq.com/keys) | free tier |
| Cerebras | [cloud.cerebras.ai](https://cloud.cerebras.ai) | free tier |
| Mistral | [console.mistral.ai/api-keys](https://console.mistral.ai/api-keys) | free Experiment plan |
| OpenRouter | [openrouter.ai/keys](https://openrouter.ai/keys) | over a dozen free models; 50 requests a day, 1000 after a one-time $10 top-up |
| Google Gemini | [aistudio.google.com/apikey](https://aistudio.google.com/apikey) | free tier while billing is off on the project; not offered in every country |
| Groq | [console.groq.com/keys](https://console.groq.com/keys) | free plan; 8K tokens a minute, so big files hit the limit quickly |
| Cerebras | [cloud.cerebras.ai](https://cloud.cerebras.ai) | not free any more: a $5 trial for 30 days, and it asks for a card. Optional |
| Mistral | [console.mistral.ai/api-keys](https://console.mistral.ai/api-keys) | free plan: $10 a month in API credits, no card |

Start with OpenRouter. More keys mean more free requests a day and more models to fall back on. Change keys any time with `anus setup`.
Start with OpenRouter. More keys mean more free requests a day and more models to fall back on. Change keys any time with `anus setup`. Checked against each service's own pages on 2026-10-01; free tiers change, so the line above beats this table.

## How "free" works

Expand All @@ -46,6 +46,7 @@ Start with OpenRouter. More keys mean more free requests a day and more models t
- A model that hits its rate limit rests for a minute; one that hit its daily cap rests until the cap resets. The request moves on without waiting.
- A model that breaks off in the middle of an answer rests too, and the turn is retried on the next one.
- The footer shows which model answered. Type `/free` to see the whole list: awake, resting, or no key.
- Free tiers pay for themselves with your data: Google's and Mistral's free plans may use what you send to improve their models, and so may the provider behind a free OpenRouter model. Keep secrets out of the folder you run ANUS in.
- ANUS uses only the keys you gave it in `anus setup`. Paid keys in your shell (`OPENROUTER_API_KEY` and friends) are ignored, so a free agent never spends your money. `ANUS_ENV_KEYS=1` lets it use them.

## Commands
Expand Down
4 changes: 2 additions & 2 deletions lib/free-models.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"updated": "2026-09-29",
"updated": "2026-10-01",
"about": "Free models ANUS routes between, best first. iq: Artificial Analysis index; ping: answered a \"hi\" in the last hours (ok, flaky, down).",
"models": [
{
Expand Down Expand Up @@ -76,7 +76,7 @@
{
"provider": "openrouter",
"id": "poolside/laguna-s-2.1:free",
"ping": "flaky"
"ping": "ok"
},
{
"provider": "openrouter",
Expand Down
10 changes: 5 additions & 5 deletions lib/providers.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,35 +10,35 @@ export const PROVIDERS = [
name: 'OpenRouter',
env: 'OPENROUTER_API_KEY',
keyUrl: 'https://openrouter.ai/keys',
note: 'one key, about fifteen free models; 50 requests a day, 1000 after a one-time $10 top-up',
note: 'one key, over a dozen free models; 50 requests a day, 1000 after a one-time $10 top-up',
},
{
id: 'google',
name: 'Google Gemini',
env: 'GEMINI_API_KEY',
keyUrl: 'https://aistudio.google.com/apikey',
note: 'free tier while billing is off on the project',
note: 'free tier while billing is off on the project; not offered in every country',
},
{
id: 'groq',
name: 'Groq',
env: 'GROQ_API_KEY',
keyUrl: 'https://console.groq.com/keys',
note: 'free tier, very fast',
note: 'free plan, very fast; 8K tokens a minute, so big files hit the limit quickly',
},
{
id: 'cerebras',
name: 'Cerebras',
env: 'CEREBRAS_API_KEY',
keyUrl: 'https://cloud.cerebras.ai',
note: 'free tier, very fast',
note: 'not free any more: a $5 trial for 30 days, and it asks for a card',
},
{
id: 'mistral',
name: 'Mistral',
env: 'MISTRAL_API_KEY',
keyUrl: 'https://console.mistral.ai/api-keys',
note: 'free Experiment plan',
note: 'free plan: $10 a month in API credits, no card',
},
];

Expand Down
5 changes: 3 additions & 2 deletions lib/setup.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,12 @@ export async function runSetup(agentDir) {
[
'',
bold('ANUS runs on free models.') + ' It needs at least one free key. Keys stay on this machine.',
'Each service below gives a free key in a minute. More keys = more free requests a day.',
'Each service below gives a key in a minute; the line under it says what is free. More keys = more free requests a day.',
'',
...PROVIDERS.map((p, i) => ` ${i + 1}. ${bold(p.name.padEnd(14))} ${p.keyUrl}\n ${dim(p.note)}${have.has(p.id) ? ' (key saved)' : ''}`),
'',
'Start with OpenRouter: one key opens about fifteen free models.',
'Start with OpenRouter: one key opens over a dozen free models.',
'Free tiers may use what you send to improve their models. Keep secrets out of the folder you run ANUS in.',
'Paste a key and press Enter. Enter on an empty line skips.',
'',
].join('\n'),
Expand Down
2 changes: 1 addition & 1 deletion llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
> A free coding agent in your terminal. It reads your code, edits files and runs commands. Every request goes to the smartest free model that is answering today; when one says "not now", the next one takes the same request.

- Install: `npm install -g @anus-dev/anus`, then run `anus`. Or: `curl -fsSL https://anus.dev/install | sh`. Needs Node.js 22.19+.
- Free keys: ANUS asks for at least one free key (OpenRouter, Google Gemini, Groq, Cerebras or Mistral). No card. Keys stay on your machine.
- Free keys: ANUS asks for at least one free key (OpenRouter, Google Gemini, Groq or Mistral; no card). Cerebras is optional and no longer free: a $5 trial that asks for a card. Free tiers may use your prompts to improve their models. Keys stay on your machine.
- `anus setup` adds or changes keys. `/free` shows which free models are awake.
- Built on the pi coding agent engine (MIT). License: MIT.

Expand Down
Loading