Skip to content

String Tags

Name and Value Rules

  • Tag names are case-insensitive.
  • Letter casing is normalized to invariant uppercase, while whitespace is preserved. reviewState and ReviewState identify the same tag; reviewState is a distinct name.
  • Tag values are never case-normalized or trimmed. A value such as Needs Review round-trips exactly as stored.
  • list-tags returns tags in PowerPoint's native 1-based collection order. Each item includes tagIndex, name, and value.
  • Missing tags return success: false. delete-tag is not an idempotent success for a missing name.
  • Only string tags are supported. Binary tag APIs are intentionally not exposed.

Presentation Tags

Presentation tags use camelCase arguments on the hand-written presentation tool:

presentation(action: "set-tag", sessionId: ..., tagName: "ReviewState", tagValue: "Needs Review")
presentation(action: "get-tag", sessionId: ..., tagName: "reviewstate")
presentation(action: "list-tags", sessionId: ...)
presentation(action: "delete-tag", sessionId: ..., tagName: "REVIEWSTATE")

Slide Tags

Slide tags require a 1-based slide_index:

slide(action: "set-tag", session_id: ..., slide_index: 2,
  tag_name: "Section", tag_value: "Financials")
slide(action: "get-tag", session_id: ..., slide_index: 2, tag_name: "section")
slide(action: "list-tags", session_id: ..., slide_index: 2)
slide(action: "delete-tag", session_id: ..., slide_index: 2, tag_name: "SECTION")

Shape Tags

Shape tags require 1-based slide_index and shape_index values:

shape(action: "set-tag", session_id: ..., slide_index: 2, shape_index: 3,
  tag_name: "DataSource", tag_value: "Quarterly Results")
shape(action: "get-tag", session_id: ..., slide_index: 2, shape_index: 3,
  tag_name: "datasource")
shape(action: "list-tags", session_id: ..., slide_index: 2, shape_index: 3)
shape(action: "delete-tag", session_id: ..., slide_index: 2, shape_index: 3,
  tag_name: "DATASOURCE")