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 sessionpx session add-note <session-id> --text "..."— append a free-text note to a session (requires server 14.17.0+)--include-annotationsand--include-notesflags onpx session listandpx session getaddSessionNoteis 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 annotationlogTraceAnnotations— batch-write multiple trace annotations in one request- The reserved name
noteis rejected — useaddTraceNotefor 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.

