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: fix them in later slides, or replace a broken slide with revise_slide.

Format:

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

  • Narration: plain paragraphs are spoken, each voiced separately. Put identifiers in backticks; [text]{say="spoken"} fixes pronunciation.

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

  • Visual: at most one per slide: fenced code, diff, mermaid diagram, math formula, pipe table, list, or image alt.

  • 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) or rev=A..B.

  • List: - **Title**: text {#id}; without {#id}, the id is the title, lowercased and hyphenated. 1. items are steps; .cards on the heading shows cards.

  • Cues are links in narration. The pointer moves when 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 or Mermaid node | #row-2 the second table row, or a {#id} ending its last cell | # the whole visual; label finds that text in it.

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}.

finish_walkthroughA

Close the walkthrough after its last slide. Records the end questions and returns a summary with any remaining problems. Then tell the user it is finished and give the link.

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.

Prompts

Interactive templates invoked by user choice

NameDescription
diffNarrated walkthrough of a commit range, a branch or the working tree.
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

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation4/5

Each tool maps to a distinct lifecycle step (start, add, revise, list, finish), so selection is mostly clear. The one blur is that add_slides can optionally carry the opening that start_walkthrough normally owns, creating a documented overlap between the two.

Naming Consistency4/5

All names are snake_case verb_noun (start_walkthrough, add_slides, revise_slide, list_walkthroughs, finish_walkthrough), which is highly predictable. Minor deviation: some nouns are plural (slides, walkthroughs) while others are singular (slide, walkthrough).

Tool Count5/5

Five tools cleanly cover the create/append/edit/list/close workflow for narrated walkthroughs. Each earns its place with no redundant surface.

Completeness4/5

The lifecycle is well covered from creation through finishing and later revision (via list_walkthroughs plus revise_slide). A delete/remove walkthrough operation is absent, but core authoring flows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues