Zetrem
BETAv1.0.1-beta.8 is outRelease notes

Run Claude Code as a team.

Hand work to named teammates, watch what each of them does, and the app comes to you when one needs an answer. The Claude Code CLI does the work itself, unchanged.

Free & open source · MIT · Installs Claude Code for you if it isn’t there

Watch the team work

One question goes to three teammates at once. Each tile streams what its teammate says, the diff under every change it makes, and the helpers it calls in, nested under it.

The log under a tile keeps the reads, the runs and the fetches, each listed once. A helper called without a type shows as the general-purpose agent it is.

SamOrchestrating

turn 1 · 3 teammates · 6.1s

Find why the last item disappears at checkout

Three of them are on it: the checkout flow, the cart totals, the stock rules.

Code Reviewer0:41

Reads the diff, names the risk

Editingcart/total.js

The total is rounded before the last line is added, so a cart that sums to 99.995 shows 100.00 and the reconciler drops the item that no longer fits. Rounding once, after the sum

cart/total.js+2 −1

41-const total = round(sum + line.price);

41+const total = sum + line.price;

44+return round(total);

general-purposeSearching **/cart*0:09

Readcart/total.js · checkout.js · rounding.js

Runnpm test -- cart

Fetchdocs.stripe.com/rounding

Researcher0:33

Reads the codebase

Readingrounding.js

Every other caller rounds after the sum. This one is the exception.

Readrounding.js · cart.test.js

Grep"subtotal"

Docs Editor0:26

Docs and READMEs

Readingstock.md

The stock rules never touch the last line. Nothing to fix here.

Readstock.md · inventory.js

It comes to you when it needs you

A run that stops for a permission, or ends its turn on a question, tells you where you are: a mark on that chat in the sidebar, a system notification when the window is away, a toast when you are in the app on another chat, and one reminder after two minutes. It all clears the moment you answer.

Approvals show the exact command. “Don’t ask again” allows that command, not the whole tool.

Leave the chat and the reply keeps going. It is there, finished or still streaming, when you come back.

Zetremnow

Code Reviewer is waiting for permission

npm test 2>&1 | tail -50

Which files have no test coverage?

Run this command?Bash
npm test 2>&1 | tail -50
Allow⌘EnterDenyEscDon’t ask again this session
Code Reviewer needs youOpen

no answer after 2:00 · reminded once

Sam · orchestrates
Mina · reviews
Theo · writes tests
June · ships
Ravi · reads logs
Ada · researches
Kai · refactors
Bo · keeps the build green
Sam · orchestrates
Mina · reviews
Theo · writes tests
June · ships
Ravi · reads logs
Ada · researches
Kai · refactors
Bo · keeps the build green

A teammate is a brief you write once

Name them, say when to call them, give them standing instructions. A teammate belongs to one project or to all of them, and the team list splits into the two. Each carries its own model, tools and reading list.

Each one also chooses whether it works in a worktree of its own, so two of them can edit the same repository at the same time.

This project

All projects

…and whoever you write next

Name

Release Checker

This project

When to call them

Before a version is tagged.

Standing instructions

Walk the checklist: changelog, version, tests, the built app opens. Report what is missing, not what is fine.

Tools

ReadBash

Where it works

In the checkout, with everyone else

Your library takes proposals

Agents search the notes your project keeps before they say they do not know. When one wants to add a note, it proposes: a card you accept or dismiss, with an undo on the dismiss and the name of the chat that asked. Nothing lands in the library on its own.

You file directly as before — “To library” under an answer files that answer. The app holds each project’s library and never writes it into the project folder. A switch in the composer decides, per project, whether sessions get it.

Code Reviewer proposes a note

from “smooth.js waypoints”

Grid moves are 4-way by default

findingsgridmovement

grid.js only offers diagonal steps when allowDiagonalis set. The default is four-way, andsmooth.js assumes it.

AcceptDismissDismissed? Undo from the toast

The reply is the CLI’s, untouched.

Zetrem passes no persona and no style rules. Ask the terminal and ask Zetrem, and the same words come back. The one thing Zetrem can add is your project’s library, when you switch it on.

Terminal

$ claude -p "Why does the last cart item vanish at checkout?"

The total is rounded before the last line is added, so a cart that sums to 99.995 shows 100.00 and the reconciler drops the item that no longer fits.

Fix: round once, after the sum, in cart/total.js:41.

$

Zetrem

Why does the last cart item vanish at checkout?

The total is rounded before the last line is added, so a cart that sums to 99.995 shows 100.00 and the reconciler drops the item that no longer fits.

Fix: round once, after the sum, in cart/total.js:41.

this turn · 84 out · 6.1s

Also in the box

  • A git view opens from the branch name in the titlebar: a graph of every branch beside a panel that stages, commits, switches branches, merges, keeps a stash, and pulls and pushes.

  • Several Claude accounts, switched without leaving the chat.

  • Plugins and MCP connectors, browsed, installed and signed into in the app.

  • Your account limits in the status bar, per model where they exist.

  • Conversations saved per project, so reopening one continues where it stopped.

  • English and Korean, spoken by every teammate from its first sentence on.

release · v1.0.1-beta.8 · macOS + Windows

Download Zetrem

It runs on your own machine on the Claude Code CLI. If you don’t have the CLI yet, the setup screen installs it and signs you in.

v1.0.1-beta.8 · latest release

macOSIntel & Apple Silicon · signed & notarizedWindowsx64 installerRun from sourceclone and npm run dev, see the README

Windows: SmartScreen will warn on first run. Choose "More info", then "Run anyway". The build is not code-signed yet.

Questions