CLI Reference
The ske CLI is a standalone Go binary. Every platform capability is available as a CLI command.
Global flags
Section titled “Global flags”These flags work on all commands:
| Flag | Description | Env override |
|---|---|---|
--json |
Output machine-readable JSON | — |
--api-url |
Override the SKE API base URL | SKE_API_URL |
--org |
Override the current organization slug | SKE_ORG |
--workspace |
Override the current workspace slug | SKE_WORKSPACE |
--project |
Override the project slug (from ske.yml) |
— |
--env |
Override the environment slug (from ske.yml) |
— |
--no-color |
Disable colored output | NO_COLOR |
Exit codes
Section titled “Exit codes”| Code | Meaning |
|---|---|
0 |
Success |
1 |
General failure |
2 |
Usage error (bad flags or arguments) |
3 |
Authentication error |
4 |
API error |
5 |
Conflict |
Authentication
Section titled “Authentication”ske login
Section titled “ske login”Sign in to SKE using passwordless authentication.
ske login [--email you@example.com]Sends a magic link to your email address, then polls until you click it. On success, stores credentials in ~/.ske/credentials.json.
| Flag | Description |
|---|---|
--email |
Email address (prompted if omitted) |
ske logout
Section titled “ske logout”Sign out and revoke the current session.
ske logoutRevokes the refresh token server-side, then deletes ~/.ske/credentials.json. Refuses if SKE_API_TOKEN is set (use unset SKE_API_TOKEN instead).
ske whoami
Section titled “ske whoami”Show the signed-in account and current organization.
ske whoamiyou@example.com — acme-corpOrganizations
Section titled “Organizations”ske orgs
Section titled “ske orgs”List organizations you belong to. Alias: ske organizations.
ske orgs SLUG NAME PERSONAL* acme-corp Acme Corporation no jane-doe Jane Doe yesThe current organization is marked with *.
ske orgs switch
Section titled “ske orgs switch”Switch to a different organization.
ske orgs switch <slug>ske orgs switch acme-corp✓ Switched to acme-corpValidates with the server and saves to ~/.ske/config.json. Clears the cached workspace.
Workspaces
Section titled “Workspaces”ske workspace list
Section titled “ske workspace list”List workspaces in the current organization.
ske workspace list NAME SLUG DEFAULT CREATED Production production yes 2026-08-15 Staging staging no 2026-08-20ske workspace switch
Section titled “ske workspace switch”Switch to a different workspace.
ske workspace switch <slug>ske workspace switch staging✓ Switched to stagingProject Setup
Section titled “Project Setup”ske init
Section titled “ske init”Create or update ske.yml for the current project.
ske initInteractive mode: lists projects from the API, prompts for selection, then lists environments and prompts for selection. Creates ske.yml in the current directory.
Non-interactive mode:
ske init --project my-app --env productionIf ske.yml already exists, prompts for confirmation before overwriting. Preserves existing configuration, comments, and unknown keys.
ske version
Section titled “ske version”Print the CLI version and build information.
ske versionske 1.0.0 (linux/amd64)commit abc1234built 2026-09-20T14:30:00ZDeployments
Section titled “Deployments”ske deploy
Section titled “ske deploy”Deploy the current project.
ske deploy [--env <environment>] [--project <project>]Full pipeline: check Docker → init → build → push → upload assets → confirm → poll status.
⠋ Building container image...✓ Image built (42s)⠋ Pushing image to registry...✓ Image pushed (18s)⠋ Uploading assets...✓ Assets uploaded (3s)⠋ Provisioning infrastructure...✓ Infrastructure ready (2m 14s)⠋ Activating...✓ Deployed successfully (3m 17s total)ske deploy list
Section titled “ske deploy list”List recent deployments.
ske deploy list [--limit <n>]| Flag | Description | Default |
|---|---|---|
--limit |
Number of deployments to show | 15 |
ID TYPE STATUS INITIATOR CREATED 42 deploy succeeded you@example.com 2026-09-20 14:30 41 rollback succeeded you@example.com 2026-09-19 09:15 40 deploy failed ci@example.com 2026-09-18 16:00ske deploy show
Section titled “ske deploy show”Show deployment details including the output log.
ske deploy show <deployment-id>ske status
Section titled “ske status”Show the latest deployment status.
ske status [--env <environment>]ske rollback
Section titled “ske rollback”Roll back to a previous deployment.
ske rollback [--to <deployment-id>] [--env <environment>]| Flag | Description |
|---|---|
--to |
Specific deployment ID to roll back to (defaults to previous successful) |
Secrets
Section titled “Secrets”ske secret list
Section titled “ske secret list”List secrets for the current environment.
ske secret list [--env <environment>] KEY LAST MODIFIED APP_KEY 2026-09-15 14:30 DB_PASSWORD 2026-09-15 14:32ske secret set
Section titled “ske secret set”Set a secret value.
ske secret set <key> [--value <value>] [--env <environment>]If --value is omitted, prompts for the value with hidden input. Supports piped stdin:
printf '%s' "$SECRET" | ske secret set API_KEYske secret delete
Section titled “ske secret delete”Delete a secret.
ske secret delete <key> [--force] [--env <environment>]| Flag | Description |
|---|---|
--force |
Skip confirmation prompt |
ske job list
Section titled “ske job list”List recent infrastructure jobs.
ske job list [--limit <n>]| Flag | Description | Default |
|---|---|---|
--limit |
Number of jobs to show | 15 |
ID TYPE STATUS CREATED 15 database:create succeeded 2026-09-20 14:30 14 network:create succeeded 2026-09-20 14:28ske job show
Section titled “ske job show”Show job details including steps and output.
ske job show <job-id>Configuration
Section titled “Configuration”Resolution precedence
Section titled “Resolution precedence”API URL: --api-url flag → SKE_API_URL env → api_url in config.json → https://api.ske.io
Organization: --org flag → SKE_ORG env → current_org in config.json
Workspace: --workspace flag → SKE_WORKSPACE env → current_workspace in config.json → API default
Project: --project flag → name in ske.yml
Environment: --env flag → sole environment in ske.yml (if exactly one defined)
Configuration files
Section titled “Configuration files”| File | Location | Mode | Contents |
|---|---|---|---|
config.json |
~/.ske/config.json |
0644 |
API URL, current org, current workspace |
credentials.json |
~/.ske/credentials.json |
0600 |
Access token, refresh token, email, expiry |
ske.yml |
Project root | 0644 |
Project name, environment configuration |
Token refresh
Section titled “Token refresh”Access tokens expire after 15 minutes. The CLI transparently refreshes using the stored refresh token. File locking prevents concurrent CLI invocations from racing on the same refresh.
Environment variables
Section titled “Environment variables”| Variable | Purpose |
|---|---|
SKE_API_URL |
Override API base URL (default: https://api.ske.io) |
SKE_ORG |
Override current organization slug |
SKE_WORKSPACE |
Override current workspace slug |
SKE_API_TOKEN |
Static API token for CI (skips credential file) |
SKE_CONFIG_DIR |
Override config directory (default: ~/.ske) |
NO_COLOR |
Disable colored output |