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.