diff --git a/CHANGELOG.md b/CHANGELOG.md index 41990ec..239f5b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/README.md b/README.md index 3041562..d3e1c6f 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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 diff --git a/lib/free-models.json b/lib/free-models.json index 77f1910..574ed5c 100644 --- a/lib/free-models.json +++ b/lib/free-models.json @@ -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": [ { @@ -76,7 +76,7 @@ { "provider": "openrouter", "id": "poolside/laguna-s-2.1:free", - "ping": "flaky" + "ping": "ok" }, { "provider": "openrouter", diff --git a/lib/providers.mjs b/lib/providers.mjs index 4bd050b..c9b9e76 100644 --- a/lib/providers.mjs +++ b/lib/providers.mjs @@ -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', }, ]; diff --git a/lib/setup.mjs b/lib/setup.mjs index f580568..b133914 100644 --- a/lib/setup.mjs +++ b/lib/setup.mjs @@ -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'), diff --git a/llms.txt b/llms.txt index cb64ddd..912c281 100644 --- a/llms.txt +++ b/llms.txt @@ -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.