Command line

Everything is in one binary, sluurp. sluurp --help lists commands and sluurp <command> --help lists a command's options. This page is an overview.

Every command accepts --dir <DIR>, the data folder (one SQLite file per project). Defaults to sluurp_data in the current directory.

Serving

CommandWhat it does
serveStart the server: API, admin UI at /_/, and the --public app
staticExport the app as static files, islands included; --base repo for a subfolder (Static sites)
compileBuild a single binary with one app embedded
testRun an app’s tests in a headless Chrome, Edge or Chromium, on a fresh database; --grep, --coverage (Testing)

serve options:

Option
--public DIRThe app at /: a folder or repository URL. NAME=DIR mounts another at /NAME/; repeatable
--addr HOST:PORTListen address; default 127.0.0.1:8090 (local only)
--no-hot-reloadDisable file watching, for production
--admin-auto-loginSign the admin in as the first superuser without a password, from this machine only. For development; a warning is printed at start. Never use it on a server others can reach
--attach NAME=FILEUse an existing SQLite database in place (Existing SQLite databases)
--events [ADDR]Accept local events over UDP (Hooks and events)
--channel NAME, --appsServe a published bundle, or all registered apps by hostname, instead of a folder
sluurp serve --public ./app --public reports=./reports --addr 0.0.0.0:8090

Data

CommandWhat it does
migrate APPRun an app’s migrations; --plan previews
schema plan, schema applyDiff a schema.json against the database, or apply it
import FILEImport collections and records from an import document
superuser EMAIL PASSWORDCreate a superuser or reset their password
backupSnapshot every project to a dated folder
migrationsShow Sluurp’s internal migrations applied to a project
benchBenchmark collections on this machine (Why SQLite)

Packages

CommandWhat it does
add SPECVendor a package into an app: add three, add npm:date-fns@4, add jsr:@std/path, a CDN URL, or font:inter:400,600 (Packages)
remove NAMERemove a vendored package
outdated, updateShow and apply newer versions, like pnpm
vendorList vendored packages; check files against hashes, or verify against the source
cacheShow the package cache and bundle locations; clear empties them

These take --app DIR for the target app (default: current folder).

Publishing

CommandWhat it does
push DIRStore an app as a bundle; --deploy CHANNEL also deploys it
bundlesList bundles and what each channel serves
deploy CHANNEL BUNDLEPoint a channel at a bundle
promote FROM TOCopy one channel’s bundle to another, e.g. staging → production
rollback CHANNELRevert a channel to its previous bundle
appConnect a git repository to publish on every push

Other

CommandWhat it does
emit NAME [JSON]Send an event to a server running with --events
i18nList unused keys in an app’s i18n.json