Topics and markers

MCP and CLI operations for topics that label sessions and notes, session keywords, and markers on moments in a session.

Topics label sessions and notes; keywords are the words TalkBar (or you) attach to a session; markers flag a moment in a session with an optional note. Every operation also takes an optional workspaceId. See How to read this reference for the conventions.

OperationKindToolOnGroup
topics.listReadtalkbar_readOncontent
topics.createWritetalkbar_changeOffcontentChanges
topics.renameWritetalkbar_changeOffcontentChanges
topics.deleteWritetalkbar_deleteOffcontentChanges
topics.assignWritetalkbar_changeOffcontentChanges
topics.unassignWritetalkbar_changeOffcontentChanges
sessions.keywords.getReadtalkbar_readOncontent
markers.listReadtalkbar_readOncontent
markers.createWritetalkbar_changeOffcontentChanges
markers.updateWritetalkbar_changeOffcontentChanges
markers.deleteWritetalkbar_deleteOffcontentChanges

topics.list

Lists the topics used to label sessions and notes.

Read · runs with talkbar_read · MCP switch On by default · policy group content

Arguments: none besides workspaceId.

Returns: {topics: [{topicId, name, color}]}, sorted by name.

{"tool": "topics.list", "args": {}}

topics.create

Adds a topic.

Write · runs with talkbar_change · MCP switch Off by default · policy group contentChanges

Arguments

namerequired
string

The topic name. 1 to 80 characters.

color
string

One of slate, sky, stone, teal, indigo, green, yellow, blue, purple, rose, lime, emerald, amber, cyan, fuchsia, pink, or a #RGB / #RRGGBB hex color. Without it, the color is chosen from the name, so the same name always gets the same color.

Returns: {topicId, name, color}.

  • A name that already exists is refused with failed. An unsupported color is refused with failed ("Unsupported topic color").
{"tool": "topics.create", "args": {"name": "Hiring", "color": "teal"}}

topics.rename

Changes a topic's name or color.

Write · runs with talkbar_change · MCP switch Off by default · policy group contentChanges

Arguments

topicIdrequired
string

The topic, from topics.list.

name
string

The new name. 1 to 80 characters.

color
string

The new color, as for topics.create.

Returns: {topicId, name, color}.

  • Give name, color or both.

topics.delete

Deletes a topic and removes it from every session and note.

Write · runs with talkbar_delete · MCP switch Off by default · policy group contentChanges

Arguments

topicIdrequired
string

The topic, from topics.list.

Returns: {topicId, deleted: true}.

  • Topics have no Trash: this deletes the topic as the app does.
  • Runs with talkbar_delete: confirmed with you when your AI app can ask; apps that cannot ask are refused unless Allow deletes without confirmation is on.

topics.assign

Adds a topic to one session or note.

Write · runs with talkbar_change · MCP switch Off by default · policy group contentChanges

Arguments

topicIdrequired
string

The topic, from topics.list.

sessionId
string

The session to label. Give this or noteId, not both.

noteId
string

The note to label. Give this or sessionId, not both.

Returns: {sessionId, noteId, topics}: the item's topics after the change.

{"tool": "topics.assign", "args": {"topicId": "top_9", "sessionId": "ses_123"}}

topics.unassign

Removes a topic from one session or note.

Write · runs with talkbar_change · MCP switch Off by default · policy group contentChanges

Arguments

topicIdrequired
string

The topic, from topics.list.

sessionId
string

The session. Give this or noteId, not both.

noteId
string

The note. Give this or sessionId, not both.

Returns: {sessionId, noteId, topics}: the item's topics after the change.

sessions.keywords.get

Reads a session's keywords.

Read · runs with talkbar_read · MCP switch On by default · policy group content

Arguments

sessionIdrequired
string

The session to use. For a session that is recording now, get its id from sessions.recording.

Returns: {sessionId, keywords: [string]}, plus pending: true while the session records.

  • TalkBar writes its AI keywords with the final summary, after recording stops; until then only keywords you added are listed.
{"tool": "sessions.keywords.get", "args": {"sessionId": "ses_123"}}

markers.list

Lists a session's markers: note, time, color and the words quoted at that moment.

Read · runs with talkbar_read · MCP switch On by default · policy group content

Arguments

sessionIdrequired
string

The session to use. For a session that is recording now, get its id from sessions.recording.

Returns: {sessionId, markers}. Each marker is {markerId, sessionId, kind, body, quote, atMs, turnId, chunkId, pointId, color, updatedAt}.

{"tool": "markers.list", "args": {"sessionId": "ses_123"}}

markers.create

Adds a marker to a session, also while it is recording: at a transcript turn or chunk, a timeline point, a moment or quoted words, with an optional note and color. It shows on the session right away.

Write · runs with talkbar_change · MCP switch Off by default · policy group contentChanges

Arguments

sessionIdrequired
string

The session to use. For a session that is recording now, get its id from sessions.recording.

turnId
string

A transcript turn (sessions.transcript with format: "json"). Give at least one of turnId, chunkId, pointId, atMs or quote.

chunkId
string

A live transcript chunk (sessions.transcript with format: "json"). The marker goes at the chunk's first turn. Give at least one of turnId, chunkId, pointId, atMs or quote.

pointId
string

A timeline point (sessions.timeline). Cannot be combined with turnId or chunkId. Give at least one of turnId, chunkId, pointId, atMs or quote.

atMs
integer

A moment, in ms from the session start. With a turn, chunk or point it must fall inside it; while recording it cannot be later than now. Give at least one of turnId, chunkId, pointId, atMs or quote.

quote
string

The words the marker is about. On its own, it finds the turn holding those words; when several turns hold them, add turnId or atMs to pick one. Give at least one of turnId, chunkId, pointId, atMs or quote.

body
string

The marker's note. Up to 2,000 characters.

color
string

The marker color. 1 to 40 characters; default amber.

Returns: The marker ({markerId, sessionId, kind, body, quote, atMs, turnId, chunkId, pointId, color, updatedAt}) plus sessionStatus (and a warning when the session was interrupted, or is recording while TalkBar is not running).

  • An id the session does not have, or an atMs outside the place named, is refused with invalid_arguments.
  • The marker keeps its moment as well as the ids, so the app still places it after the transcript is enhanced.
{"tool": "markers.create", "args": {"sessionId": "ses_123", "quote": "we can ship in March", "body": "Ship date commitment", "color": "rose"}}

markers.update

Changes a marker's note or color.

Write · runs with talkbar_change · MCP switch Off by default · policy group contentChanges

Arguments

markerIdrequired
string

The marker, from markers.list.

body
string

The new note.

color
string

The new color.

Returns: The marker plus sessionStatus (and a warning when the session was interrupted, or is recording while TalkBar is not running).

  • Give body, color or both.

markers.delete

Deletes a marker.

Write · runs with talkbar_delete · MCP switch Off by default · policy group contentChanges

Arguments

markerIdrequired
string

The marker, from markers.list.

sessionId
string

Optional check: the marker's own session. If it names another session, nothing is deleted and the answer is not_found.

Returns: {markerId, sessionId, deleted: true} plus sessionStatus (and a warning when the session was interrupted, or is recording while TalkBar is not running). sessionId is the marker's own session.

  • Markers have no Trash: this deletes as the app does.
  • Runs with talkbar_delete: confirmed with you when your AI app can ask; apps that cannot ask are refused unless Allow deletes without confirmation is on.