pan-tts SKILL.md skillB
pan-tts from eltmon/overdeck is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add eltmon/overdeck/pan-tts@git:20260924.f5d6c8ePins git:20260924.f5d6c8e in mdr.lock. Pin the fingerprint instead.
- Audit grade
- B, 16 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- eltmon/overdeck
- Path
sync-sources/skills/pan-tts/SKILL.md- Versions recorded
- 7
- Latest version
- git:20260924.f5d6c8e, committed Sep 24, 2026
- First version recorded
- May 22, 2026
- Size
- 9,641 bytes
- Repository stars
- 35
- License
- MIT
Built-in dashboard text-to-speech playback plus optional external sidecar support through Qwen3-TTS (or any local TTS engine). The dashboard speaks activity.tts events directly when tts.enabled=true; the SSE sidecar remains optional for external TTS on another machine. Also exposes an ad-hoc speak helper (scripts/say.sh) so agents can announce one-off messages on demand.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# pan-tts — Overdeck Activity TTS **Status: built into the dashboard when `tts.enabled=true`; external sidecar optional.** ## What It Is Overdeck has built-in dashboard TTS playback for `activity.tts` events when `tts.enabled=true` in `~/.overdeck/config.yaml`. The dashboard server resolves the configured voice and POSTs directly to the local Qwen3-TTS daemon, so no external subscriber is needed for the normal local-dashboard path. `pan-tts` remains an **optional** external sidecar for users who want SSE-based TTS on a different machine or want to consume Overdeck's public event stream independently. The TTS pipeline has three independent components: 1. **Dashboard playback service** — subscribes to internal `activity.tts` events, resolves `tts.voice` / `tts.statusVoice` / `tts.voiceMap`, and forwards utterances to the daemon when dashboard TTS is enabled. 2. **Qwen3-TTS HTTP daemon** (`sync-sources/skills/pan-tts/scripts/tts_daemon.py`) — keeps the 1.7B model resident in VRAM, synthesizes speech on demand via `POST /speak`, and plays audio through the default PipeWire sink. This is the component that actually drives the speaker. …
Read the whole file at its exact version.
How to install
mdr add eltmon/overdeck/pan-tts@sha256:26f64d69d958832aThe line at the top of this page pins the label git:20260924.f5d6c8e, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_acamfgscbes42b7v)
4 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 7 versions of this file, between May 22, 2026 and Sep 24, 2026, about one every 21 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260924.f5d6c8e latest | 2026-09-24 | f5d6c8e | 9,641 B | B | view · diff |
| git:20260924.cf6aeef | 2026-09-24 | cf6aeef | 9,636 B | B | view · diff |
| git:20260924.0eed7d5 | 2026-09-24 | 0eed7d5 | 9,597 B | B | view · diff |
| git:20260618.e501626 | 2026-06-18 | e501626 | 9,431 B | B | view · diff |
| git:20260618.80fba74 | 2026-06-18 | 80fba74 | 9,451 B | B | view · diff |
| git:20260618.0230406 | 2026-06-18 | 0230406 | 9,465 B | B | view · diff |
| git:20260522.817c2c7 | 2026-05-22 | 817c2c7 | 9,467 B | B | view |
Audit of the latest version
- fail: No link to a raw IP address (matched: http://127.0.0.1:3000)
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (9641 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No script tag
Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.
Source
eltmon/overdeck · 35 stars · license MIT · pushed 2026-11-07 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_acamfgscbes42b7v GET https://markdownregistry.com/api/v1/resolve?ref=eltmon/overdeck/pan-tts GET https://markdownregistry.com/api/v1/blob/26f64d69d958832a12bc5f0dd7f8881855f83816601b0cafac70b3d24408f784
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.