root · free for Mac, from Tura

The coding agent we work in.

Bring your OpenRouter key, pick any model, and give it real work. root is at its best on frontier models, and it carries smaller, cheaper ones through long tasks they would otherwise drop.

Free · no account · macOS 13+ on Apple silicon

Retry failed paymentsdeepseek-v4.1-flash
Failed payments should retry three times over 48 hours, then email the customer.
  • Checked memorytests run with uv run pytest -q
  • Read 2 files, searched codewebhook.py · retry.py
  • Edited retry.py+22 −9
  • Ran a commandpytest tests/billing · 38 passed

Failed payments now retry three times over 48 hours, then email the customer. I ran the billing tests: all 38 pass.

Add a test for the email…
acme-api Ask before acting

How it works

Bigger tasks from smaller models.

What root was built around from the first line, and the one thing it leaves to you.

Jev

Jev picks every step.

Plenty of smaller models write good code and then lose the thread: a dozen tool calls in, they describe the work instead of doing it, or reach for the wrong tool. In root, Jev, a decision model, chooses before every step: call a tool, which one, or answer. The model does what it is good at, the code; Jev keeps the task moving to the end.

  • A decision before every step, in well under a second
  • Broken tool arguments repaired, not thrown away
  • Long tasks finish on models that cost a fraction
Move the settings page to the new form components.
  • Searched codeOldForm · 9 files
  • Edited Profile.tsx+31 −44
  • Edited 7 files+182 −240
  • Ran a commandnpm test · 212 passed

Dhee

Memory is the spine.

Most coding agents remember through a Markdown file they append to. root was built on Dhee from the start: typed memory of your project’s conventions, commands and decisions, and of how you like to work. It comes back before every turn, is written after real work, and a fact said twice updates the first instead of piling up beside it.

  • Typed: decisions, conventions, commands, preferences
  • Recalled before every turn, kept after real work
  • Per project, and yours across projects
Add a refund endpoint.
  • Checked memory3 memories for this request
  • Edited refunds.py+46 −0
  • Ran a commandpytest · 41 passed

Refunds are in, in paise like the rest of billing, with tests.

Learning

It gets better as you use it.

After real work, root reviews what it did and turns it into a skill — a step-by-step playbook for next time — and into memories. You keep what is worth keeping. Then it keeps score: every skill is measured on the turns that use it, a version that does worse than the one before is rolled back, and one that hurts is retired.

  • Skills written from its own finished work
  • Kept only while they keep helping
  • Checks you approve often stop needing a yes
Learned and kept 1 lesson — skill “migrate-a-table”.

Skills root learned

migrate-a-tableWrite the migration, run it on a copy, then the model change and its tests.
14 of 15 turns clean
run-billing-testsBilling tests need the Stripe fixtures: uv run pytest -q tests/billing.
22 of 22 turns clean

Runs without asking

uv run pytestYou approved it 3 times.
Remove

Models

Your key. Any model.

Paste an OpenRouter key and choose any model that can call tools: a frontier model for the hardest work, a fast, cheap one for the rest, and fallbacks for when a provider is down. The key stays in your Mac’s Keychain. The agent never sees it, and there is no server of ours in between.

  • Every tool-capable model on OpenRouter
  • Fallbacks when a model or provider is down
  • Your key in your Keychain, never on our servers
Settings · Model
Model
deepseek/deepseek-v4.1-flash
Fallback models
qwen/qwen3-coder, z-ai/glm-4.6
Provider preference
Fastest
Jev step director
On
Memory
OpenRouter
API key
Saved (…4f2a)

In the box

Everything else a coding agent needs.

  • Undo any turnroot snapshots your files before each turn. One click puts them back, and the undo can be undone.
  • Asks before it actsEdits and commands wait for your yes unless you say otherwise. Outside the folder you opened, it always asks.
  • Installs what a task needsNeed pandas or a PDF library? root installs it into its own Python, never your system or project, and hands you the file it made.
  • Reads your documentsPDF, Word, Excel and PowerPoint. It edits spreadsheets and PDFs too.
  • GitHub and GmailIssues, pull requests, reviews and checks; your mail, with replies left as drafts. Anything it would write waits for you.
  • SchedulesPrompts it runs by itself: a nightly test run, a morning summary of open pull requests.

Get started

Working in two minutes.

  1. Download rootOpen the disk image and drag root to Applications.
  2. Add your OpenRouter keySettings → Model. Make a key at openrouter.ai/keys and pick a model.
  3. Open a folder and askChoose a project and say what you want done. root asks before it changes anything.

Questions

What people ask first.

Is root really free? +

Yes. The app is free to download and use, with no account and no login. You pay OpenRouter for the model tokens you use, at their prices; nothing comes to us.

Which models work best? +

Frontier models do the most on their own, and root is at its best with them. Where it changes things is on smaller, cheaper models that write good code but stumble over tool calls on a long task: with Jev choosing each step and Dhee remembering the project, they finish work they would otherwise drop.

What is Jev? +

A decision model. Before every step it scores the options — answer now, or which tool to call next — and the agent takes that step. The model you chose writes the code; Jev keeps the task moving. It runs through OpenRouter on your same key.

How is Dhee different from a memory file? +

A memory file is text an agent appends to and rereads. Dhee keeps typed memories — a decision, a convention, a command, a preference — scoped to the project or to you, brings back the ones that matter for the request, and replaces a fact when it changes instead of piling the new one beside it. It is the memory behind Tura.

How does it get better on its own? +

After real work, a reviewer reads what root did and proposes a skill — a step-by-step playbook — and memories. You keep or discard them, or let root keep what passes its overfit check. Each skill is then measured on the turns that use it: a new version that does worse than the one it replaced is rolled back, and one that hurts is retired.

Does my code leave my Mac? +

root runs on your Mac. What the model needs to read goes to the model you chose, through OpenRouter, under your key. Web searches, if you leave them on, go to a search service. Nothing goes to us.

Can it break things? +

It asks before editing files or running commands unless you choose otherwise, never reaches outside the folder you opened without asking, and every turn can be undone.

Which Macs does it run on? +

Macs with Apple silicon on macOS 13 or later.

Do you use it yourselves? +

Every day. This is the coding agent our team works in, the same app you download.

Built for ourselves. Free for you.

Download root, paste your OpenRouter key, and give it something real.