Skip to main content
New in Stack 0.2.0-dev.20260701.1. Release notes: Stack Changelog.
Long Codex runs produce a lot of output. Goal mode pairs your worker with a monitor sidecar: a second Codex thread that watches progress and writes Sidecar events — short headlines and milestones you can skim without reading every tool call.

Start a goal

From the Agent input, describe an objective and send it. Stack runs the worker in goal context and wakes the monitor sidecar on tool/turn events. Use stack doctor first to confirm Codex and stackd are healthy.

Center pane views

In goal mode, the default center view is Sidecar events — human-facing updates, not the raw worker transcript.
KeyViewWhat you see
eSidecar events (default)Curated monitor.goal_status rows, steers, errors
tSidecar threadMonitor reasoning — how it decided
aAgent tapeFull agent.* + monitor.* interleave for debug
The worker tape is thinking traces. The sidecar stream is the higher-level story: what the worker is doing, which milestone landed, what went wrong.

Headline strip and timeline

The goal shutter shows:
  • a headline strip from the latest operator-visible status
  • a milestone timeline built from typed monitor.goal_status events
The monitor audits worker done-claims before emitting goal_met. Bogus claims surface as goal_failed or blocked instead of a false green checkmark.

Monitor profiles

On first run, Stack seeds monitor profiles from the install bundle into .stack/monitors/:
ProfileRole
defaultPrimary monitor actor
progress-narratorPassive human progress updates on summaries
Useful environment overrides:
export STACK_MONITOR_PROFILE=progress-narrator
export STACK_MONITOR_ENABLED=0              # disable monitor
export STACK_MONITOR_STRICTNESS=passive     # passive | conservative | aggressive
In the TUI, press M to cycle the current thread through off → passive → conservative → aggressive → off.

What the monitor checks

The monitor is event-backed. It watches focus areas such as:
  • style and guidance rules (e.g. destructive git patterns, secret paste)
  • goal progress and acceptance
  • skill use on Synth/Stack work
  • tool use and scope control
The sidecar is always a persistent Codex thread — Stack wakes the same thread for event batches and operator sidecar chat. There are no separate monitor worker overrides.

Operator-visible updates (MCP)

The monitor posts updates through the Stack MCP tool stack_monitor_goal_status with fields such as status, headline, note, for_human, and optional metric. Codex agents with Stack MCP registered can emit these during long runs.

Known limitations

Not yet shipped on the public channel:
  • multi-goal portfolio view and ETA/progress rate
  • bulk archive from the goal shutter
  • automatic cross-actor gardener escalation on every risky signal
Use gardener lifecycle controls for archive/revive when you need explicit thread management. Sidecar pause sleeps the monitor until the next wake — it does not archive threads.

Next