specific CLI is the primary interface to Specific, for humans and coding agents alike. Run specific --help or specific <command> --help for built-in help.
Setup
specific init
Prepare a project for use with a coding agent. Writes Specific usage instructions into your agent’s configuration file (CLAUDE.md for Claude Code, AGENTS.md for Codex, .cursor/rules/specific.mdc for Cursor) and adds .specific and specific.local to .gitignore.
| Option | Description |
|---|---|
--agent <name...> | Agents to configure: cursor, claude, codex, other. Auto-detected from existing config files if omitted. |
specific docs
Fetch LLM-optimized documentation bundled with the CLI. Without a topic, prints the documentation index. Topics are nested paths.specific check
Validate thespecific.hcl configuration file. Lists all builds, services, databases, storage, redis, and configs defined in the file, and reports errors for invalid configurations, including Reshape migration validation.
specific.hcl or your migration files.
Local development
specific dev
Start the local development environment. Readsspecific.hcl and starts all resources and services on local ports, printing their URLs. The local dashboard is usually at http://localhost:3000, with services on the ports next to it.
| Option | Description |
|---|---|
-k, --key <key> | Run an isolated dev environment with separate data and ports. Auto-detected from git worktrees. |
--tunnel | Expose public services via *.tunnel.spcf.app URLs so others (or remote agents) can reach them. |
specific exec
Run a one-off command with a service’s environment variables and its dependencies started. Ifspecific dev is already running, exec reuses the existing resources. Otherwise, it starts the required resources temporarily and stops them when the command finishes. This is the primary way to run database migrations, seed scripts, and other setup commands.
| Option | Description |
|---|---|
-k, --key <key> | Dev environment namespace. Auto-detected from git worktrees. |
--cwd <path> | Override the working directory (defaults to service.root or build.root). |
-- separator distinguishes the service arguments from the command to execute. Running specific exec <cron> without a command runs the cron’s configured command.
specific psql
Connect to a local Postgres database with an interactivepsql session. If the database is not running, it is started automatically. When only one database is defined in specific.hcl, the database name is optional.
| Option | Description |
|---|---|
-k, --key <key> | Dev environment namespace. Auto-detected from git worktrees. |
-- are passed directly to psql. For production databases, use specific query --db instead.
specific reshape
Manage Reshape zero-downtime migrations manually. Duringspecific dev, migrations are managed automatically; these commands are for manual control.
| Option | Description |
|---|---|
-k, --key <key> | Dev environment namespace. Auto-detected from git worktrees. |
check validates migration file syntax and works without a running database; the other actions need one (started automatically if specific dev isn’t running).
specific clean
Remove local development data. Deletes the resource data stored in.specific/keys/, giving you a fresh start with empty databases and storage. Cannot be run while specific dev is active.
| Option | Description |
|---|---|
-k, --key <key> | Remove data only for the specified dev environment key. |
Deploy and manage
specific deploy
Deploy the project to Specific Cloud. On first deploy, prompts you to log in and create or select a project; afterwards the project is remembered in.specific/project.json.
| Option | Description |
|---|---|
--project <id> | Project ID to deploy to (overrides the saved project). |
-e, --environment <name|id> | Target environment. Auto-selected if only one exists. |
--secret <key=value...> | Secret values (repeatable). |
--config <key=value...> | Config values (repeatable). |
--preview | Deploy to an ephemeral preview environment. |
specific status
Show the current project, its environments (including preview environments and theirenv_... IDs), and deployment status.
specific query
Run a SQL query against your environment’s observability data (ClickHouse), or against a production Postgres database with--db (read-only).
| Option | Description |
|---|---|
-e, --environment <name|id> | Target environment (defaults to the current one). |
--db <name> | Query a Postgres database by name with Postgres SQL (read-only) instead of observability data. |
--format <table|json|jsonl|csv> | Output format. Defaults to table on a TTY, jsonl when piped. |
specific domain
Manage custom domains for deployed services.add registers a domain and prints the DNS records you need to create. Removing a domain is done in the dashboard.
| Option | Description |
|---|---|
-e, --environment <name|id> | Target environment (defaults to the current one). |
specific project
Manage projects.| Option | Description |
|---|---|
--org <id> | Organization ID for new (required if you belong to multiple organizations). |
Account
specific login
Log in to Specific. Opens a browser for authentication; in non-interactive environments it prints a device-authorization link and code instead.| Option | Description |
|---|---|
--device-code <code> | Complete login using a device code from a previous non-interactive login. |