Topics and markers
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.
| Operation | Kind | Tool | On | Group |
|---|---|---|---|---|
topics.list | Read | talkbar_read | On | content |
topics.create | Write | talkbar_change | Off | contentChanges |
topics.rename | Write | talkbar_change | Off | contentChanges |
topics.delete | Write | talkbar_delete | Off | contentChanges |
topics.assign | Write | talkbar_change | Off | contentChanges |
topics.unassign | Write | talkbar_change | Off | contentChanges |
sessions.keywords.get | Read | talkbar_read | On | content |
markers.list | Read | talkbar_read | On | content |
markers.create | Write | talkbar_change | Off | contentChanges |
markers.update | Write | talkbar_change | Off | contentChanges |
markers.delete | Write | talkbar_delete | Off | contentChanges |
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
The topic name. 1 to 80 characters.
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 withfailed("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
The topic, from topics.list.
The new name. 1 to 80 characters.
The new color, as for topics.create.
Returns: {topicId, name, color}.
- Give
name,coloror 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
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
The topic, from topics.list.
The session to label. Give this or noteId, not both.
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
The topic, from topics.list.
The session. Give this or noteId, not both.
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
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
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
The session to use. For a session that is recording now, get its id from sessions.recording.
A transcript turn (sessions.transcript with format: "json"). Give at least one of turnId, chunkId, pointId, atMs or quote.
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.
A timeline point (sessions.timeline). Cannot be combined with turnId or chunkId. Give at least one of turnId, chunkId, pointId, atMs or quote.
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.
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.
The marker's note. Up to 2,000 characters.
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
atMsoutside the place named, is refused withinvalid_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
The marker, from markers.list.
The new note.
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,coloror both.
markers.delete
Deletes a marker.
Write · runs with talkbar_delete · MCP switch Off by default · policy group contentChanges
Arguments
The marker, from markers.list.
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.