
Tourwright
io.github.CXmiloxx由 GitHub 账号 CXmiloxx 发布v2.6.1更新于 Nov 7, 2026
Turn a script into a narrated product tour video: real browser, captions, voice, MP4.
概览
把 YAML 导览脚本变成带旁白的产品演示视频:真实 Chromium 操作、字幕、配音与 MP4 输出。
- 可以做什么
- 编写、校验并检查导览脚本,还可生成带截图的步骤指南
- 按脚本渲染带旁白的视频,或只拍摄单个步骤,输出字幕、章节和缩略图
- 列出可用的语音合成音色
- 向 Tourwright API 提交渲染任务,并列出或删除这些任务
- 在显式开启文件访问后读取磁盘上的脚本文件
- 适用场景
- 适合让助手为 Web 应用制作或更新演示、上手引导和操作教学视频,免去人工录屏,并在界面改动后重新渲染。
- 运行要求
- 以本地 Node.js 22+ 进程运行(npm 包 tourwright,以 mcp 参数启动),支持 Linux、macOS 和 Windows;首次安装会把 ffmpeg、Chromium 和语音引擎下载到本地目录。可选设置 TOURWRIGHT_API_URL 与 TOURWRIGHT_API_TOKEN,把任务发送到远程 Tourwright API 而非本机渲染。
安装
在 SourceWeft 中
- 打开 控制台中的 Tourwright,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
[Tourwright]
[npm] [CI] [License: MIT] [MCP]
Narrated product tours and how-to videos, without editing. Click through your app once, or ask your AI
agent for the video: Tourwright writes the script, films a real browser in a studio frame, guides the eye to each
element, speaks with a natural voice and delivers an .mp4 with captions, chapters and a thumbnail. When the UI
changes, you render again. Built for people and AI agents, on any server, from a laptop to a cluster.
[A Tourwright video: a login with 2FA, a guided focus on each field, invented data instead of real customers, an upload and a live notice]
Made by Tourwright from examples/app.yaml, with nobody at the keyboard. ▶ Watch it with sound (77 s)
Why Tourwright
Screen recorders (Loom) and click-through demo tools (Arcade, Supademo, Scribe) need a person to record, and every redesign means recording again. Tourwright videos are code:
What you get
- Browser walkthroughs: real Chromium, a smooth animated cursor, click ripples, highlights, spotlights, callout bubbles, camera zoom, drag and drop, blurred personal data, title cards and captions in your colors and logo.
- Guided focus: the tour an app shows the first time you open it. Everything dims but the element, a
ring marks it, a bubble with a
2/4badge explains it and the camera pushes in, right on the word the voice is saying. - Narrated slides: title cards, images (with slow pan/zoom), HTML, crossfades. No website needed.
- Voices, your choice: Pocket TTS (offline, open, natural:
tourwright install --pocket), Piper (offline, open source, light), Microsoft Edge neural voices, any OpenAI-compatible TTS server (OpenAI, Kokoro, LocalAI…), or your own command. Every sentence is cached: re-rendering never re-synthesizes. - A cast, and how each line is said: several voices per video, speed, pitch and volume per line on any
engine, exact pauses (
[[1s]]), a pronunciation dictionary, sound presets (warm, radio, podcast…), click, typing and other sound effects, music with fades. - Scripts that scale with you: variables (
{{name}}, also from the CLI or the API), reusable blocks, repeats, conditions and steps that may fail. One script, many videos. - Plugins: new actions, TTS engines and voices as small modules (docs/PLUGINS.md).
- Tight edits, automatically: page loads, slow waits and voice synthesis are cut out; narration never overlaps; background music ducks under the voice.
- Deliverables: H.264/AAC
.mp4with chapters and the captions drawn on it,.srt,.vtt, thumbnail and a JSON manifest (duration, chapters, captions) for automation. - Four ways in: CLI, HTTP API with job queue and webhooks, MCP server for AI agents, Node library.
- Scales out: stateless API replicas, any number of workers on any number of servers, Redis/BullMQ queue, S3-compatible storage. Or a single process with a folder, on a Raspberry Pi.
Install
Docker (recommended)
A full service (API + 2 workers + Redis):
From npm (quickest to try)
Node.js 22+, on Linux, macOS or Windows:
Without installing anything globally: npx tourwright <command>. With pnpm: pnpm add -g tourwright
(on 2.0.0, add --no-optional).
The Redis queue and Claude for narrate are optional: install bullmq ioredis or @anthropic-ai/sdk next to
Tourwright when you use them (npm install -g bullmq ioredis). The Docker image already has them.
Without Docker (Linux, macOS, Windows)
Node.js 22+. tourwright install puts ffmpeg, Piper, voices, edge-tts and Chromium in TOURWRIGHT_HOME, with no
root or admin rights; what the system already has is kept.
Each piece is looked for on the PC first and only downloaded when it is missing:
Also reused: a Chromium left by another Playwright or Puppeteer version, and CHROME_PATH, CHROME_BIN or
PUPPETEER_EXECUTABLE_PATH. Snap and Flatpak browsers are skipped (their sandbox blocks Playwright).
TOURWRIGHT_SYSTEM_BROWSER=0 always uses Playwright's own Chromium. tourwright doctor shows what was found.
Nothing is installed on the system: what is downloaded lives in one folder (TOURWRIGHT_HOME), and the Python
packages run in a virtual environment, so yours is never changed. To uninstall, delete that folder.
Xvfb (apt install xvfb, Linux only) gives the sharpest capture; without it Tourwright records headless
(screencast), which works everywhere Chromium runs. Clients of the HTTP API or MCP can be on any system.
Use it
From a site to a video, without writing selectors by hand:
The draft goes through every section of the site with narration taken from its pages; edit it in your words.
Credentials are asked for once, never shown and never written in the script (tourwright secret list;
tourwright forget deletes them).
The script format, every action and the voices: docs/SCRIPTS.md.
JSON Schema for editors and agents: schema/script.schema.json.
HTTP API
Endpoints, assets, webhooks: docs/API.md.
AI agents (MCP)
Claude Code, as a plugin (the MCP server plus a skill that writes, checks and renders the script):
Any other MCP client (Claude Desktop, Cursor, VS Code…):
Tools: tourwright_guide, tourwright_voices, tourwright_validate, tourwright_check, tourwright_render, tourwright_job,
tourwright_jobs, tourwright_delete_job (and
tourwright_render_file with TOURWRIGHT_MCP_ALLOW_FILES=true). Point it at a remote API with TOURWRIGHT_API_URL
and TOURWRIGHT_API_TOKEN. Details: docs/AGENTS.md.
GitHub Action
Re-render your tours on every release, or fail the build when a deploy broke one:
Inputs: scripts, command, out, voice, quality, voices, version, upload (action.yml).
Node library
Scaling
Each worker renders TOURWRIGHT_CONCURRENCY videos at a time (one Chromium + ffmpeg each: plan ~1–2 CPU and
~1 GB RAM per video at 720p). Workers run at low CPU and disk priority so a shared server stays responsive.
More: docs/DEPLOYMENT.md · configuration: docs/CONFIGURATION.md.
Security
API jobs run in a sandbox: data-only scripts (no JavaScript), files limited to the job's assets, optional host allowlist and private-network blocking, secrets off by default, per-token job isolation, signed download links. Read SECURITY.md before exposing the API to untrusted clients.
License
MIT. Piper voices have their own licenses (see each voice's model card); Edge voices are a Microsoft online service, check its terms for your use.
来源:README.md,提交 28a37bc
工具
0版本历史
5- v2.6.1最新Nov 7, 2026
- v2.6.0Nov 6, 2026
- v2.5.0Nov 5, 2026
- v2.3.0Nov 4, 2026
- v2.2.0Nov 3, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分