A terminal for working with agents
Let agents drive.
Keep the keys.
midna is a macOS terminal your agents can run themselves: they open terminals, start tests and watch servers. Anything that needs your OK waits in one place, and your shells survive every restart.
Free and open source · Apple Silicon · macOS 12+
› make the checkout form remember the last card ⏺ I'll add a saved-card option. Reading the form first. ⎿ Read src/checkout/Form.tsx (212 lines) ⏺ Updated Form.tsx and the payment hook. ⏺ Running the checkout tests before I finish.
npm test -- checkout?claude · checkout · webHow it works
Agents add. You decide.
- 1
midna open --monitor …Agents do the driving
Claude Code and Codex open terminals, run tests in a monitor you can watch, and read each other’s output through the midna CLI or MCP.
- 2
⌘J next in Needs youYou get asked, once
When an agent wants something only you can allow, it lands in Needs you. Approve it once, for ten minutes, or always, and it becomes a rule.
- 3
midna daemon upgradeNothing gets lost
A daemon owns every shell. Quit the app, update it, restart the daemon: your terminals keep running with the same screens and processes.
Built for agents
Everything is a method.
Every capability midna has is one call in a discoverable catalog. Agents use the midna CLI or MCP, and refusals tell them what to do next instead of failing silently.
midna capabilitiessays what an agent can do, and what only you canmidna schemais the full OpenRPC catalogmidna mcpexposes every method as a toolmidna explainsays why something is the way it is
$ midna open --name tests --monitor 'cargo test' $ midna rules add deny command 'git push --force*' $ midna rules remove r_41 rule.remove is human only; use rule.request_removal to ask the human $ midna rules request-removal r_41 --reason "blocks the release tag" $ midna attention "tests pass, ready for review"
Features
Less babysitting.
One queue for everything that’s waiting
Permission prompts, failed monitors and agent questions from every terminal, in one place. Answer them from the keyboard without hunting through tabs.
Learn more →RulesAgents may add. Only you remove.
Allow, ask or deny commands and tools by project. Agents can tighten the rules on themselves, but loosening them always comes back to you.
Learn more →TriggersWebhooks that start the work
A pull request opens on GitHub or Bitbucket and an agent starts reviewing it in its own terminal. Deliveries arrive over Tailscale Funnel, no server to pay for.
Learn more →ProjectsShells, monitors and agents
Group terminals by project. Split, pop out, search scrollback, click file paths and links, and jump between prompts.
Learn more →InsightsSee where the time goes
Turns, messages, spend and how long agents spent waiting on you, charted by day, week or month from midna’s own event log.
Learn more →KassTalk to your agents
Dictate into any terminal with Kass. midna opens a real text field the moment you start speaking, so dictation can read and edit what you say.
Learn more →Open source
Built in the open.
midna is free, MIT licensed and developed on GitHub. Star the repository to follow along, and tell us when something doesn’t work the way you expect.
Which Macs does it run on?
Macs with Apple Silicon, on macOS 12 or later. midna is a native app written in Rust, with GPUI for the window and libghostty for the terminal engine.
Which agents does it work with?
Claude Code and Codex are built in: midna wires up their hooks, status, cost and MCP for the terminals it starts, without touching your global agent config. Any other tool can use the midna CLI or the MCP server.
Can an agent approve its own requests?
No. Approving, removing rules, setting webhook secrets, enabling triggers and changing human-only settings belong to you. When an agent tries one, it becomes a Needs you item instead. The security page explains where that boundary holds and where it doesn’t.
What happens to my terminals when midna updates?
They keep running. The app swaps itself atomically and relaunches, and the daemon re-executes in place with the same process ID, handing over every shell and its screen.
Does midna send my data anywhere?
No. Your terminals, events and settings stay on your Mac. midna goes online to check GitHub for updates and, if you turn on triggers, to receive the webhooks you configured.
What does it cost?
Nothing. midna is free and open source under the MIT license. There’s no account.
Stop babysitting tabs.
Free, no account, and your terminals stay on your Mac.