KIRYNDownload for Mac

A console for Claude Code

See which agent is waiting on you.

Kiryn lists every Claude Code session on your machine and shows what each one is doing. When a session stops to ask you something, Kiryn marks it so it doesn't sit there unanswered. It runs entirely on your computer.

kiryn
Answering a session, then building the ticket it filed · real console, sample workspace · full size

01The fleet

The Fleet board

Each Claude Code session on your machine gets a numbered card. Kiryn reads the transcripts Claude Code already writes, so sessions you started in your own terminal show up too. A session that has stopped to ask you something is marked on its card. From the board you can open a session and type into it, and any session can be attached to a full terminal window.

repo · branch
which checkout it's in
tool
what it's running this second
context
how full its window is
asked you something
the one that needs you
kiryn
The Fleet board: two sessions running, box 4 marked asked you something, and the live activity feed
The Fleet board, with box 4 waiting on you · real console, sample workspace

02How it behaves

How Kiryn handles input

Kiryn opens terminals and passes your input to them, and Claude Code does the actual work. These are the rules for what Kiryn will send, and when.

  1. 01

    Speech goes where you point it

    There are two buttons: one to talk to Kiryn and one to talk to the session in front of you. When neither is on, Kiryn ignores the microphone. A voiceprint also filters out other people in the room before anything is transcribed.

  2. 02

    Dictation is typed, not sent

    What you say appears in the session's input line as you speak, and nothing is sent until you say "send it" or press Enter. If a model wrote a command, Kiryn shows you the exact text and waits for you to approve it.

  3. 03

    Ambiguous requests get a question

    If two tasks match what you said, Kiryn asks which one you meant. A command set up for one project won't run in another.

  4. 04

    Menus become buttons

    When a session shows a numbered menu, Kiryn reads the options and shows them as buttons. You can click one or say it.

  5. 05

    Everything sent is logged

    Every line Kiryn sends to a session is written to .kiryn/audit.log, along with who asked for it.

03Voice and keyboard

Talk to it or type

Speech recognition and the spoken replies both run on your machine, and no audio leaves it. Hold space to talk at any time. The microphone switches itself off after three minutes of silence.

You don't need a microphone at all. Everything voice can do is also in the command bar, which lists the spoken version of each command next to it.

⌘K1-9a · s · chold space
kiryn
The command bar open over the Fleet board, listing commands with the spoken version of each beside it
The command bar, with the spoken form of each command · real console, sample workspace

04Plans

From a plan to a pull request.

The plan station takes a markdown plan through to a pull request. The commands it runs are ordinary Claude Code skills written in markdown, so they also work without Kiryn.

  1. Plan

    Plans are markdown files kept in one folder outside your repositories, since a plan often covers more than one. Kiryn renders and lints them.

  2. Prove

    Each acceptance criterion names the command that checks it. Kiryn runs those commands before work starts and flags any that already pass, since they can't show the change did anything.

  3. Dispatch

    An agent estimates the size of the ticket and picks the command to run it. Each run gets its own git worktree, so several can run in one repository.

  4. Build

    The claude CLI does the work. Tests are written by an agent that can't see the implementation, then the project's own checks run and a separate process reviews the diff.

  5. Accept

    Each criterion is shown next to what the transcript says was actually run. Kiryn doesn't mark tickets done. You do.

kiryn
The plan station: an epic with four tickets, two of them building in boxes 1 and 2, and the plan's goal, why and success criteria
An epic in the plan station, two tickets building · real console, sample workspace

Queue

Run a list of plans in order

Two runs go at once across the console, one per repository, each in its own checkout. If a run fails, the queue stops and records the reason.

Build or ship

You choose how far a run goes

Build leaves commits on a local branch. Ship also pushes the branch and opens a pull request.

Review

A different model reviews the work

Each build is reviewed in a new session on a different model, not by the agent that wrote the code.

05Design

Reviewing designs

A design is a folder with a design.md that describes it and one or more HTML screens. Kiryn renders the screens live, in a sandboxed frame with no network access.

Next to the screens is a chat with an agent that can edit the design. Once you approve a design you can send it to the plan station, where a flow usually becomes an epic and each screen a ticket.

kiryn
The design station showing the first of three onboarding screens, rendered live, waiting for approval
A three-screen flow, rendered live and waiting for approval · real console, sample workspace
kiryn
The writing station with a draft on the left and its findings in the margin: an em dash to fix, and sets of three and a closing one-liner to look at
A draft with its findings in the margin · real console, sample workspace

06Writing

Checking drafts

Drafts are markdown files written by an agent. Kiryn checks each one against a prose style guide and lists every problem next to the line it's on. Em dashes and banned words are marked to fix, and patterns like sets of three are marked to look at.

There's no overall score. Some things can't be checked automatically, like whether the opening works, and Kiryn lists those as questions for you to answer yourself.

07Security

Dependency security

Pick a repository and Kiryn fetches its Dependabot alerts and runs npm audit on its lockfile. The results are combined into one row per package, showing the version that fixes it and whether the package ships to users or is only used in the build.

  • Dependabot has three separate settings. If one is off, the screen says which, so an empty list isn't mistaken for a clean repository.
  • Fixing opens a single session for all the affected packages.
  • Merging only merges the Dependabot pull requests you were shown, not any that arrived since.
  • Requests involving secret scanning are blocked, and anything Kiryn logs is redacted first.
kiryn
The security station after reading a repository: a note that Dependabot version updates are off, one pull request ready to merge, and eight packages to update in one session
One repository: a setting that's off, a pull request to merge, packages to fix · real console, sample workspace

08Privacy

What Kiryn reads and sends

Kiryn only listens on 127.0.0.1, and it checks the origin of every request because it can type into your sessions.

$ kiryn --what-leaves
Read, locally
Claude Code transcripts on the machine, including sessions Kiryn didn't start. It also reads your repositories' git state and the text of the terminals it opened.
Stored, locally
A run log in .kiryn/. If you set up voice recognition, a voiceprint stored as 256 numbers. Audio is never saved.
Sent, when you ask
If you add an Anthropic Console key, sentences you speak to Kiryn are sent to Anthropic. When you check a repository's security, Kiryn asks GitHub for its alerts and runs npm audit.
Never
Your code. Kiryn doesn't run a coding agent of its own; it starts the claude CLI under your account. It holds one credential, and a test checks that nothing else can reach it.

Kiryn for Mac

The app is signed and notarized, and it runs on both Apple silicon and Intel Macs. Kiryn is free and licensed under Apache 2.0. Linux and Windows builds will follow.

Download for Mac

Version 0.1.2 · released 2026-10-07 · 314 MB · release notes

New in 0.1.2: The API key step in setup is now clearly optional.

SHA-256 80090c959211d6c088da5b14fb0128df10174d1996ca02204d8f81067bea5f85