Skip to main content
This page is the whole list. DeckTalk contacts the hosts below and no others, and it sends no telemetry, no usage report and no crash report anywhere. A host that is not named on this page is a host DeckTalk does not contact. Hand this page to a reviewer who has to approve DeckTalk on a managed machine. The two facts that decide most reviews are that a cloud speech service receives your script, and that the first run downloads a browser and a media tool.

Requests that carry your content

These requests carry text from your project. Every one of them is made only by a command you run on purpose, and every one of them needs an API key that you supply. Narration to api.elevenlabs.io. The request carries the value of ELEVENLABS_API_KEY in a header. Rebuilding one section still sends that section’s neighbours, because the voice reads them for intonation. A run with --no-voice sends nothing at all. Sound effects and ambience to api.elevenlabs.io. The request carries the value of ELEVENLABS_API_KEY in a header. The prompt is text you wrote in decktalk.toml, so you decide what it describes. Music to api.elevenlabs.io. The request carries the value of ELEVENLABS_API_KEY in a header. The music file is generated once and then reused from build/.

Reading a request before you make it

decktalk narrate --dry-run --json plans a voiced run with no API key and no request. It reports the sections it would voice, their character counts and the host, so a reviewer can read exactly what would be sent before anything is sent. decktalk build stops at the same point and names the host and the character count before it spends a credit. Set context_chars = 0 under [elevenlabs] when the neighbouring sections must stay on the machine. Each section is then sent on its own, with no surrounding text.

One-time downloads

decktalk install fetches the tools a recording needs, once per machine. These requests carry nothing from your project, and after they succeed a build without voice needs no network at all. cdn.playwright.dev. This is Playwright’s own download host. PLAYWRIGHT_DOWNLOAD_HOST points it at a mirror, and [record] browser_path skips the download by recording with a browser the machine already has. github.com. GitHub answers a release download with a redirect to its asset host, so a proxy rule needs both. The archive is checked against a pinned SHA-256 digest and discarded when the digest does not match. evermeet.cx. The archives are checked against pinned SHA-256 digests and discarded when a digest does not match. ffmpeg.martin-riedl.de. The archives are checked against pinned SHA-256 digests and discarded when a digest does not match.

What never leaves

DeckTalk has no telemetry. It reports no usage, no errors and no project contents to its authors, and it has no update check. Nothing about a build is sent anywhere unless a command in the first table above sends it. No DeckTalk environment variable has its value printed, logged or placed in a request body. The one exception is DECKTALK_ALLOW_ANY_API_BASE, which is a switch and never a secret. An error message that quotes a reply from a service has every credential in it replaced before the quote is cut to length. KaTeX ships inside the wheel, so an equation needs no download and no content delivery network.

The agent is a second service

The six DeckTalk skills run inside your coding agent. When you ask an agent to write a script, place cues or fix a finding, the agent puts your script.md, your decktalk.toml, your cues.json and the JSON that DeckTalk prints in front of whatever model that agent runs. That model is a cloud service of its own, under its vendor’s terms and not under DeckTalk’s, and a policy review that covers the speech service should cover it too. Running DeckTalk from the command line alone contacts no model.

On a managed machine

A laptop with an intercepting proxy, no administrator rights and a policy review needs four things, and none of them is a DeckTalk feature you have to wait for.
  • Build with no voice and no key. decktalk build --no-voice writes placeholder narration and makes a complete video. It contacts no service, so you can show a finished internal video before any approval comes back.
  • Use the browser the machine already has. Set [record] browser_path in decktalk.toml, or point PLAYWRIGHT_BROWSERS_PATH at a location your administrators have already filled. The pinned build is the reference, and a managed browser is supported and unverified.
  • Use the ffmpeg the machine already has. DECKTALK_FFMPEG and DECKTALK_FFPROBE name executables directly, and a build that finds them downloads nothing from the second table.
  • Ask the proxy to leave the local origin alone. Pages record over a virtual origin on the loopback address, so the proxy rules need a bypass for it. decktalk serve binds to the loopback address and takes --host and --port.
Requirements and costs has the full managed-machine section, with the package index mirror, PLAYWRIGHT_BROWSERS_PATH, DECKTALK_FFMPEG and DECKTALK_CACHE_DIR. decktalk doctor reports what is installed and which browser and media build a run would use, without fetching anything, and decktalk doctor --report prints a redacted block you can paste into a ticket.