Skip to main content

Session Annotations and Notes (CLI and TypeScript)

April 30, 2026 Available in arize-phoenix 15.1.0+ (server), @arizeai/phoenix-cli 1.4.0+ (CLI), @arizeai/phoenix-client 6.9.0+ (TypeScript) Phoenix now supports session annotations and notes in the CLI and TypeScript client, bringing sessions to full parity with spans and traces.
  • px session annotate <session-id> — add or update a label/score annotation on a session
  • px session add-note <session-id> --text "..." — append a free-text note to a session (requires server 14.17.0+)
  • --include-annotations and --include-notes flags on px session list and px session get
  • addSessionNote is now available in @arizeai/phoenix-client/sessions
Both GlobalIDs and user-facing session_id values are accepted everywhere; the CLI resolves them automatically.

TypeScript Trace Annotations

April 30, 2026 Available in @arizeai/phoenix-client 6.9.0+ @arizeai/phoenix-client now exports addTraceAnnotation and logTraceAnnotations from @arizeai/phoenix-client/traces, bringing TypeScript to parity with the Python client for trace-level annotation.
  • addTraceAnnotation — add or update a single trace annotation
  • logTraceAnnotations — batch-write multiple trace annotations in one request
  • The reserved name note is rejected — use addTraceNote for free-form text

Query Annotations by Identifier

April 30, 2026 Available in arize-phoenix 15.1.0+ The GET annotation endpoints for spans, traces, and sessions now accept an optional identifier query parameter. This lets you retrieve all annotations created with a specific identifier tag across an entire project without knowing the individual span/trace/session IDs.
Combined with the existing *_ids parameter, the two filters compose as an AND intersection. Querying by identifier alone (without *_ids) returns 200 with an empty list when no rows match — rather than 404 — since an empty result is a valid outcome.