Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SHOWNTELL_DATANoWalkthroughs, audio cache, models, lockfile and log~/.local/share/showntell
SHOWNTELL_HOSTNoInterface; anything else requires an access token, which is generated and added to links127.0.0.1
SHOWNTELL_PORTNoDaemon port; the next free one is used if taken4747
SHOWNTELL_VOICENoDefault voice; any English Kokoro voice, such as am_michael or bf_emmaaf_heart
SHOWNTELL_SPEECHNoSpeech backend: mlx on Apple silicon, onnx elsewhere, or fake for testsauto
SHOWNTELL_THREADSNoCPU threads for ONNX speechup to 6
SHOWNTELL_ONNX_MODELNoONNX variant; model (fp32) can be faster on CPUs without AVX2model_quantized
SHOWNTELL_PUBLIC_URLNoBase URL for links when viewing from another device, such as a Tailscale name; links then carry an access token

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
start_walkthroughA

Create a narrated walkthrough. Pass its opening in opening: the reply then comes once that is voiced, with the handle, the playable link and the full authoring guide. Send the link to the user at once, in a message, before your next tool call; they watch while you add the body with add_slides. Without opening, the reply is short and your first add_slides call must carry the opening instead.

add_slidesA

Append slides to a walkthrough, written in Markdown.

Calls:

  • Opening: normally sent in start_walkthrough's opening (see its example). Only if it was not sent there, the first call carries it and nothing more: the title slide and one or two short spoken sentences. That call returns when the link is playable, with the full guide; send the link to the user then, before anything else.

  • All other calls: first one short slide alone, then one to three whole slides. Never resend earlier Markdown. Never split a slide or its code block across calls.

  • Replies list problems, each ending in a code; errors come first. Fix errors in sent slides now with revise_slide; fix warnings in later slides.

Format:

  • Slide: each #, ## or ### heading starts one. Optional attributes: ## Title {#id .build}; .build reveals parts as cues reach them.

  • Narration: every plain paragraph is spoken, labels included, each voiced separately: never start one with "Narration:" or "Slide 3:". Put identifiers in backticks; [text]{say="spoken"} fixes pronunciation.

  • Shown text: > lines are shown, never spoken; under the first heading, one is the subtitle.

  • Layout: > under a heading is its takeaway; {.side} puts one to three > lines beside the visual, {.pair} shows two visuals side by side, {.full} the visual edge to edge; a slide with only a > sentence is a statement. {icon=name} on a heading, and :name: before a list item, stat label or > line, add a Lucide icon. Vary the look from slide to slide.

  • Visual: at most one per slide: fenced code, diff, mermaid diagram, math formula, pipe table, list, image alt, chart bar|hbar|line, terminal session, tree of files, stat numbers, chat exchange, svg drawing (consecutive svg step blocks are versions that glide into each other; svg sketch looks hand-drawn) or ```drawio file=path, a draw.io diagram the project already has. Syntax and examples: resource showntell://slide-kinds.

  • Choose the visual by the idea's shape: a change → diff, not the new code alone; flow, steps, causes and effects → mermaid; numbers → chart or stat; something physical or spatial → svg drawing; commands → ```terminal; dated events → .timeline list. Lists and tables only for words with no shape, never three in a row.

  • Code options: scroll for long code; consecutive ```lang step blocks are versions of one code slide.

  • Code from disk, with an empty body and the file's own line numbers in the gutter:

Inline code may set start=10.

  • Diff: python old then python new blocks; diff with -/+ lines, one hunk per slide; or diff file=path rev=A (against the working tree), rev=A..B (two commits) or rev=A...B (B against the commit where it branched off A: what a pull request shows).

  • List: - **Title**: text {#id}; without {#id}, the id is the title, lowercased and hyphenated. 1. items are steps; .cards on the heading shows cards; .timeline puts dates, the bold titles, on a line; .quiz makes two to four - [ ] items with one - [x] a multiple-choice question, choices #a to #d, the answer shown when a cue points at it.

  • Cues are links in narration around the words that name the target. The pointer lands as the label's first word is spoken, within the current slide only. label line 12 | #L12-18 a range | label only that text on line 12 | #-L5 old side, #+L7 new side of a diff | #id a list item, card, Mermaid node, chart bar or series, tree entry, drawing element (also by its or text as a slug) or draw.io cell (also by a unique label) | #row-2 the second table row, or a {#id} ending its last cell | # the whole visual; label finds that text in it. Also #step-2 (only with step blocks), #a->b->c flowchart edge path, #Sender->>Receiver a sequence-diagram message, #@l,t,w,h image, drawing or draw.io region; {.circle}, {.arrow}, {.zoom} etc. after a cue (see showntell://slide-kinds).

revise_slideA

Replace one slide, found by its id, with new Markdown. Only narration whose text changed is voiced again; the rest keeps its audio. Omit the heading to keep the slide's title, classes and attributes. Use it for a slide a reply reported as broken, or to rework a finished walkthrough: find its handle with list_walkthroughs and read its Markdown from the resource showntell://walkthroughs/{id}. The reply's slide_url plays only the revised slide; share it when the user asked for the change.

finish_walkthroughA

Close the walkthrough after its last slide. Records the end questions and returns a summary: remaining problems, each slide's start time and look (kind, layout, takeaway, icons) and what could not be checked. It names runs of slides that look alike, with pictures of them; revise one in each run into a different look before telling the user. With Playwright installed it first draws every slide, so the summary already reports render and layout problems (render errors, text_too_small, overflow, drawing_overlap); fix them with revise_slide. Call preview_slides only for slides it names, a drawing or diagram you want to see, or when the user asks. Then tell the user it is finished and give the link; if they want a video or a file to send, call export_walkthrough.

export_walkthroughA

Save a walkthrough as one file the user can keep or forward: an MP4 video (H.264 and AAC, with a subtitle track) or a self-contained HTML page that plays offline in a browser. Call it after finish_walkthrough and the fixes its reply names. It waits up to five minutes for narration still being voiced, then renders; an MP4 takes about a tenth of its length plus a few seconds. Use it when the user asks for a video, or for a file to share, send or attach. MP4 needs ffmpeg and Playwright Chromium, HTML neither; the error says what is missing.

list_walkthroughsA

List recent walkthroughs with their handles, titles and links. Use it to find the handle of a walkthrough to revise later, including one from an earlier session. Its Markdown source is the resource showntell://walkthroughs/{id}, where id is the part of the handle before the dot.

preview_slidesA

Look at slides as the viewer sees them: returns a small picture of each, fully revealed, plus any layout problems the player found while drawing them. Use it for chosen slides (one a reply named, a drawing or diagram, a revised slide) to check that code is readable, diagrams fit and nothing overlaps; finish_walkthrough already draws every slide and reports these problems, so a full preview after it is rarely needed. Needs Playwright on the machine running showntell; the reply says how to install it if missing.

Prompts

Interactive templates invoked by user choice

NameDescription
diffNarrated walkthrough of a commit range, a branch or the working tree.
reviewNarrated code review of a commit range, a branch or the working tree: a verdict and ranked findings, with evidence.
fileNarrated walkthrough of one source file.
topicNarrated walkthrough of a concept, algorithm, design or piece of maths.

Resources

Contextual data attached and managed by the client

NameDescription
walkthroughsRecent walkthroughs with titles, links and handles
slide-kindsEvery kind of visual a slide can show: how to write it, what cues point at, how it reveals, with an example

TDQS

A4.6/5.0

Scored across 7 tools

Disambiguation5/5

Each tool maps to a distinct stage of the walkthrough lifecycle: start, append, list, revise, preview, finish, export. The only potential overlap—preview_slides and finish_walkthrough both surface layout problems—is explicitly resolved in finish_walkthrough's description, which says finish draws every slide and full preview is rarely needed.

Naming Consistency5/5

All names follow a snake_case verb_noun convention (start_walkthrough, add_slides, revise_slide, preview_slides, finish_walkthrough, export_walkthrough, list_walkthroughs). Singular/plural variation is natural and predictable.

Tool Count5/5

Seven tools is well matched to a focused authoring workflow; each has a clear lifecycle role and none feels redundant or missing for the core create-edit-preview-finish-export flow.

Completeness4/5

The server covers the full authoring lifecycle from creation through slide addition, revision, preview, completion, export, and listing. Minor gaps such as slide deletion/reordering or a dedicated get-walkthrough tool are not obvious blockers because list_walkthroughs plus the walkthrough resource source provide read access.

Maintenance

ActivityNo data
ResponsivenessSyncing