CLI command reference
Generated from the published CLI’s own --help, so every block below is exactly what your terminal prints. Currently documenting promptdock v1.2.2 — the version npx promptdock@latest installs. For the walkthrough instead, start at the CLI guide.
In this guide
Synopsis
What promptdock --help prints.
promptdock v1.2.2 — install AI agent skills from promptdock.ai
Usage
npx promptdock@latest install <handle>/<slug>
Commands
login [--token pdk_…] log in (browser hand-off, or store a CI token)
logout log out (revokes the session server-side, clears the local token)
whoami [--json] show the signed-in account
install <ref> [options] install a skill (ref = handle/slug, @handle/slug, or a pasted URL)
uninstall <ref|--all> remove an installed skill (receipt-driven; never touches unmanaged files)
update [ref] [--all] update installed skills to the latest approved version
upgrade alias of update (updates skills, not the CLI: npm i -g promptdock@latest)
list [--json] show installed skills (receipts)
help this map
Install options
-g, --global install into the tool's per-user dir (skips the scope prompt)
--target <tool> pick the tool (claude, codex, gemini, cursor, copilot, kimi, openai); scope is still asked — add -g or -y to skip
--dir <path> install into an explicit directory
-y, --yes skip prompts (needs an unambiguous target; NEVER implies --force)
--force replace files you edited and files at paths the new version ships,
keeping every other file you added; or replace another skill's folder
--dry-run resolve + print what would happen; installs nothing
--json machine-readable output
Update/uninstall options
--check (update) report available updates without applying
--all operate across project-local AND global scopes
-g, --global operate on the global scope (bare commands are project-local)
--allow-partial exit 0 even when an item failed (default: exit non-zero)
Targets
claude .claude/skills/<slug> (-g: ~/.claude/skills/<slug>)
codex .codex/skills/<slug> (-g: ~/.codex/skills/<slug>) (experimental)
gemini .gemini/skills/<slug> (-g: ~/.gemini/skills/<slug>) (experimental)
cursor .cursor/skills/<slug> (-g: ~/.cursor/skills/<slug>) (experimental)
copilot .github/skills/<slug> (-g: ~/.copilot/skills/<slug>) (experimental)
kimi .kimi/skills/<slug> (-g: ~/.kimi/skills/<slug>) (experimental)
openai .openai/skills/<slug> (-g: ~/.openai/skills/<slug>) (experimental)
Environment
PROMPTDOCK_TOKEN CI bearer token (Settings → Account → CLI sessions)
PROMPTDOCK_API_BASE API origin override (default https://www.promptdock.ai)
NO_COLOR disable colored output
Exit codes
0 ok · 1 usage · 2 auth · 3 denied/gated · 5 filesystem · 6 network
4 integrity or a local-safety conflict: checksum, unsafe path, receipt schema
or local changes (an edited file, a file where the new version ships one,
a special file) that an install or update would otherwise destroy
130 interrupted (Ctrl-C; Esc in a prompt cancels with 1)
Docs: https://www.promptdock.ai/docs/cli
Errors: https://www.promptdock.ai/docs/cli/errors
Support: https://www.promptdock.ai/contactCommands
Each block is that command’s --help, verbatim. Flags marked takes a value need one — --target claude or --target=claude; the rest are switches. An unknown flag is a usage error, never a silent no-op.
promptdock login
promptdock login [--token pdk_…] Log in via the browser hand-off: the CLI prints a code, opens promptdock.ai, you approve there, and the terminal continues. --token stores a token minted in Settings → Account → CLI sessions (the CI path; or set PROMPTDOCK_TOKEN).
Flags: --token (takes a value)
promptdock logout
promptdock logout Revokes the session server-side FIRST — the token this machine holds stops working immediately — then removes the local copy from ~/.promptdock/config.json. If the revoke cannot reach the server (offline), the local token is still removed and the CLI says so on stderr: that session stays valid until it expires, so revoke it at Settings → Account → CLI sessions.
promptdock whoami
promptdock whoami [--json] Shows the signed-in handle, role, and token expiry.
Flags: --json
promptdock install
promptdock install <handle>/<slug> [-g] [--target <tool>] [--dir <path>] [-y] [--force] [--dry-run] [--json] Installs a skill. Interactively it asks two things: which TOOL, then whether to install for THIS PROJECT or for your USER ACCOUNT (each shown as its real destination path). -g answers the second one up front; --dir answers both. Non-interactive sessions (CI) must pass --target or --dir plus -y, and authenticate via PROMPTDOCK_TOKEN. -y skips the prompts ONLY — a non-empty foreign directory still requires --force, and scope stays project-local unless -g is passed. --dry-run resolves and prints the plan without installing (and without spending any premium-unlock slot). Installing over a copy you changed: files you added are kept. A file you edited, or a file of yours where the new version ships one, stops the install (exit 4) and nothing is changed. --force replaces those files and keeps every other file you added. With no receipt in a non-empty folder (what an uninstall leaves when you had added files), --force keeps your files that do not collide with the new version's; another skill's folder is replaced, and the CLI lists what it removed.
Flags: --json · --global · --yes · --force · --dry-run · --target (takes a value) · --dir (takes a value)
promptdock uninstall
promptdock uninstall <handle>/<slug> | --all [-g] [--target <tool>] [--dir <path>] [--force] [-y] [--allow-partial] [--json] Removes an installed skill using its .promptdock.json receipt — only files the receipt lists are ever deleted. Locally-modified files block removal without --force (copy your changes out first). Across a batch (--all, or a scope holding several skills) one bad item no longer aborts the rest: the others are still removed and the command exits with that item's code at the end. --allow-partial exits 0 instead. Declining a confirm is not a failure.
Flags: --json · --global · --yes · --force · --all · --allow-partial · --target (takes a value) · --dir (takes a value)
promptdock update
Also spelled promptdock upgrade — the same command, kept for npm muscle memory.
promptdock update [<handle>/<slug>] [--all] [--check] [-g] [-y] [--force] [--allow-partial] [--json] `promptdock upgrade` updates your installed skills; it does not update the promptdock CLI. To update the CLI: npm i -g promptdock@latest (or use npx promptdock@latest). Updates installed skills to the latest approved version. Bare `update` covers the project-local scope; -g the global scope; --all both. --check reports without applying, including local changes that would block. Files you added are kept; a file you edited, or a file of yours where the new version ships one, blocks the update without --force (which replaces those files and keeps every other file you added). An item that FAILS (unreachable, gated, blocked by local edits) no longer stops the batch — the rest still update — but the command exits non-zero at the end so CI cannot go green on an update that did nothing. --allow-partial exits 0 instead. "Up to date" and a declined confirm are not failures.
Flags: --json · --global · --yes · --force · --all · --check · --allow-partial · --target (takes a value) · --dir (takes a value)
promptdock list
promptdock list [--json] [-g] [--all] Lists installed skills from their receipts: ref, version, target, installed-at.
Flags: --json · --global · --all
promptdock help
promptdock help — prints the global command map.
Two flags that surprise people
--all means two things at once. On update and list it widens the SCOPE — project-local and your user account, instead of just this directory. On uninstall it also stands in for the skill ref, so promptdock uninstall --all removes every installed skill in both scopes, not just the one you were thinking of. Run promptdock list --all first to see exactly what that covers.
--dir overrides --target. An explicit directory answers both the tool question and the scope question, so a --target passed alongside it is ignored rather than reconciled.
Install targets
Where each tool expects its skills to live. --target picks the tool; scope picks the column. Tools already set up in your working directory float to the top of the interactive picker.
Experimental means the path is that tool’s documented convention but has not been verified end to end by us — the install itself works the same; whether the tool picks the skill up is what is unconfirmed. Verified today: Claude Code. If an experimental target does not load a skill, the files are still on disk at the path below and nothing was lost.
| Tool | --target | This directory | Your account (-g) |
|---|---|---|---|
| Claude Code | claude | .claude/skills/<slug> | ~/.claude/skills/<slug> |
| Codexexperimental | codex | .codex/skills/<slug> | ~/.codex/skills/<slug> |
| Gemini CLIexperimental | gemini | .gemini/skills/<slug> | ~/.gemini/skills/<slug> |
| Cursorexperimental | cursor | .cursor/skills/<slug> | ~/.cursor/skills/<slug> |
| GitHub Copilotexperimental | copilot | .github/skills/<slug> | ~/.copilot/skills/<slug> |
| Kimiexperimental | kimi | .kimi/skills/<slug> | ~/.kimi/skills/<slug> |
| OpenAI/GPTexperimental | openai | .openai/skills/<slug> | ~/.openai/skills/<slug> |
Environment variables
The variables the published CLI documents in its own help.
| Variable | What it does |
|---|---|
| PROMPTDOCK_TOKEN | CI bearer token (Settings → Account → CLI sessions) |
| PROMPTDOCK_API_BASE | API origin override (default https://www.promptdock.ai) |
| NO_COLOR | disable colored output |
Two more things affect a run without appearing in the table. TERM=dumb (Emacs shell buffers, some IDE consoles) turns colour off and swaps the arrow-key pickers for a numbered reader — you are still asked the same questions, you type a number instead. There is no FORCE_COLOR: colour is off whenever output is not a terminal, and cannot be forced back on.
Behind a proxy: the CLI uses Node’s built-in fetch, which ignores HTTPS_PROXY and HTTP_PROXY — it detects them only to say so in the network error. On Node 24 and newer, NODE_USE_ENV_PROXY=1 makes fetch honour them.