TILLDEV · CLI

The terminal is the fastest dashboard.

One binary drives every product in your workspace. tilldev talks to the same API as the dashboard at tilldev.dev, so anything you can click you can also script — list issues, upload dSYMs on release, rotate a DSN, or ask your telemetry a question, without leaving your shell.

01Install

Install

bash
npm i -g @tillstack/cli      # or: pnpm add -g @tillstack/cli

tilldev login             # sign in once
tilldev config set org my-team
tilldev config set project prj_1a2b3c   # optional default

The tillpulse command is installed as an alias of tilldev — same binary, so tillpulse issues and tilldev pulse issues are equivalent.

02Account

Account & config

Your token, org, and a default project live at ~/.tilldev/config.json (file mode 0600). Set a default org and project and every command below drops the flags.

CommandWhat it does
tilldev loginSign in with email + password (prompts for 2FA if enabled); stores a token at ~/.tilldev/config.json (0600).
tilldev whoamiShow the signed-in user, org, role, and the API URL in use.
tilldev logoutForget the stored token — leaves your api-url and org config in place.
tilldev config get [key]Show config: api-url · org · project · token (redacted).
tilldev config set <key> <value>Set api-url, org, or a default project so later commands need no flags.
03TillPulse

TillPulse — observability

Everything under tilldev pulse …. Set a default project with tilldev config set project <id> to omit --project.

CommandWhat it does
tilldev pulse projectsList projects in the current org.
tilldev pulse projects create <name> --platform <ios|android|react-native|flutter|web>Create a project and print its DSN.
tilldev pulse project <id>Show a project, including its DSN.
tilldev pulse issues [--project <id>] [--limit <n>]List issues, newest first, with level, event count, and last-seen.
tilldev pulse issue <id>Show one issue as JSON — stack, breadcrumbs, device, release.
tilldev pulse metrics [--project <id>]Fetch the project’s headline metrics (error rate, throughput, health).
tilldev pulse alertsList alert rules and their current status.
tilldev pulse releases create <projectId> <version> [--build <b>] [--env <e>] [--commit <sha>]Mark a release so crash-free-session and regression tracking have a boundary.
tilldev pulse sourcemaps upload <projectId> --release <v> --file <path>Upload a JS/RN source map to de-minify stack traces.
tilldev pulse proguard upload <projectId> --release <v> --file <path>Upload an Android ProGuard/R8 mapping file.
tilldev pulse dsym upload <projectId> --release <v> --file <path>Upload iOS dSYMs to symbolicate native crashes.
tilldev pulse dsn rotate <projectId>Rotate the ingest DSN — old key stops accepting events.
tilldev pulse ask "<question>"Ask your telemetry in natural language; streams the answer to your terminal.
04TillAuth

TillAuth — authentication

CommandWhat it does
tilldev auth appsList your TillAuth apps.
tilldev auth apps create <name>Create an auth app; prints its public id and tenant slug.
tilldev auth app <appId>Show one auth app as JSON.
tilldev auth apps update <appRef> [--mfa required|optional] [--name <n>] [--allow-unverified-signin true|false] [--redirect-origins <csv>] [--default-redirect <url>] [--settings-json '<json>']Change app settings from a script. Partial — flags you omit keep their value. --settings-json reaches keys without a dedicated flag (allowlist, credentials). The same policy guards as the dashboard apply: a change that would strand existing users is refused with a count.
05Workspace

Workspace

Team and API keys are org-level — they span every product you’ve enabled.

CommandWhat it does
tilldev teamList members of the current org with their roles.
tilldev keysList API keys and when each was last used.
tilldev keys create <name> [--scopes read,ingest,admin]Mint an API key (defaults to read). Shown once — copy it immediately.
06Flags

Global flags & environment

These work on any command:

CommandWhat it does
--jsonPrint raw JSON instead of tables — pipe it into jq for scripting.
--api-url <url>Override the API base URL. Env: TILLDEV_API_URL. Defaults to https://tilldev.dev.
--token <token>Use a token without logging in — ideal for CI. Env: TILLDEV_TOKEN.
--help, -h · versionShow usage for any command, or print the CLI version.
07CI

In CI

Skip the interactive login: mint a scoped key once with tilldev keys create ci --scopes read,ingest, store it as a secret, and export it. The CLI reads TILLDEV_TOKEN automatically — a common step is uploading source maps right after a build:

bash
export TILLDEV_TOKEN="${{ secrets.TILLDEV_TOKEN }}"

tilldev pulse releases create prj_1a2b3c "$GIT_SHA" --commit "$GIT_SHA"
tilldev pulse sourcemaps upload prj_1a2b3c --release "$GIT_SHA" --file ./dist/main.js.map