個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗DeckWerk is an opinionated cross-platform what-you-see-is-what-you-get slide editor by Vincent Sitzmann.
Deck as in slide deck, and Werk as in the German word that means "a work (of art, literature, etc)", a factory, or a structure.
Website: deckwerk.org
I designed DeckWerk to bring the ability to create and present polished talks to Linux. It is optimized for presentations centered on video and image content, with animation, tables, plotting, templating, and similar features reduced to the minimum.
DeckWerk is intended for research talks, lectures, demos, and other presentations in which the visual material is the substance.
Watch the demo on YouTube.
Download the installer for your system from deckwerk.org or the latest release:
.dmg for Apple Silicon (mac-arm64) or Intel (mac-x64).
Open it and drag DeckWerk into Applications. Homebrew users can
brew install --cask vsitzmann/tap/deckwerk instead.setup.exe. It is not signed yet, so Windows may stop it
at first: choose More info, then Run anyway..AppImage (allow it to run as a program, then
double-click it), the .deb for Debian and Ubuntu, or the .tar.gz.Updating — DeckWerk never updates, or even checks, on its own. Choose
DeckWerk menu → Check for Updates…: if a newer release exists, the macOS,
Windows and AppImage builds show what is new and update after you confirm,
restarting when you say so. The .deb does not replace itself, and neither
does a Flatpak: for those the menu item opens the release page.
From source — you will need Node.js 22 or newer, Python 3.10 or newer, and Git:
git clone https://github.com/vsitzmann/deckwerk.git
cd deckwerk
npm ci
npm run dist
The platform-specific installer lands in release/. See
docs/BUILDING.md for platform-specific details and for
running DeckWerk directly without packaging it first.
Most presentation software doesn't run on Linux. Web solutions such as Google Slides have minimal video support.
DeckWerk starts from a different set of assumptions:
These assumptions make DeckWerk opinionated. It is not trying to reproduce every feature of PowerPoint or Keynote. It is trying to make a particular kind of visual, media-rich presentation easy to create and collaborate on in trusted networks and tailnets such as labs or companies.
It has to work on Linux :)
Drag and drop video onto a slide. Crop it, trim it, adjust its appearance, and present it without leaving DeckWerk.
DeckWerk auto-transcodes videos and images into compatible formats.
DeckWerk is designed so that AI agents can create and edit presentations directly. It does not run or own an agent account: for a local presentation, the Agent… button gives you its real deck folder and no server is involved. In a browser collaboration session, the same button copies a prompt that tells your agent how to mirror the remote live deck folder onto your machine and keep it in sync; the agent sets the mirror up itself. Only Node is needed for that remote bridge.
In both cases the authoring loop is the same: run slide-agent context, export or create an HTML file under edit/, then edit and save it. DeckWerk compiles that HTML into ordinary editable slide objects, applies the save as one named undoable change, and shows it in History. JavaScript-driven content is explicitly staged as a web element; titles, captions, and other non-interactive content remain normal editable objects.
A collaborative session can run from a laptop or a headless server. Anyone on the same trusted local network—or the same tailnet—can join and begin editing.
Participants see one another’s selections, cursors, and edits in real time.
This mode is intentionally designed for trusted networks. It is not a public document-sharing service and should not be exposed directly to the open internet.
Run on a lab machine or team server, DeckWerk works much like Google Slides: a feature-complete, collaborative deck editor in the browser, with no accounts and nothing to install for collaborators. Point it at a folder of presentations; everyone who opens the address gets a file picker, then the full editor, with live cursors, selections and edits from everyone else.
[!CAUTION] Run the headless server behind a tailnet. Never expose it to the internet. It has no passwords or user accounts: anyone who can reach its port can open, edit and download every presentation it serves. Don't forward the port, open it in a cloud firewall, put it behind a public reverse proxy, or publish it with
tailscale funnel. See Setting up a tailnet for a step-by-step setup.
From a source checkout (see Installing):
npm ci
npm run collab -- /path/to/shared-decks
The server listens on port 5800 and prints every address it can be reached
at. Choose who can reach it with --host:
| Reachable from | Command |
|---|---|
| The local network (and the tailnet, if the machine is on one) | npm run collab -- /path/to/shared-decks |
| The tailnet only | npm run collab -- /path/to/shared-decks --host "$(tailscale ip -4)" |
| The tailnet only, over HTTPS with per-person access control | npm run collab -- /path/to/shared-decks --host 127.0.0.1 --access [email protected]plus tailscale serve --bg --https=443 http://127.0.0.1:5800 |
| This machine only | npm run collab -- /path/to/shared-decks --host 127.0.0.1 |
Each subfolder of /path/to/shared-decks that holds a DeckWerk presentation
shows up in the picker; ordinary folders nest them. The server cannot read or
write outside that folder. From the browser, people can open, create, rename,
move and import presentations, present them, and download a copy. Use
--port 5900 to pick another port.
The server holds the authoritative copy of each open presentation and saves every change straight back into its folder, so images and videos stay ordinary files on disk. Don't open the same presentation in the desktop app while the server is running. Press Ctrl+C to stop it; open presentations are saved before it exits.
Tailnet only. Binding to the machine's Tailscale address hides the server
from the local network. Collaborators open http://<machine-name>:5800.
Binding to loopback and publishing through tailscale serve adds HTTPS, and
with --access each person's tailnet login becomes their identity, so a
presentation can be private, shared with named people, or view-only. There are
no passwords: tailnet membership is the authentication. Never expose this setup
through tailscale funnel.
Agents. Every collaborator can bring their own agent, such as Claude Code or
Codex. Agent… in the browser toolbar copies a prompt to paste into the
agent. The agent then starts a small bridge (it needs only Node 22) that
mirrors the live presentation into a folder on their machine. The agent's edits reach everyone within a second
or two and show up under its name in History. Nothing runs on the server on
anyone's behalf. --no-local-agents turns this off.
DeckWerk is particularly suited to:
DeckWerk presentations are stored locally as folders containing the presentation and its media. Videos remain ordinary video files and images remain ordinary image files.
A talk does not need to be uploaded to a service before it can be edited, presented, shared, or archived.
DeckWerk can also export a presentation for playback in a web browser, providing a portable fallback when presenting from another machine.
DeckWerk is in alpha, under active development. I already use it to author and deliver real presentations, but its interfaces and file format may continue to evolve.
DeckWerk is an open-source Electron application under the MIT license.
DeckWerk combines “deck,” as in a slide deck, with the German word Werk: a work, creation, or craft.