Tack
Guides

Observability

Monitor agent activity with watch, logs, and real-time events.

Watch

Live stream of all agent activity:

tack watch
tack watch --summary
tack watch --verbose
tack watch --objective <objective-id>
tack watch --stream <stream-id>
tack watch --agent <agent-id>
18:16:12 [stream-1] builder: read src/schemas.ts
18:16:15 [stream-1] builder: edit src/routes/expenses.ts
18:16:19 [stream-2] builder: $ bunx tsc --noEmit
18:16:23 [stream-1] builder: done: Added PATCH endpoint
18:16:25 [stream-1] lint passed
18:16:38 [stream-1] quality_gate_failure -> rerun_previous_agent (1/4)
18:16:52 [stream-1] recovery blocked: retry budget exhausted; awaiting human guidance
18:20:04 [stream-1] recovery resumed: guidance applied
18:47:35 [stream-1] merged ✓

Verbosity Levels

tack watch --verbose   # More tool and message detail
tack watch --summary   # Objective-level status changes only

Agent Logs

Replay what a specific agent did from project-scoped JSONL activity logs:

tack logs <agent-id>
tack logs <agent-id> --follow  # Live tail
tack logs <agent-id> --verbose

tack logs reads the canonical activity log for the targeted project and filters it down to one agent.

Escalations

When an agent hits a blocker, Tack sends an escalation:

tack mail <agent-name>
tack mail send <agent-name> "Need clarification" "Please use the shared helper" --objective <objective-id>

Escalation dedup ensures you get one notification per unique blocker, not 50 copies of the same error across fix-loop iterations.

Timeline Model

Today watch gives you the projected live operator timeline and logs gives you full-fidelity replay.

Tack's observability direction is to keep both surfaces aligned around the same canonical operator record model:

  • watch for notable live events
  • logs for detailed replay
  • shared correlation by project_id, objective_id, stream_id, and agent_id

Timeouts

Per-role max duration and idle timeouts. An agent that stops producing output gets killed with a clear error message.

agents:
  timeouts:
    default:
      max_duration_minutes: 30
      idle_minutes: 10
    builder:
      max_duration_minutes: 45
    reviewer:
      max_duration_minutes: 15

SSE Events

The daemon exposes a Server-Sent Events (SSE) endpoint for real-time integration:

GET /events

Project-aware clients should also send X-Tack-Project-ID when targeting a specific registered repo. See the HTTP API reference for full endpoint details.

Events include agent activity, status changes, recovery attempts, blocked recovery, resumed recovery, merge completions, and escalations.

On this page