@loro-dev/loro-cli
v0.3.1
Published
CLI for operating the Loro Streams platform.
Readme
@loro-dev/loro-cli
CLI for operating the Loro Streams platform.
Scope
This package provides a script-friendly command line interface for:
- authentication flows (
loro auth ...) - dashboard operations (
loro dashboard ...) - stream operations (
loro stream ...) - bucket operations (
loro bucket ...) - local SQLite-backed dev server startup (
loro dev ...) - CLI version inspection (
loro version) - AI bootstrap guide generation (
loro prompt, outputs Loro Streams Agent Guide)
Design notes
- Default output is human-readable.
--jsonenables machine-friendly structured output.- Interactive TUI is intentionally avoided to stay AI-agent compatible.
Quick start
npm install -g @loro-dev/loro-cli
loro --help
loro versionOr run without installation:
npx -y @loro-dev/loro-cli --help
npx -y @loro-dev/loro-cli versionFor local development:
pnpm --filter @loro-dev/loro-cli run dev -- --help
pnpm --filter @loro-dev/loro-cli run dev -- version
pnpm --filter @loro-dev/loro-cli run dev -- prompt
pnpm --filter @loro-dev/loro-cli run dev -- auth login --no-browser
pnpm --filter @loro-dev/loro-cli run dev -- dashboard api-key token --key <api-key>
pnpm --filter @loro-dev/loro-cli run dev -- dev --db-path ./data/dev.sqlite
pnpm --filter @loro-dev/loro-cli run dev -- stream append <bucket> <stream> --data "hello" --framing binary
pnpm --filter @loro-dev/loro-cli run dev -- stream read <bucket> <stream> --format jsonl
pnpm --filter @loro-dev/loro-cli run dev -- stream inspect <bucket> <stream> 0 --data-format hex
pnpm --filter @loro-dev/loro-cli run dev -- stream watch <bucket> <stream> --from now --format jsonlHelp navigation is hierarchical. You can drill down at any command depth:
loro --helploro auth --helploro auth token --helploro dashboard api-key --helploro dashboard api-key token --helploro dev --helploro version --helploro stream --helploro stream append --helploro prompt backend-api --help
Local dev server
loro dev starts a local single-node Durable Streams server backed by SQLite + WAL:
loro dev --db-path ./data/dev.sqliteProperties:
- no auth
- implicit bucket namespaces
- SQLite persistence with WAL
- snapshot/bootstrap/live support via the bundled
@loro-dev/sqlite-riverrunruntime
This command only starts the local server. It does not rewrite your active CLI profile.
loro prompt uses incremental expansion:
- overview + base commands + topic directory on default run
- topic details via:
loro prompt durable-streamloro prompt integration with CRDTloro prompt permissions
- backend API task index (dashboard + gateway):
loro prompt backend-apiloro prompt backend-api --path /api/auth/api-key/tokenloro prompt backend-api --tag ApiKey --format jsonloro prompt backend-api --tag Gateway --format jsonloro prompt backend-api --path /ds/{bucket}/{stream}/bootstrap --format jsonloro prompt backend-api --full(full OpenAPI YAML dump)loro prompt backend-api --full --format json(full OpenAPI JSON object)
- full legacy reference only when explicitly requested:
loro prompt --profile full
Recommended API-key-to-JWT workflow:
- Read command semantics quickly:
loro dashboard --help - Locate endpoint details:
loro prompt backend-api --path /api/auth/api-key/token --format json - Exchange key for JWT:
loro dashboard api-key token --key <api-key> - Use the JWT for gateway calls:
loro stream ...(persistStream-Next-Offsetfrom responses)
Manual testing
See MANUAL_TESTING.md for end-to-end manual validation steps.
E2E failed-case tests
e2e/*.test.ts contains real backend reproduction cases and must be run with a dedicated command.
Prerequisites:
- You must be logged in first (
loro auth login --host https://streams.loro.dev). - These tests call real deploy/gateway endpoints.
Commands:
pnpm --filter @loro-dev/loro-cli run test:e2e
pnpm --filter @loro-dev/loro-cli run test:e2e:failed-casesPublish checklist
pnpm --filter @loro-dev/loro-cli run build
pnpm --filter @loro-dev/loro-cli run typecheck
pnpm --filter @loro-dev/loro-cli run test
pnpm --filter @loro-dev/loro-cli run test:built-artifacts
pnpm --filter @loro-dev/loro-cli run test:packCredentials
Credentials are stored at:
- macOS/Linux:
~/.config/loro/credentials.json - Windows:
%APPDATA%/loro/credentials.json
File permissions are restricted to the current user on Unix-like systems.
