v1.7.0 — A terminal CLI on npm & bulk site operations
Released 2026-07-03 · commit pending merge · PR #47
Highlights
dropfastCLI — a first-party command line over the whole REST API, now published on npm:npm install -g @dropfast/cli.- Bulk operations — change settings, edit metadata, or delete across many sites in one API call, dry-run by default.
- Agent-first everywhere —
dropfast llmsprints the entire command tree as JSON, and--jsonis the default when piped.
What's new
The dropfast CLI — publish and manage from the terminal
DropFast now has a first-party command line, published to npm as
@dropfast/cli. Install it once
and the dropfast command wraps the entire v1 REST API — publish a file,
folder, or stdin (directories are zipped with index.html at the root),
list and search your sites, walk versions and diffs, edit metadata, run the
comment review loop, manage aliases, sharing grants, and teams.
npm install -g @dropfast/cli
dropfast publish ./report.html --access private --meta df.project=acmeIt's a thin client — the API's {code, message, fix} errors verbatim,
deterministic exit codes (0/1/2/3/4/5), and --json output by default
whenever stdout isn't a terminal, so agents and scripts get machine-readable
results without asking. dropfast publish tracks each path in
~/.dropfast/state.json, so re-publishing the same path pushes a new version
at the same slug and URL instead of minting a new one. Full command reference
at /docs/cli; dropfast llms prints the whole tree as JSON.
Bulk site operations — one call, not a loop
A new endpoint, POST /api/v1/sites/bulk, applies one operation across many
sites at once: change settings (access mode, password, comments), merge or
unset metadata, or delete. Pick the targets with a metadata filter or an
explicit slug list (up to 500), and every call takes a required, explicit
dryRun flag so you preview exactly what would change before committing —
the preview predicts per-row failures the real run would hit. Execution is
best-effort per row: a partial failure still returns 200 with a per-slug
results[] and a summary, so one bad row never sinks the batch.
# preview, then execute — flip a whole project to private in one call
dropfast bulk set --filter df.project=acme --access private
dropfast bulk set --filter df.project=acme --access private --yesImprovements
GET /api/v1/sites/{slug}now returns the site'smetadataobject, matching the list endpoint.- The
dropfast-publishskill (v1.2.0) was rebuilt as pure policy over the CLI — private-by-default visibility,df.*tagging, and the review loop — with the CLI owning the plumbing. Now that the CLI is on npm, the skill and docs prefer the globaldropfastbinary and fall back to the in-repo runner; the hosted zero-install curl skill stays as the fallback.
Edit this page on GitHub