gradeNot graded
classmate_get_sessionAnswer
Read the lecture session once: source, title, slide/note/transcript counts, cadence, and how to study with the student.
View tool JSON
{
"name": "classmate_get_session",
"kind": "answer",
"impl": "imperative",
"description": "Read the lecture session once: source, title, slide/note/transcript counts, cadence, and how to study with the student.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}classmate_get_nowAction
Read the current lecture slice: timecode, transcript, notes, board, and studentAsk. If studentAsk is set, the student typed on the desk — call classmate_reply so they see your answer on the page.
View tool JSON
{
"name": "classmate_get_now",
"kind": "act",
"impl": "imperative",
"description": "Read the current lecture slice: timecode, transcript, notes, board, and studentAsk. If studentAsk is set, the student typed on the desk — call classmate_reply so they see your answer on the page.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}classmate_observe_nextAction
Wait until the next media-time checkpoint or until the student signals Lost / Got it / Ask. Then call classmate_get_now. If wake.now.studentAsk is set, classmate_reply first.
View tool JSON
{
"name": "classmate_observe_next",
"kind": "act",
"impl": "imperative",
"description": "Wait until the next media-time checkpoint or until the student signals Lost / Got it / Ask. Then call classmate_get_now. If wake.now.studentAsk is set, classmate_reply first.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}classmate_playAction
Resume lecture playback.
View tool JSON
{
"name": "classmate_play",
"kind": "act",
"impl": "imperative",
"description": "Resume lecture playback.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}classmate_pauseAction
Pause lecture playback.
View tool JSON
{
"name": "classmate_pause",
"kind": "act",
"impl": "imperative",
"description": "Pause lecture playback.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}classmate_seekAction
Jump the lecture to a time in seconds or a timecode like 12:40.
View tool JSON
{
"name": "classmate_seek",
"kind": "act",
"impl": "imperative",
"description": "Jump the lecture to a time in seconds or a timecode like 12:40.",
"inputSchema": {
"type": "object",
"properties": {
"time": {
"description": "Seconds or timecode (mm:ss or hh:mm:ss).",
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
},
"required": [
"time"
],
"additionalProperties": false
}
}classmate_highlight_notesAction
Highlight the student's uploaded notes that match a concept from the current moment. The notes pane scrolls to the hit.
View tool JSON
{
"name": "classmate_highlight_notes",
"kind": "act",
"impl": "imperative",
"description": "Highlight the student's uploaded notes that match a concept from the current moment. The notes pane scrolls to the hit.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Concept, quote, or heading to find in the notes."
},
"reason": {
"type": "string",
"description": "Short why this matters right now."
}
},
"required": [
"query"
],
"additionalProperties": false
}
}classmate_citeAnswer
Return ClassCorpus-style citations for this moment: slide page, note heading, and transcript timecode. Use these in answers instead of inventing sources.
View tool JSON
{
"name": "classmate_cite",
"kind": "answer",
"impl": "imperative",
"description": "Return ClassCorpus-style citations for this moment: slide page, note heading, and transcript timecode. Use these in answers instead of inventing sources.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}classmate_show_slideAction
Pin and highlight the slide that matches this moment, by page number, id, or concept. Creates a time anchor so later playback stays synced.
View tool JSON
{
"name": "classmate_show_slide",
"kind": "act",
"impl": "imperative",
"description": "Pin and highlight the slide that matches this moment, by page number, id, or concept. Creates a time anchor so later playback stays synced.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Slide number, id, title, or concept."
},
"reason": {
"type": "string"
}
},
"required": [
"query"
],
"additionalProperties": false
}
}classmate_add_marginAction
Park a short margin note on the board at the current timecode.
View tool JSON
{
"name": "classmate_add_margin",
"kind": "act",
"impl": "imperative",
"description": "Park a short margin note on the board at the current timecode.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}
}classmate_replyAction
Write an answer on the desk next to the student's Ask. The student does not see your ChatGPT sidebar — they only see this page. Use this whenever studentAsk is set.
View tool JSON
{
"name": "classmate_reply",
"kind": "act",
"impl": "imperative",
"description": "Write an answer on the desk next to the student's Ask. The student does not see your ChatGPT sidebar — they only see this page. Use this whenever studentAsk is set.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Your answer, 1-5 sentences, grounded in the current lecture."
},
"askId": {
"type": "string",
"description": "Optional id from get_now.asks."
}
},
"required": [
"text"
],
"additionalProperties": false
}
}classmate_draw_diagramAction
Draw a study diagram onto the shared board for the current concept. Uses image generation when available, otherwise a chalkboard SVG the student can see immediately.
View tool JSON
{
"name": "classmate_draw_diagram",
"kind": "act",
"impl": "imperative",
"description": "Draw a study diagram onto the shared board for the current concept. Uses image generation when available, otherwise a chalkboard SVG the student can see immediately.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"prompt": {
"type": "string",
"description": "What the diagram should show."
},
"bullets": {
"type": "array",
"items": {
"type": "string"
},
"description": "Short chalkboard labels if image generation is unavailable."
}
},
"required": [
"title",
"prompt"
],
"additionalProperties": false
}
}classmate_make_cardsAction
Drop flashcards onto the board for the current lecture moment.
View tool JSON
{
"name": "classmate_make_cards",
"kind": "act",
"impl": "imperative",
"description": "Drop flashcards onto the board for the current lecture moment.",
"inputSchema": {
"type": "object",
"properties": {
"cards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"front": {
"type": "string"
},
"back": {
"type": "string"
}
},
"required": [
"front",
"back"
]
}
}
},
"required": [
"cards"
],
"additionalProperties": false
}
}classmate_quizAction
Park one multiple-choice check on the board for this moment.
View tool JSON
{
"name": "classmate_quiz",
"kind": "act",
"impl": "imperative",
"description": "Park one multiple-choice check on the board for this moment.",
"inputSchema": {
"type": "object",
"properties": {
"question": {
"type": "string"
},
"choices": {
"type": "array",
"items": {
"type": "string"
}
},
"answer": {
"type": "number",
"description": "Zero-based index of the correct choice."
},
"explanation": {
"type": "string"
}
},
"required": [
"question",
"choices",
"answer"
],
"additionalProperties": false
}
}classmate_load_urlAction
Load a YouTube lecture or a direct mp4/webm URL onto the desk, fetch captions, and start playback.
View tool JSON
{
"name": "classmate_load_url",
"kind": "act",
"impl": "imperative",
"description": "Load a YouTube lecture or a direct mp4/webm URL onto the desk, fetch captions, and start playback.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "YouTube watch/share URL or a direct video file URL."
}
},
"required": [
"url"
],
"additionalProperties": false
}
}classmate_seek_slideAction
Jump the video to the time this slide is anchored. Pass a 1-based page number or slide id.
View tool JSON
{
"name": "classmate_seek_slide",
"kind": "act",
"impl": "imperative",
"description": "Jump the video to the time this slide is anchored. Pass a 1-based page number or slide id.",
"inputSchema": {
"type": "object",
"properties": {
"slide": {
"description": "1-based slide number or id.",
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
},
"required": [
"slide"
],
"additionalProperties": false
}
}classmate_seek_noteAction
Jump the video to the timestamp on a note block.
View tool JSON
{
"name": "classmate_seek_note",
"kind": "act",
"impl": "imperative",
"description": "Jump the video to the timestamp on a note block.",
"inputSchema": {
"type": "object",
"properties": {
"noteId": {
"type": "string"
}
},
"required": [
"noteId"
],
"additionalProperties": false
}
}classmate_export_timingAction
Return a p2present-compatible classmate.json manifest (video, timing[], notes) for this session.
View tool JSON
{
"name": "classmate_export_timing",
"kind": "act",
"impl": "imperative",
"description": "Return a p2present-compatible classmate.json manifest (video, timing[], notes) for this session.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}classmate_load_manifestAction
Apply a classmate/p2present JSON manifest: timing cues, notes, and optional YouTube/mp4 source.
View tool JSON
{
"name": "classmate_load_manifest",
"kind": "act",
"impl": "imperative",
"description": "Apply a classmate/p2present JSON manifest: timing cues, notes, and optional YouTube/mp4 source.",
"inputSchema": {
"type": "object",
"properties": {
"json": {
"type": "string",
"description": "Raw JSON string of classmate.json / p2present timing."
}
},
"required": [
"json"
],
"additionalProperties": false
}
}