Skip to content

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/contact

Commands

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--targetThis directoryYour account (-g)
Claude Codeclaude.claude/skills/<slug>~/.claude/skills/<slug>
Codexexperimentalcodex.codex/skills/<slug>~/.codex/skills/<slug>
Gemini CLIexperimentalgemini.gemini/skills/<slug>~/.gemini/skills/<slug>
Cursorexperimentalcursor.cursor/skills/<slug>~/.cursor/skills/<slug>
GitHub Copilotexperimentalcopilot.github/skills/<slug>~/.copilot/skills/<slug>
Kimiexperimentalkimi.kimi/skills/<slug>~/.kimi/skills/<slug>
OpenAI/GPTexperimentalopenai.openai/skills/<slug>~/.openai/skills/<slug>

Environment variables

The variables the published CLI documents in its own help.

VariableWhat it does
PROMPTDOCK_TOKENCI bearer token (Settings → Account → CLI sessions)
PROMPTDOCK_API_BASEAPI origin override (default https://www.promptdock.ai)
NO_COLORdisable 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.