reelsmith
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REELSMITH_ROOT | No | Optional. When set, the tools refuse projects outside that folder and imports of local files from outside it. Example: /home/me/studio |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| manualA | The reelsmith manual: how the editor works, the project format, Times, every tool, edit ops, components and what blocks delivery. Read it once before your first edit. |
| describeB | The editor's window as text: canvas, safe area, duration, voice lines, tracks bottom to top with their clips,
assets and the latest issues. With |
| new_projectA | Create a project folder with an empty project.json (no tracks yet), assets/, voice/ and script.md. Put it in /projects/ to get the workspace's library, rules and keys. |
| editA | Apply a batch of edit ops atomically: all apply and validate, or nothing changes. Ops: add_track, update_track, remove_track, add_clip, update_clip, remove_clip, move_clip, split_clip, set_keyframes, add_asset (an existing id is replaced), update_asset ({"op": "update_asset", "id", "set": {...}}: deep merge, null removes a key), remove_asset, set (see the manual). Every applied batch can be undone. |
| undoB | Undo the last |
| checkA | Validate the project and apply the owner's rules. Errors block render; warnings and advice are information. Run it after a batch of edits and before render. |
| libraryB | The components a component clip can use (built-in presets and your own library): name, source, what it is
and its prop names. With |
| previewA | Render stills at the given moments straight from the project (no full render): seconds or Times like "line:3", "clip:c2+0.5", "end-1" ("clip:c2.end" = c2's last frame). Up to 24 per call. Returns PNG paths (look at them with Read), a contact sheet with the platform's UI bands darkened and the safe area outlined, and measured layout problems. sweep=true also measures a still every second of the whole film, as render does before it encodes (no film is made): every layout problem that would stop render shows now, with stills of the flagged moments. |
| renderA | Render the whole film to out/film.mp4: refuses on check errors; measures text layout every second (the same pass as preview sweep=true); renders, masters loudness and runs the delivery checks. Anything failing keeps the previous film and says what to fix; a transient renderer failure is retried once and said to be one. Takes minutes: preview first. |
| reviewB | Evenly spaced frames (2-24) from the delivered out/film.mp4 and a contact sheet, to judge the film as a phone viewer would. |
| speakA | Narrate: one item per voice line, a string or {"text", "pace"?, "emotion"?}. pace: "slower", "normal", "faster" or a speed factor 0.5-2 relative to normal (1.0 normal, 0.9 a little slower, 1.1 a little faster). emotion: a word or two (at most 20 characters, e.g. "惊讶", "平静", "surprised") passed to the voice as an instruction; how much it changes depends on the voice model. gap_s: silence between lines. Writes voice/voice.wav and voice/voice.json (line times), sets the project's voice if unset. Only changed lines cost money (cached). Paid: estimates first and refuses over budget. |
| captureA | Screenshot a web page at phone width as evidence asset |
| drawB | Generate an original image asset |
| animateA | Turn image asset |
| import_assetA | Copy a local file, or download an http(s) image/video/audio (size-capped), into assets/ and register it as
asset |
| assetsC | The project's assets with kinds, sizes and durations. |
| notesB | Your own notes for this workspace (library/NOTES.md): what worked, what to avoid. Read them when you start. |
| noteA | Append a dated note at the end of the workspace's library/NOTES.md for future work (a lesson, a preference, a fix). Keep it short and specific. To put it under a heading or reword old notes, edit NOTES.md with your file tools. |
| typecheckB | Type-check your own components (library/components/*.tsx) with the renderer's TypeScript, before a preview bundles them. Lists errors in your files; errors elsewhere are counted, not shown. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools target clearly distinct stages of the reel workflow (edit → check → preview → render → review), and descriptions make the differences explicit. A few pairs are close enough to invite misselection: preview vs review (stills from the project vs frames from the delivered mp4), check vs typecheck, and note vs notes (append vs read).
The set mixes bare verbs (render, preview, draw, speak, capture, edit), bare nouns (manual, library, assets, notes), and only two snake_case compounds (new_project, import_asset). Singular/plural siblings note/notes add to the inconsistency, though every name remains readable and guessable.
19 tools is on the heavy side of the ideal 3-15 band, but the domain is genuinely broad (project setup, editing, validation, rendering, voice, generated/imported assets, components, notes). Almost every tool maps to a real workflow step; only the doc/note trio (manual, notes, note) feels auxiliary.
The surface covers the full lifecycle: create project, edit atomically, undo, validate, preview, render, and review the delivered film, plus asset acquisition (import, capture, draw, animate) and voice narration. Minor gaps: no project listing/deletion or script-editing tool, and clipping/caption or audio-track authoring is only implied through edit ops and file tools.