Skip to content

ts ai transcript

Read one AI transcript, including its prompt and response — a read the server records in the audit log. ts ai transcripts lists calls as metadata only, and is not audited.

Usage

text
ts ai transcripts [-n=N] [--since=DATE] [--until=DATE] [--workspace=ID] [--actor=LOGIN] [--csv] [--no-trunc]
ts ai transcript <id>

Description

The two commands exist as a pair on purpose, and the split is the important thing about them.

ts ai transcripts returns metadata: when the call happened, which workspace and which user, which model, whether it succeeded, how many tokens it consumed, and how long it took. No prompt text and no response text. Listing is not audited, so you can browse freely — count failures, spot a workspace burning tokens, find the call a user is complaining about.

ts ai transcript <id> returns the same call including its prompt and response. That content is user data, so the server records the read in the audit log as an AITranscriptViewed event naming you, the transcript, and its workspace. It is not a silent lookup. Before you run it, be sure you have a reason you would be comfortable defending, because the record of your having read someone's prompt is permanent and visible to your fellow administrators through ts audit. If all you need is whether a call failed or how large it was, stay in the listing.

Rows come back newest first. ACTOR is the user's login, or system for calls the server made on its own behalf. STATUS is Completed, Error, or Canceled, so a run of failures is visible without opening anything. Requests that policy blocked before they reached a provider produce no transcript at all — those are counted only by ts ai usage.

--workspace takes a workspace id as a GUID; a friendly workspace name is rejected by the server rather than resolved, so get the id from ts workspaces first. This is stricter than the --workspace on ts ai tool and ts ai connector, which accept either form. --since and --until are ISO-8601 and both default to unbounded — omit them and you search all retained history, which on a busy server means -n decides what you see rather than the window. When more calls match than were returned, the command says so and tells you the total, so a truncated result is never mistaken for a quiet period.

ts ai transcript takes the transcript's id, which is the last column of the listing. It has no filtering options and no --csv; with --format=json it returns more than the text view prints, including the actor's IP address, the session and conversation ids, the reasoning effort, and the redaction status alongside the prompt and response.

Neither command writes anything, and unlike the rest of the ts ai namespace neither gained a write form. Transcripts cannot be deleted or exported to a file from ts — retention is a server setting, and the Administration site under Intelligence → Transcripts is where the same data is browsable with a CSV export.

Options

FlagDescriptionDefault/ValuesNotes
-n, --numberMaximum transcripts to return.Default 100; max 2000ts ai transcripts only. Above 2000 the server rejects the request.
--sinceWindow start.ISO-8601Unbounded if omitted. E.g. 2026-07-01 or 2026-07-01T09:00:00Z.
--untilWindow end.ISO-8601Unbounded if omitted.
--workspaceReturn only this workspace's calls.Workspace id (GUID)A friendly id is rejected, not resolved.
--actorReturn only this user's calls.Login nameUse system for server-initiated calls.
--csvTab-separated output, nothing truncated.ts ai transcripts only.
--no-truncDo not truncate columns.ts ai transcripts only.

Examples

bash
# The most recent model calls across the server
ts ai transcripts -n=20

# Everything one user did yesterday
ts ai transcripts --actor=alice --since=2026-07-30 --until=2026-07-31

# One workspace, by id
ts ai transcripts --workspace=8c1f2a45-6b0d-4e91-a7c2-3d5e9f014b6a

# Export a window for analysis — metadata only, so no audit entry
ts ai transcripts --since=2026-07-01 -n=2000 --csv > ai-calls.tsv

# Read one call's prompt and response — this is audited
ts ai transcript 91a7c3e5-2d40-4b18-9f6a-77c0e1b2d834
bash
# A date ts cannot parse is ignored rather than rejected, and the window
# silently becomes unbounded. "07/31/2026" is not ISO-8601.
ts ai transcripts --since=07/31/2026

# Your own name will be on this, in the audit log, forever
ts ai transcript 91a7c3e5-2d40-4b18-9f6a-77c0e1b2d834
ts audit --event=AITranscriptViewed

Output

ts ai transcripts:

text
TIME                      WORKSPACE  ACTOR   MODEL              STATUS     IN    OUT  MS    ID
2026-07-31T14:02:11.884Z  Research   alice   claude-sonnet-4-5  Completed  1820  340  2143  91a7c3e5-...
2026-07-31T13:57:03.219Z  Research   system  claude-sonnet-4-5  Error      910   0    812   4f0b8d12-...
Showing 2 of 47; narrow the window or raise -n. Use 'ts ai transcript <id>' for content.

ts ai transcript <id>:

text
Time:      2026-07-31T14:02:11.884Z
Workspace: Research
Actor:     alice
Endpoint:  Primary (Anthropic)
Model:     claude-sonnet-4-5
Status:    Completed
Tokens:    1820 in / 340 out

Prompt:
...

Response:
...

Exit Codes

0 on success, including an empty window — no calls in the selected period is a result, not an error. -2 when ts ai transcript is run without an id. -6 when the id does not name a transcript, which also covers a mistyped or non-GUID id. -1 when the server rejects the request, most commonly -n above 2000 or a --workspace value that is not a GUID. -3 when the server cannot be reached, -4 when no account is signed in or the ticket has expired, and -5 when the account is not a Server Administrator.

  • ts ai — The rest of the namespace.
  • ts audit — Where your own transcript reads are recorded; filter with --event=AITranscriptViewed.
  • ts ai usage — The same calls aggregated into totals, with no per-call detail.
  • ts ai endpoints — The endpoints named in a transcript's Endpoint line.
  • ts workspace — Where to get the workspace id --workspace needs.