Queue it at night. Review it in the morning.

Your coding agents work while you sleep, each on its own branch. In the morning Vakr hands you the work with proof of what it did. Example below ↓

A Mac app for Claude Code, Codex, OpenCode and about 22 more agents. Your code stays on your Mac.

Vakr in 42 seconds.

Music: “Happy Beats / Business Moves vol. 9” by Sascha Ende (ende.app), CC BY 4.0.

A day with Vakr.

Pick an hour. The window on the rightbelow is the app at that moment, and it works: merge the review, answer the agent, halt the runs.

Vakr07:30
This Mac · 5 running

An interactive demo with sample Projects. Nothing you do here is sent anywhere.

And the real thing.

The Mac app itself, recorded on sample Projects: a review read, one claim found untrue, and sent back to the agent.

Every run shows its work.

An agent saying “done” isn’t evidence. Every review in Vakr carries what was actually run. Point atTap a check to see what stands behind it.

Rate-limit the job scannerclaude · vakr/rate-limit-scanner · 07:30
  • Tests you approved are unchangedtest/scanner.limit.test.ts✓ Passed
  • Tests passpnpm test scanner · exit 0✓ Passed
  • Claims match the record4 of 4 confirmed✓ Passed
  • Codex tried to break itno failing test found✓ Passed

Tests first

The agent writes failing tests for the task. You read a few short tests instead of a long diff, then approve. Only then does it write the code, and it can’t touch the tests you approved.

What it said, checked against what it ran

“All tests pass” is set against the actual command and its exit code. If what it said doesn’t match what it ran, Vakr blocks the merge.

“All tests pass” · 3 failed at 07:12Merge blocked

Another agent tries to break it

An agent from a different vendor gets the diff with one job: write a test that fails. If it can’t, there is nothing for you to read. You ask for it on a review, or turn it on for every run.

A track record per Repo

Merged clean, reworked or reverted, taken from your own reviews and shown when you pick an agent.

claude · 11 of 14 cleanSuggested

Budgets per Project

Each Project gets a share of your weekly limit, so a busy night can’t use all of it.

Shopfront26 of 40%
Halt all runsOne switch stops every running agent.
MachinesPair a VPS or another Mac. Its runs appear in the same Needs you.
Your phoneAnswer and approve from Safari over Tailscale, a free private network between your devices.
Local and lightNative SwiftUI, 0% CPU at rest. Your code stays on your Mac.

Free during early access.

Everything is unlocked while Vakr is in early access, and it costs nothing. Pricing for later is coming soon. Everyone on the waitlist hears about it first, before anything costs money.

Nothing hosted, and Vakr never sells tokens: your agents stay on the plans you already pay for.

Join the waitlist

Questions.

Ask the way you’d search in the app. Press / from anywhere on the page. Type a word and the list narrows.

What is Vakr?

A Mac app with a small background service that tracks your Projects and the coding agents working on them. It queues work, collects everything waiting on you into Needs you, and checks each run before you merge.

Which agents does it work with?

Claude Code and Codex natively, and about 22 more over ACP, a standard way for apps to talk to coding agents, OpenCode among them. Vakr uses the subscriptions you already have; it never sells tokens and never installs an agent for you.

Will it touch my main branch?

No. Every run gets its own branch and worktree. Vakr never pushes to main, and it never writes to your agent config without asking and making a backup first.

Does Vakr write to my repos?

Each run works in its own git worktree, a folder named .vakr-worktrees inside the repo, on its own branch. Vakr adds that folder name to the repo’s .git/info/exclude, so git ignores it. It never pushes, and it never changes main until you merge. Worktrees of ended runs are removed when you ask: in Agents, or with vakr worktrees clean, which only removes clean ones. The branches stay.

What can an agent do when I’m not watching?

Runs use the Project’s permission mode, Auto by default, and the Project’s agent policy, which can block commands such as force-pushes. Halt all runs stops everything at once. Claude Code asks for anything the mode doesn’t allow, and the question waits in Needs you. Codex runs don’t ask for approval; they stay in their own worktree. A second agent you ask to try to break a change runs without asking, in a sealed copy of the repo.

Where does my code go?

Your sessions, code and Vakr’s database stay on your Mac, and Vakr sends nothing to me: no analytics, no account. Your agents send your code to their own company (Anthropic for Claude Code, OpenAI for Codex), as they do without Vakr. Vakr itself asks Claude Haiku, through your own Claude Code and on your plan, to check each finished run against what you asked and to keep each Project’s notes; both read your prompt and the change, and you can turn them off. Machines you pair talk to each other directly and encrypted. Anything else, like the built-in Tailscale, phone notifications or a second agent from another company, is off until you turn it on. The privacy page lists each one.

Can I use it from my phone?

Yes. Turn on Your phone in Settings › Machines and open the page over Tailscale to answer questions and approve runs.

What will it cost?

Nothing during early access, with everything unlocked. Pricing for after that is coming soon, and the waitlist hears about it first.

How is it different from running Claude Code in a few terminals?

Terminals give you agents. Vakr gives you one list for everything they need from you, a view across every Project, and proof with each review: the tests you approved are untouched, what the agent said matches what it ran, and a second agent can be sent to try to break it.

What does it need?

macOS 15 or later on Apple silicon or Intel, and at least one coding agent installed and signed in. A Linux VPS can join as a Machine.

How do I remove Vakr?

In the app, Settings › General › Remove Vakr from this Mac… uninstalls it. It stops the background helper, removes the login item and the vakr command, and keeps or deletes Vakr’s data, whichever you pick. A backup is made first.

By hand:

  1. Quit Vakr.
  2. Run launchctl bootout gui/$(id -u)/app.vakr.daemon.
  3. Drag Vakr to the Trash.
  4. Delete ~/Library/Application Support/Vakr if you don’t want its data.
  5. Remove /usr/local/bin/vakr if you added the terminal command.

Your repos, branches and agents are not touched.

The work is done. Here’s the proof.

I’m letting people in a few at a time. One email when it’s your turn.

Vakr VAH-ker · Old Norse for awake and watchful. Árvakr, “early awake”, is one of the horses that pull the Sun.