@dropfast/cli
v1.0.0
Published
DropFast CLI — publish & manage DropFast sites from the terminal over the v1 REST API.
Downloads
41
Maintainers
Readme
@dropfast/cli
First-party dropfast CLI — publish & manage DropFast sites from the
terminal. Wraps the entire v1 REST API (sites, versions, metadata,
comments, aliases, grants, keys, teams, server-side bulk operations) as a
thin client: no business logic, the API's {code, message, fix} error
vocabulary verbatim, deterministic exit codes.
Install
npm install -g @dropfast/cli # Node ≥18 → the `dropfast` command
dropfast --helpDeveloping inside the DropFast monorepo? Run it without a global install via
npm run dropfast -- --help (or node packages/cli/bin/dropfast.mjs --help).
Quick start
dropfast login # save a key to ~/.dropfast/credentials (mode 600)
dropfast publish ./report.html --access private --meta df.project=acme
dropfast sites ls --filter df.project=acme --sort updated
dropfast bulk set --filter df.project=acme --access private # dry-run
dropfast bulk set --filter df.project=acme --access private --yes # execute
dropfast comments ls <slug> --status openpublish tracks paths in ~/.dropfast/state.json (the same contract the
dropfast-publish skill uses): first publish of a path creates a site,
subsequent publishes push a new version at the same slug/URL. --new
forces a fresh site.
For agents
dropfast llmsprints the full command tree as JSON — every command with flags, one example, and its JSON output shape. Read it once and you know the whole surface.--json(default whenever stdout is not a TTY) makes every result and error machine-readable. Errors are{code, message, fix}on stderr.- Exit codes:
0ok ·1API/other error ·2usage ·3auth ·4not found ·5partial bulk failure. - Bulk mutations are dry-run by default;
--yesexecutes.
Configuration
| Setting | Order |
| --- | --- |
| API key | --api-key → $DROPFAST_API_KEY → ~/.dropfast/credentials |
| Base URL | --base-url → $DROPFAST_BASE_URL → https://dropfast.dev |
Development
Plain ESM (.mjs), no build step. Dependencies: clipanion + typanion
only. Tests live in the repo root test suite: tests/cli-*.test.ts
(units, run with npm test) and tests/cli-integration.test.ts
(spawns the real bin against a live dev server, part of
npm run test:integration).
