Get Moshi
inbox

Inbox and Usage

Scan agent approvals, questions, and turn completions in one feed; track Claude Code, Codex, and OpenCode rate-limit windows per account.

updated 2 days ago15 min readpage 14 / 23

The Inbox and Usage screens are how Moshi turns the firehose of agent activity on your hosts into something you can scan in seconds and act on with one tap. Both are populated by moshi-hook (see Agent hooks) and stay synchronized between your iPhone and paired Apple Watch.

What the Inbox shows

The Inbox collects every event the daemon forwards from your paired agents — Claude Code, Codex, OpenCode, Gemini, Cursor, Kimi, Qwen — and renders one row per session.

  • Approvals and questions — agent stopped to ask permission or for an answer. Tap the row to see the full prompt; choose an option directly from the row or the detail screen.
  • Task completions — a turn finished. Useful when you queued work and walked away.
  • Session events — a new agent session started, a tool ran, or a tool finished. These are throttled so the inbox does not become a log viewer.

New events for the same session collapse into the existing row instead of stacking. That keeps the list shaped like "agents I am working with right now," not "every keystroke since this morning."

Active vs Archived

The inbox is split between Active and Archived with deliberate decay rules:

  • A pending approval stays Active until you answer it or the host times it out.
  • A completed turn stays Active for 10 minutes — long enough to glance at, short enough not to clutter.
  • Anything older than 6 hours auto-archives, even if you never opened it.
  • Swipe to archive immediately when you want a row gone now.

Active rows with a still-valid pending approval float above everything else, sorted by recency.

Project and host grouping

Rows are grouped by project (the agent's working directory) so multi-repo days stay legible. When events span multiple hosts, each host gets its own group too — useful when the same agent is running on a Mac and a Linux box. Groups with a pending approval bubble up; ties break by latest event time.

Usage

The Usage tab shows the rate-limit windows your agents are burning. The daemon ships a snapshot for every account it has seen recently:

  • Claude Code — fixed 5h and 7d windows, percentages used.
  • Codex — a variable set of windows with human labels (e.g., "5h", "weekly").
  • OpenCode — provider-dependent; whatever the provider exposes.

Each card shows the agent logo, the account label, the host that captured the snapshot, the windows as rings, and a "last updated" timestamp. Pull to refresh forces an immediate update; otherwise values refresh roughly every minute as long as moshi-hook is running on the host.

Context remaining

Inbox rows for agents that expose transcript visibility carry a small ring showing how much of the model's context window is left. The same value powers the Apple Watch complication. When the ring drops below about 15% you are close to losing the agent's working memory — a good moment to ask it to summarize before continuing.

When the Inbox is empty

A truly empty inbox is the goal: every prompt answered, every turn either still running or auto-archived. If it feels too quiet, check that:

  • moshi-hook is running and paired (moshi-hook status).
  • The host's account is one of the agents Moshi normalizes events for.
  • Push notifications are enabled in Settings -> Notifications so new events also surface as a banner.

See Troubleshooting for the longer checklist.