Skip to main content
Auto-memory
Retell + Twilio
MCP ecosystem
Founder Pres.
Obsidian + QMD
Review pass
Claude / Codex
Convex
75K+ sold
SwiftUI CloudKit
Next.js + Vercel
1,350+ locations
Shopify
Session notes
Founder
MCP forks
<60s response
Operator chapters
Founder & CEO
121+ skills
Six figures raised
Founder office
back to grid
Projects2026

cmux Inbox

I built a local inbox around stock cmux to keep agent sessions from turning into a wall of terminals. It groups work by project, shows whether a workspace is Working or Ready, and asks before closing anything.

Stock cmux
no fork and no app replacement
Local-only
projects, state, and shell hooks
2 modes
recent activity or project groups
24 hours
archive window before reaping
§01The workThe customization

This is the actual Inbox sidebar running inside my stock cmux install.

The customizationInbox inside stock cmux. Active sessions stay visible, quieter work can be snoozed, and archived sessions remain recoverable. / Quick launcher. Search a saved project or jump with the keyboard, then open a new workspace in the right folder.
§02The pipelineEnd-to-end flow
01

Save a project

I pick a folder once and give it a shorter display name. The real directory name stays untouched.

folder picker · local registry
02

Open the work

A few typed letters find the project and open a new cmux workspace in the right directory.

palette · direct workspace
03

Read the state

Each row names its harness. Working means the agent is active; Ready means the workspace needs attention.

Working · Ready · harness
04

Close deliberately

Close asks first. After confirmation, the workspace gets a 24-hour archive window before the local reaper shuts it down.

confirm · archive · reap
§03What I builtPieces that compound

I wrote the whole path: project launch, grouping, live state, safe publication, close confirmation, and narrow removal.

Recent activity or stable project groups.

One switch changes the sidebar from a newest-first inbox to alphabetical project groups. Conversations from the same repo stay together.

newest-first · alphabetical

Working and Ready mean different things.

Working appears only after the harness shows activity. Ready follows cmux's unread state; an unread notification alone never counts as active computation.

observed lease · unread attention

The host validates the candidate.

cmux checks each generated sidebar with its current interpreter before it becomes active. Routine host updates do not need a matching Inbox release.

capability handoff · verified fallback

Uninstall has a preview and a narrow scope.

Before uninstalling, the CLI lists every Inbox-owned file it plans to remove. The command leaves cmux itself, unrelated settings, and every project folder untouched.

dry run · owned artifacts only
§04Build rulesAdditive · local · reversible

The customization has to behave like a guest inside cmux.

Selected rulesstock cmux compatibility
  1. Never modify or replace /Applications/cmux.app.
  2. Keep the stock sidebar selectable at all times.
  3. Publish only sidebar candidates the installed host has validated.
  4. Label activity from evidence; unread state alone never means an agent is working.
  5. Require a visible close confirmation before a workspace leaves the inbox.
  6. Limit uninstall to Inbox-owned files, hooks, helpers, and LaunchAgents.
§05StackEvery tool earns its line
Swift 6 / Core + helperSwiftUI / Quick launchercmux sidebar API / Host surfaceLaunchAgents / Prewarm + archive reaperzsh hooks / Harness stateSwift Testing / VerificationmacOS 14+ / Target
§06ArtifactsReceipts and public proof

The source, installer, compatibility notes, and regression suite remain private.

cmux Inbox package

The private Swift package contains the generated sidebar, quick launcher, narrow shell hooks, installer, removal path, and regression suite.

private source
Generated Inbox sidebar

cmux loads a generated sidebar that groups work by project or recent activity and labels each workspace with its current harness state.

local · additive · selectable
Quick-launch helper

A small native palette stays warm in the background, filters saved projects, and opens a cmux workspace in the chosen folder.

SwiftUI · prewarmed