Proactive AI agent · Self-evolving
It doesn't wait to be asked.It knows when not to speak.
Rna lives in your project. It keeps investigating while you are away, and only comes to you with evidence. Correct it once and it grows a rule it will check.
Interactive demoA scripted run built on the real decision points
HUD redesign~/ink-bird
IdleMake the HUD score badge readable at a glance.
Decision log
Every wake is judged first, before the main model is called
Initiative
Most wakes end in silence
Changes in the project keep waking Rna. Each time it picks one of four: wait, work, share or learn. Change your own state below and watch what moves, and what does not.
- Wait
- 29
- Work
- 6
- Share
- 4
- Learn
- 1
Delivered
- Nothing worth telling you yet.
Held
No fixed quota of messages
Whether it speaks depends on the evidence this time, and on how you reacted to similar messages before.
Your state only affects speaking
Typing, focus and mute only delay messages. Investigation and work in the background carry on.
Ignored topics need more to resurface
A topic nobody answers needs stronger evidence next time. Reply and settle it, and the topic closes.
No re-checking what was just checked
Before working it asks: does this only repeat a check just done? With nothing changed since, it does not spend the tokens again.
While you are away
Close the window and the project is still being understood. This is what a real piece of background work looks like.
Notice
A post-build screenshot comparison shows a new difference at 390px. That is evidence, not a hunch.
Screenshot diff · 390 × 844
HUD score badge overlaps foreground/reeds.png by 38%
Source: post-build screenshot · 4 min ago
Investigate
The background reproduces it in a sandbox. Every file it touches is snapshotted and can be reverted in one click.
Reproduce at 390px and check layering
- Start preview at 127.0.0.1:5173
- Capture 390 and 430 widths
- Compare z-index: HUD 20, reeds 25
- Write hud-layering-report.md
Wait to tell you
When you return, progress is grouped by topic. Minor things go to the inbox instead of interrupting you.
- 1HUD under reedsOnly at 390px; 430px and up are fine. Report is ready.
- 2Low-end frame rateRedmi 9 back to 52 fps with transparency sorting off.
- 3Asset cleanup · mutedTwo unreferenced .ogg files, to delete in the next cleanup.
Keep promises
Anything it said it would do becomes a commitment, with a recipient and a due time judged by evidence.
Move the HUD above the reeds and add a 390px screenshot
You asked · 3 h overdue
Re-measure Redmi 9 frame rate with sorting off
Rna promised · due in 3 h
Screenshot diff · 390 × 844
HUD score badge overlaps foreground/reeds.png by 38%
Source: post-build screenshot · 4 min ago
Let it make changes. Take any of them back.
Subagents and background work each change files in their own worktree and merge back when done. Every turn keeps a checkpoint you can roll back in one click, and Rna remembers what you undid.
worker · fix HUD layering
Working in its own worktree- src/hud.css
- src/reeds.js
worker · document 390px
Working in its own worktree- docs/hud.md
- src/hud.css
Project folder
- src/hud.css
- src/reeds.jsyour uncommitted edit
- docs/hud.md
Evolution
Correct it once. It grows a rule.
Evolution changes one gene at a time. Pick a correction and watch it get routed, tested, and grown onto the project gene tree.
Pick a correction
JEV routing
Gates
- Program check
- Diff review
- Real run
- Trial in use
Generation 7
Pick a node on the tree to see details
Judge cheaply first. Let the big model write second.
Yes or no, which one, how much: those go to JEV, a judge model that only answers typed questions and never writes text. The main model shows up only when something needs writing.
Study data and how to ask- ≈1/1000
- of the main model’s costAbout $0.042 per million input tokens; output is free
- ≈200ms
- per judgmentAn answer before a single word is written
- 282ms
- 20 questions, one call4.6 s when asked as 20 separate calls
Figures from a capability study of jev-1.13.0 on 2 October 2026.
Desktop, terminal and code share one daemon
Desktop
A macOS Apple Silicon app with Node and the daemon built in. Close the window; background work keeps going.
CLI
Connects to the same daemon as the desktop app. Start a session in the terminal, continue it on the desktop.
Rna SDK
Its own execution kernel with no third-party runtime dependencies. Sessions, tools, skills, MCP and the initiative loop all work on their own.
# Hand it to the system service manager; closing the terminal is fine./rna service start# A folder is a project; opening it again reuses the project./rna project-open ~/code/ink-bird./rna chat --project PROJECT_ID# See what the background is doing, and steer it if needed./rna background PROJECT_ID./rna background PROJECT_ID steer ACTION_ID --text 'Check official sources first'const session = await createSession({ sessionId: 'hud', projectId: 'ink-bird', cwd, stateDir, model, tools: await createWorkspaceTools(cwd, { deniedPaths: [stateDir] }),});const running = session.prompt('Check HUD layering at 390px');await session.steer('Low-end devices first'); // at the next safe boundaryawait session.followUp('Add a screenshot after'); // right after this turnawait running;Status
What works today, and what does not yet
Every release ships with its acceptance record, including what failed.
Works today
- macOS installers (Apple silicon and Intel), each started once on its own platform before release
- 17 provider presets, including signing in with a ChatGPT plan
- Subagents and background work change files in their own worktrees and merge back; every turn can be rolled back
- Memory is either built-in local memory (no Docker) or OpenViking semantic memory, with explicit errors when the service is unavailable
- Skill and MCP install, assigned per project, even from inside a chat
- Background commands run under macOS seatbelt; changes revert in one click
- App updates, restore points and offline data recovery
Not yet
- Developer ID signing, Apple notarization and an update feed
- Windows and Linux desktop builds are previews and not code-signed
- Keys live in a local 0600 file, not the system keychain
- Foreground commands and MCP are app-level checks, not an OS sandbox
- Claude connects with an API key only; Anthropic does not allow subscriptions in third-party apps
Let the project move on its own
Projects, sessions and keys stay on your machine. Connect the model service you already use and open your first project in minutes.