[FEATURE] Read a routine run's transcript/output from the terminal (CLI or API), without opening the session URL in a browser

Status Open
Maintainer reply None cached
Activity 0 comments · opened Jul 17, 2026

Problem

When a routine runs — whether fired on schedule, via a GitHub event, via the API /fire endpoint, or via the RemoteTrigger MCP run action — the only documented way to read what the run actually did is to open its session URL in a browser. The routines docs say it plainly: "Open the session URL in a browser to watch the run," and for run history, "Click any run to open it as a full session."

There is no terminal-native path to a run's transcript, tool calls, final output, or detailed status:

  • /fire returns only claude_code_session_id + claude_code_session_url — an identifier and a browser link, no content.
  • The /schedule CLI (list / update / run) manages routines but cannot read a run's output.
  • Fetching https://claude.ai/code/<session_id> over HTTP returns 403 (it needs the logged-in browser session).

Why it matters

This breaks headless and agent-driven orchestration. An agent (or a script) can fire a routine and get back a session id, but cannot observe the result without a human-oriented browser step. Today the only workaround to read a run programmatically is to drive a logged-in browser — e.g. the Claude-in-Chrome extension — to scrape the rendered transcript. For anyone building an autonomous loop on top of routines (fire → wait → read result → decide next action), the "read result" step has no first-class interface.

Requested

A terminal-accessible way to fetch a routine run's details by session id, returning the transcript / tool calls / final assistant message / status as text or JSON. Either surface works:

  • a CLI command, e.g. /schedule runs <routine> to list runs and claude routines runs get <session_id> to fetch one; and/or
  • an API endpoint alongside /fire, e.g. GET …/routines/runs/<session_id>, under the same experimental beta header.

Even just the final assistant message plus a real completion status (beyond the green "started and exited" indicator the docs already caveat) would close most of the gap.

Related (not duplicates)

  • #64397 — routine observability gaps, but its asks (RemoteTrigger.run 400, unmerged claude/* branches, MCP permission deadlock) are different specifics; none covers reading a run's transcript from the terminal.
  • #76841 — same conceptual pain on the mobile app (no run-history view); this request is about the terminal/CLI.

View original on GitHub ↗