Everyone is building cockpits for AI agents.

We built the crew.

Introducing niwaa crew that can't merge its own work

hackathon.24h

public 24h · 11 Nov 2026

you propose, the crew builds

prize, awarded by a jury: USD 1000 cash + USD 1000 of Tsukumo consulting + lifetime niwa

Enter the hackathon

propose an idea, or vote for others

niwa is a terminal for macOS, Windows and Linux that runs Claude Code and Codex agents on your own machine. They take tickets from a board and work on separate branches. A reviewer that didn't write the code decides what merges.

Six ideas. Built live in 24 hours.

You propose a project and vote. The five with the most votes, plus one niwa pick, get built by the crew in a public 24-hour run. Then the six teams meet live, and a jury awards the prize.

enter.hackathon

Leave your email. We send you a sign-in link now.

proposals open Mon 19 Oct 2026

hackathon.timeline

  1. proposefrom Mon 19 OctDescribe one small project: the problem, and what done looks like.
  2. voteuntil Fri 6 NovUpvote the projects you want built. One vote per project per account.
  3. selectFri 6 NovThe top 5 by votes, at least 5 each, plus one niwa pick.
  4. buildWed 11 NovThe crew builds all six live in 24 hours, every change through the gate.
  5. juryafter the runA live with the six teams, then a jury picks the winner.

prize.txt

USD 1000 cash

USD 1000 of Tsukumo consulting

lifetime niwa

awarded by a jury after the live

rules.md

  • Small: an idea one person could build in 1 to 3 hours.
  • Outside APIs and data only if public, free and self-serve. Never paste a key.
  • No personal data.
  • The code is published under the MIT licence.

From autocomplete to a crew

autocomplete

next line

+ you accept each one

chat agent

one task, one chat

+ you paste the result

cockpit

approve every command

watch every pane

+ you are the reviewer

niwa · crew + gate

the agent that wrote it never merges it

  1. board
  2. worktree
  3. gate
  4. merge

Clock 1.1 · toy

local time

Rake 1.1 · toy

niwa.site

version 0.1.0 · built 2026-09-28

by Tsukumo · made in Switzerland

Watching agents is a second job.

A cockpit gives you a better view of your agents. More panes, more diffs, more buttons that say approve. You still read every change. Run five agents that way and you have become their full-time reviewer, for code you didn't write.

We wanted the opposite. Hand the work to a crew and give the crew one rule it can't argue with: the agent that wrote a change never decides whether it merges. Another agent, starting from a clean context, checks the change against the ticket. It approves, or it sends the work back with findings.

You get called when the decision is actually yours. A ticket that keeps failing. A tradeoff the ticket didn't settle. Everything else you read in the morning, in the merge log. See how a ticket moves.

Thirty days of merges

niwa is built by its own crew, so its git history is the record. These figures come straight from it, for 29 August to 28 September 2026.

record.summary · 29 Aug – 28 Sep 2026

  • 441

    changes merged into our integration branch

  • 98.9%

    carry an approval from a reviewer that wasn't the author (436 of 441)

  • 52%

    were sent back at least once before merging (227 of 437)

  • 32

    merged through the gate between midnight and 8 a.m. on 28 September

Rounds before merge: 48% one, 31% two, 21% three or more. The five changes without an approval carry no reviewer name in their trailer, and we count them as unapproved.

src: git log origin/v1 @ 041be95839cc · 28 Sep 2026

record.rounds · rounds before merge

Merged changes by review rounds before mergeBar chart. 210 changes merged on the first round, 134 on the second, 60 on the third, 19 on the fourth, 10 on the fifth, none on the sixth, 2 on the seventh and 2 on the eighth. 437 changes in all.210r1134r260r319r410r50r62r72r8
Merged changes by review rounds before merge
roundschanges
1210
2134
360
419
510
60
72
82

src: git log origin/v1 @ 041be95839cc · 28 Sep 2026

receipt.trailer

niwa doctor: warn when a repo declares no post-merge check

Task:        c24ee17b
Doer:        worker-3
Branch:      worker-3/c24ee17b-doctor-postmerge -> v1
Round:       1
Approved-by: review-c24ee17b

The trailer niwa writes on a commit it merges. Who did the work, which round it passed on, who approved it.

src: a commit merged on 28 Sep 2026, names shortened

ledger · drawn to match the record

Twelve tickets passing through the review gateTwelve horizontal lines run from left to right toward a vertical line labeled gate. Six cross it on the first try and curve down into the main branch. Four are sent back once, marked with a cross, loop back and pass on the second round. Two are sent back twice and pass on the third.maincbd5r1be64r243far15dbbr1a623r37469r17c1dr2cc91r17863r22239r35ea4r1115cr2gate
Rounds before merge for each ticket in the figure
ticketrounds
cbd51
be642
43fa1
5dbb1
a6233
74691
7c1d2
cc911
78632
22393
5ea41
115c2
Six tickets passing through the review gateSix horizontal lines run from left to right toward a vertical line labeled gate. Three cross it on the first try and curve down into the main branch. Two are sent back once, marked with a cross, loop back and pass on the second round. One is sent back twice and passes on the third.maincbd5r1be64r243far15dbbr35b35r17469r2gate
Rounds before merge for each ticket in the figure
ticketrounds
cbd51
be642
43fa1
5dbb3
5b351
74692
TwelveSix tickets, drawn to match the record. Each line is one ticket on its own branch; each × is the gate sending it back. Round mix, 29 Aug to 28 Sep 2026: 48% merged on the first round, 31% on the second, 21% took three or more.

how.we.counted

the four commands

Run in the niwa repository at origin/v1 = 041be95839cc, 28 Sep 2026.

# changes merged in the window
git log 041be95839cc --since=2026-08-29T00:00+02:00 --format=%H | wc -l
# -> 441

# with a named reviewer approval
git log 041be95839cc --since=2026-08-29T00:00+02:00 --format=%B \
  | grep -cE '^Approved-by: review-'
# -> 436

# review rounds before merge
git log 041be95839cc --since=2026-08-29T00:00+02:00 --format=%B \
  | grep -E '^Round: ' | sort | uniq -c
# -> 210 x 1, 134 x 2, 60 x 3, 19 x 4, 10 x 5, 2 x 7, 2 x 8  (437 total)

# the night of 27 to 28 September
git log 041be95839cc --since=2026-09-28T00:00+02:00 \
  --until=2026-09-28T08:00+02:00 --grep='^Approved-by:' --format=%H | wc -l
# -> 32

The gate

reviewed

Checked by an agent that didn't write it

Every ticket carries acceptance criteria. When an agent submits, niwa starts a separate reviewer on the exact commit that was submitted. The reviewer runs the tests and answers each criterion, pass or fail, with a reason. The merge itself is done by niwa's own code from that verdict, never by an agent. Before main moves, niwa builds the merged result in a scratch worktree and runs the check once more. Red, and main stays where it was. Rejected work goes back to its author with the findings, and the round counter goes up.

autonomous

It keeps going when you stop

Agents claim tickets from the board on their own and pick up the next one when they finish. niwa wakes an idle agent when work arrives for it and resets its context before it overflows. Nobody has to sit there typing "continue".

isolated

One ticket, one branch

Each agent works in its own git worktree, on its own branch, so two agents never edit the same checkout. Two changes can still each pass and then break each other once combined, which is why the check runs on the merged result before main moves. The whole crew runs on your machine.

32 merges between midnight and 8 a.m.

From the board to main

  1. board

    You write a ticket with a goal and acceptance criteria. A free agent claims it.

  2. worktree

    The agent works on its own branch and talks to the rest of the crew over a relay.

  3. gate

    A reviewer starting from a clean context checks the submitted commit against each criterion. A fail goes back with findings.

  4. merge

    niwa builds the merged result on the side, runs the check, and only then moves main.

journal · illustrative · one line per decision

02:14:07 claimed t-7c1e "retry the webhook on 5xx, stop after 3" worker-2

02:14:09 worktree t-7c1e worker-2/t-7c1e-webhook-retry

02:31:52 submitted t-7c1e round 1 4b9e2a1

02:31:55 review t-7c1e reviewer started on 4b9e2a1

02:38:40 verdict t-7c1e AC1 pass retries on 502, 503, 504

02:38:40 verdict t-7c1e AC2 fail no cap, a 500 retries forever (webhook.rs:88)

02:38:41 sent back t-7c1e findings to worker-2

02:52:13 submitted t-7c1e round 2 e03f5d7

02:59:02 verdict t-7c1e AC1 pass AC2 pass tests 214/214

02:59:03 approved t-7c1e e03f5d7

03:01:30 checked t-7c1e merged tree green (scratch worktree)

03:01:31 merged t-7c1e e03f5d7 -> main

gate.verdict · t-7c1e · round 1

AC1 pass retries on 502, 503, 504

AC2 fail no cap, a 500 retries forever (webhook.rs:88)

Things niwa won't do

refused.log

  • Ask you to approve every shell command.
  • Let an agent review its own change.
  • Merge because the tests went green. The reviewer still reads the diff against the ticket.
  • Put two agents in the same checkout.
  • Give you a wall of agent panes to watch.

The rest is open source

niwa sits on four tools we built for ourselves first. You can read and run each of them.

suite/

niwa/ private, early access
The terminal, the crew and the gate.
WRAI.TH/ open source
The relay the agents talk over: messages, the task board, shared memory. source
trovex/ open source
Project memory for agents. Sends each agent to the doc it needs, over MCP. site
yoru/ open source
A self-hosted record of what every agent session did. site
dokan/ open source
Runs scripts the same way every time and signs a receipt you can check. source

Questions

questions.txt

Which systems does it run on?

macOS, Windows and Linux.

Which agents does it run?

Claude Code and Codex, the command-line agents, signed in with the accounts you already have. niwa doesn't sell model access; you keep paying your provider as you do now.

Where does my code go?

Your repository, the board and the merge record stay on your machine. The agents send their prompts to the model provider you already use, exactly as they do when you run them by hand. niwa itself has no server that sees your code.

Do I have to watch it?

No. Tickets that pass the gate merge on their own. When a ticket keeps failing review, or needs a call the ticket didn't make, niwa escalates it to you, and you approve, reject or drop it from the terminal.

What if the reviewer is wrong?

It will be, sometimes. Reviewers are agents too. So it answers named criteria instead of giving a general opinion, the check has to pass on the merged result before main moves, and the approval is written into the commit, so every merged change can be traced back to its verdict. You can overrule any verdict from the terminal.

Do separate worktrees stop merge conflicts?

They stop two agents from editing the same files at the same time. They don't stop two changes that each look fine from breaking each other. That's why niwa runs the check on the combined result before main moves, and sends the work back with the log if it fails.

How many times can a ticket bounce?

A set number of rounds, which you configure. After that it stops retrying and comes to you with every finding so far.

Is niwa open source?

No. niwa is the product we sell. The relay, the project memory, the session record and the script runner around it are open source.

What does it cost?

There's no public price yet. During early access we set people up one at a time, and we'd rather talk about price once you've seen it work on your own repo.

What does the name mean?

Niwa is Japanese for a garden or courtyard: the open ground where work is tended. Tsukumo, the company behind it, is a studio in Switzerland.

Point it at a real repo.

access.request

Early access is by request. Leave your email and we'll get you set up.