CLI
deckhand present <deck> [--port 7777] [--ip 192.168.1.20] [--open] [--no-lan] [--hub https://…] [--slug ship-it]
deckhand validate <deck> [--quiet]
deckhand login --hub https://… --token …
deckhand push <deck> [--hub https://…] [--slug ship-it]
deckhand serve [--addr :8080] [--pg postgres://…] [--deck-origin https://decks.…] [--base-url https://…]
deckhand version
deckhand import <file.pptx> (stub: explains that it is planned)
<deck> is a directory, a .zip or a .tar.gz (see FORMAT.md).
present
- Loads and validates the deck (same rules as
validate). - Starts a server on every interface, port 7777 or the next free one.
- Prints the stage, remote and audience links and two QR codes: scan REMOTE with your phone, show AUDIENCE to the room.
--openopens the stage in your default browser. Pressfthere for fullscreen,bfor a black screen,qto show the audience QR.--hubpushes the deck to a hub and relays every state change so people outside the LAN can follow (milestone 4). Losing the hub only prints a warning; the local presentation is unaffected.
The LAN IP is auto-detected (docker, VPN, VM and link-local interfaces are
skipped). Use --ip when the guess is wrong, --no-lan to stay on
127.0.0.1.
Exit codes: 0 on Ctrl-C, 1 on an invalid deck or a port that cannot be bound.
validate
Prints title, ratio, slides (● has notes, ◎ has public notes), warnings and
errors. Exit 0 when the deck can be presented, 1 otherwise. --quiet prints
only warnings and errors.
login, push, present --hub
- On the hub, Decks → Get an API token, then
deckhand login --hub https://deckhand.show --token …. The token is saved in~/.config/deckhand/config.toml(DECKHAND_HUB/DECKHAND_TOKENoverride it). deckhand push talk/validates, zips and uploads the deck; it prints the permanent link/d/{you}/{slug}. Pushing the same slug again makes a new version.--slugpicks the slug (default: from the title).deckhand present talk/ --hub https://…does the push, starts a relayed presentation and prints the hub's audience link next to the local ones. Remote viewers follow through the hub; the stage and the remote stay local.
serve
Runs the hub; see HUB.md for the environment and deployment.
Terminal output
Colours are used only when stdout is a terminal and NO_COLOR is unset.