Dev commands
Thedev block on a service lets you override the production command for local development. This is where you use hot-reload servers, watch modes, or any command optimized for a fast feedback loop.
specific dev runs, it uses npm run dev instead of node server.js. During deployment, the production command is used.
Dev-only services
A service with adev.command but no top-level command only runs in local development. It is ignored during deployment. This is useful for running local infrastructure like a Temporal dev server or a mock API.
Dev environment variable overrides
Thedev.env block lets you override environment variables for local development. Variables defined in dev.env take precedence over the top-level env block when running locally.
Port allocation
Specific automatically allocates stable ports for each service. Ports are consistent across restarts — the same service always gets the same port for a given project and instance key. Ports are injected through environment variables:port— the port for the default endpointendpoint.<name>.port— the port for a named endpoint
Local URLs
Public services are accessible over HTTPS at:https://<service>-<endpoint>.local.spcf.app.
Multi-instance support
Run isolated development environments side-by-side with the--key option. Each instance gets its own data, ports, and URLs.
https://web.feature-auth.local.spcf.app.
Each instance stores its data separately under .specific/keys/<key>/, so databases and other state are fully isolated.
Automatic git worktree detection: When working in a git worktree, Specific automatically detects the worktree name and uses it as the instance key. No --key flag needed.
Tunnel mode
Expose your local services to the internet with--tunnel. This gives each public service a publicly accessible URL — useful for sharing work with others, testing webhooks, or developing on machines where local DNS setup is not possible.