Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FOLDLINE_PYTHONNoPath to the Python interpreter used by the voice, sheet and subtitle tools. If unset, the library's .venv or ~/lemo-opuscar/.venv is used, in that order.

Instructions

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

Foldline renders an HTML page with a and window.render(t) to an MP4, and ships 66 film styles. Start with find_styles / get_style to pick a look, read_guide for how to direct and build a film (ask for one section at a time), render_stills to review frames, check_reading for on-screen text timing, then render_video. Voice: make_voice and check_voice. Sound: mux_audio. Renders run at low priority and print only a short result.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
find_stylesA

Search the 66 film styles by words (name, category, use, demo film). Returns one short line per style. Leave query empty to list all.

get_styleA

Returns a style's STYLE.md: its look, rules and prompt. include_demo adds DEMO.md (how its demo film was made), which is long.

read_guideA

Reads one of the library guides. Without a section it returns the table of contents only, so you can ask for just the part you need. Guides: agents (how to direct and produce a film), director (story, sound, rhythm, camera, checks), technique (page contract, voice, music, mix), my-styles (making a style your own), tools (every command and flag), instruments (sampled instruments), readme, notice (licences).

render_stillsA

Renders JPEG stills of a film at given seconds, to look at before a full render. Returns the file paths. With sheet=true it also makes one contact sheet and returns it as an image, which is cheaper to look at than many stills.

render_videoA

Renders every frame of a film to an H.264 MP4 at low priority, with the in-page hardware encoder by default. Before saving, it checks the file: every rendered frame decodes and the soundtrack runs from the start to the end of the film; a short or misaligned file fails. Returns the output path, frame count, time and encoder (enc=wc is the fast path), not the progress log. Sends progress if the client asks for it.

check_readingA

Checks that every on-screen text stays fully in frame long enough to read (the page must expose window.TEXTS(t)). Returns only the failures and a count.

export_eventsC

Exports the page's window.DUR and window.EV (sound and cue events) to JSON for the mix. Returns the path and the number of events.

make_voiceA

Turns lines of text into trimmed WAV files and dur.json. engine "kokoro" is offline (default); "edge" is Microsoft Edge TTS, online; "qwen" is Qwen3-TTS on MLX (Mac with Apple silicon, local, free; voices ryan, aiden, vivian, serena, uncle_fu, dylan, eric, ono_anna, sohee; per-line instruct; numbers spelled out; every take checked for a cut end and by Whisper, bad takes redone). Returns each line's duration. Needs the voice tier (setup.sh deps voice), or for qwen the qwen tier (setup.sh deps qwen; the model, about 3.1 GB, downloads on first use).

check_voiceC

Runs Whisper over every .wav and compares it with the text. Writes words.json (word timestamps). Returns only the lines that failed and a count.

mux_audioA

Puts a mix under the video: two-pass loudness to -14 LUFS, true peak -1.2 dB, optional film grain. A mix shorter than the video is padded with silence, a longer one cut at the end. Before handing over, it checks the frame count and that the sound starts and ends with the picture. Returns the output path and the measured loudness.

make_subtitlesC

Writes an .srt subtitle file from cues.

fetch_assetsA

Downloads assets that are not shipped with Foldline into its library folder: the Kokoro voice model (voice), the HDRI skies that 3D styles light with (hdri), or a sampled instrument library (instruments).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target clearly different pipeline stages (style discovery, voice synthesis, voice verification, stills, video render, muxing), so misselection is unlikely. The one soft overlap is make_voice vs check_voice, since make_voice already runs Whisper checks internally, and render_stills vs check_reading both serve as pre-render inspection, but the descriptions make the boundary between generating and validating reasonably clear.

Naming Consistency5/5

Every tool is snake_case verb_noun: read_guide, find_styles, get_style, check_voice, render_stills, render_video, check_reading, export_events, make_voice, mux_audio, make_subtitles, fetch_assets. Verb choice is predictable within families (check_*, render_*, make_*) and nothing deviates from the pattern.

Tool Count5/5

Twelve tools map cleanly onto the distinct stages of a film-production pipeline, each earning its place. Nothing looks redundant or padded, and the set is well inside the comfortable 3-15 range.

Completeness4/5

The surface covers discovery (guides, styles), production (voice, stills, video), validation (voice, reading, render self-check), and finishing (events, subtitles, mux, asset fetch), which is strong lifecycle coverage. Gaps are minor: there is no tool to scaffold or list film projects/files, no cue-authoring tool separate from export_events, and no cleanup/removal operation, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues