個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Native Rust CLI and agent interface for the Sliplane cloud hosting and deployment API
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A blazing fast, native command-line tool and agent interface for the Sliplane cloud hosting platform API (v0, OpenAPI spec 0.11.0). Built in Rust for developers and autonomous AI workflows.
sliplane login prompts for your token securely and saves it to native OS vaults (macOS Keychain, Linux Secret Service / Keyutils, Windows DPAPI).--json output, standardized error envelopes with stable exit codes, and explicit llms.txt agent guidance.cargo install --git https://github.com/SpaceCorps/Sliplane-Cli --locked
Download standalone binary archives directly from the GitHub Releases page:
| Platform | Architecture | Binary Package |
|---|---|---|
| macOS | Apple Silicon (aarch64) | sliplane-v1.2.0-aarch64-apple-darwin.tar.gz |
| macOS | Intel (x86_64) | sliplane-v1.2.0-x86_64-apple-darwin.tar.gz |
| Linux | x86_64 (musl static) | sliplane-v1.2.0-x86_64-unknown-linux-musl.tar.gz |
| Windows | x64 (MSVC) | sliplane-v1.2.0-x86_64-pc-windows-msvc.zip |
Run sliplane login to launch your browser, copy your API token, verify it against GET /v0/me, and store it in your OS keystore:
# Interactive browser login (saved under account 'default')
sliplane login
# Log in with a specific account name
sliplane login staging
# Headless / CI pipeline login (reads token from stdin with no shell history trace)
echo "$SLIPLANE_API_KEY" | sliplane login ci --api-key-stdin
# Verify your token identity
sliplane me -a default
# List all projects
sliplane projects list -a default
# View compute servers
sliplane servers list -a default
# Deploy a web service
sliplane services deploy --project-id prj_123 --service-id srv_abc -a default
# Stream live container logs
sliplane services logs --project-id prj_123 --service-id srv_abc -a default
Every command that accesses the API accepts --account <name> (short -a <name>).
| Command | Description |
|---|---|
sliplane login [name] | Interactively authenticate with your API token and save it to the OS keystore |
sliplane me | Query identity, organization and the token's scopes (e.g. services:write, secrets:read) |
sliplane accounts list [--check] | List configured accounts (pass --check to verify token validity) |
sliplane accounts test <name> | Test credentials for a specific account |
sliplane accounts add <name> | Manually add an account and API key to the keystore |
sliplane accounts remove <name> | Remove an account and purge its key from the local keystore |
| Command | Description |
|---|---|
sliplane projects list | List all projects |
sliplane projects create --name <name> | Create a new project |
sliplane projects update --project-id <id> --name <name> | Rename a project |
sliplane projects delete --project-id <id> | Delete an empty project |
sliplane servers list | List all servers with instance sizes and locations |
sliplane servers get --server-id <id> | Inspect server details and resource allocations |
sliplane servers create --name <n> --instance-type <t> --location <loc> | Provision a new compute server |
sliplane servers rescale --server-id <id> --instance-type <t> | Scale server instance size up |
sliplane servers rescale-disk --server-id <id> --disk-size <gb> | Expand server storage volume disk size |
sliplane servers metrics --server-id <id> [--range 1h | --from <ts> --to <ts>] | Query CPU, memory and disk utilization metrics |
sliplane servers volumes --server-id <id> | List attached persistent storage volumes |
sliplane servers rename-volume --server-id <id> --volume-id <v> --name <n> | Rename a volume (services are not redeployed) |
| Command | Description |
|---|---|
sliplane services list --project-id <id> | List services within a project |
sliplane services get --project-id <p> --service-id <s> | Fetch detailed service configuration |
sliplane services create --project-id <p> (--image <img> | --repo <r>) | Deploy a new container service |
sliplane services update --project-id <p> --service-id <s> | Update service deployment settings (see safeguards below) |
sliplane services deploy --project-id <p> --service-id <s> | Trigger immediate redeployment |
sliplane services logs --project-id <p> --service-id <s> [--to <ts>] | Read container logs (paginated, 500 lines per call) |
sliplane services pause / unpause | Pause or resume container execution |
sliplane services set-env --project-id <p> --service-id <s> --key <k> --value <v> | Safely set or update a single environment variable |
sliplane services delete-env --project-id <p> --service-id <s> --key <k> | Remove a single environment variable |
sliplane services add-domain / remove-domain | Configure custom domain routing |
sliplane services rotate-deploy-hook --project-id <p> --service-id <s> | New deploy hook URL; the old one stops working immediately (needs secrets:read) |
sliplane services attach-volume --project-id <p> --service-id <s> --volume <id-or-name>:/path | Mount a volume and redeploy |
sliplane services update-volume --project-id <p> --service-id <s> --volume-id <v> --mount-path /path | Change a mount path and redeploy |
sliplane services detach-volume --project-id <p> --service-id <s> --volume-id <v> |
| Command | Description |
|---|---|
sliplane postgres list | List all managed PostgreSQL instances |
sliplane postgres get --postgres-id <id> | Retrieve database connection endpoints and credentials |
sliplane postgres create --name <n> --instance-type <t> --region <r> | Provision a managed PostgreSQL instance |
sliplane postgres update --postgres-id <id> --ip-allow <cidr>=<label> | Update instance configuration or IP allowlist |
sliplane postgres rotate-credentials --postgres-id <id> | Rotate database access password |
sliplane postgres slow-queries / top-queries | Inspect query performance and call frequency |
sliplane postgres metrics --postgres-id <id> [--range 1h | --from <ts> --to <ts>] | CPU, memory, disk and connection history |
sliplane buckets list | List S3-compatible object storage buckets |
sliplane buckets create --name <n> --region <r> | Create an S3 object storage bucket |
sliplane buckets keys --bucket-id <id> | List S3 access keys |
sliplane buckets create-key --bucket-id <id> --name <label> | Generate scoped S3 access key and secret |
| Command | Description |
|---|---|
sliplane ssh-keys list | List your SSH public keys |
sliplane ssh-keys create --name <n> (--public-key <key> | --public-key-file <path>) [--expires-at <rfc3339>] | Register a public key (optionally self-deleting, 5 minutes to 30 days) |
sliplane ssh-keys delete --key-id <id> | Delete a key (detach it from every service first) |
sliplane services ssh-keys --project-id <p> --service-id <s> | List the keys attached to a service |
sliplane services attach-ssh-key --project-id <p> --service-id <s> --key-id <k> | Attach a key; prints the host, port and username to connect with |
sliplane services detach-ssh-key --project-id <p> --service-id <s> --key-id <k> | Detach a key |
sliplane pricing | Standard prices for servers, Postgres and object storage (excl. tax) |
Commands format stdout as clean YAML by default. Pass --json when parsing outputs with jq, Python, or LLM tool-calling loops:
# Parse status with jq
sliplane services get --project-id prj_123 --service-id srv_abc -a default --json | jq -r .status
Errors are output to stderr as structured envelopes with stable exit codes:
{
"code": "auth_required",
"message": "Token expired or missing.",
"remediation": "Run 'sliplane login default' to authenticate."
}
| Exit Code | Error Symbol | Handling Directive |
|---|---|---|
0 | ok | Command succeeded |
1 | error | General failure; unclassified |
2 | network | Network connectivity failure; retry once |
3 | auth_required | Unauthenticated; surface remediation to user |
4 | not_found | Resource does not exist; do not retry |
5 | rate_limited | API rate limit reached; back off before retrying |
6 | invalid_input | Parameter schema validation failed |
7 | no_account | Requested account not configured in keystore |
Inspect built-in agent guides directly from the CLI:
sliplane agent-readme # Human-readable markdown guide
sliplane agent-readme --json # Machine-readable rules and schemas
For web-based LLMs and crawlers, refer to llms.txt and llms-full.txt.
--env vs --merge-env):
--env to services update replaces the entire environment array. The CLI warns and aborts if unmentioned variables would be dropped.--merge-env to preserve unmentioned variables, or --replace-env if removal was intentional.services set-env to change a single variable safely.--merge-env safely retains existing secrets without exposing or overwriting them.--merge-env would overwrite plain variables with nothing. The CLI refuses that (auth_required) and points you to services set-env or a key with Secrets: Read. sliplane me lists a key's scopes, and accounts add / accounts test warn when secrets:read is missing.services update automatically carries over existing deployment parameters (branch, Dockerfile path, build context, path filters) so they do not inadvertently revert to defaults.--volume my-data:/data automatically binds to an existing server volume named my-data rather than creating duplicates.cmd.exe. Avoid Git Bash / MSYS, which automatically rewrites Unix-style path arguments (/health → C:/Program Files/Git/...).| Variable | Description | Default |
|---|---|---|
SLIPLANE_CONFIG_DIR | Custom directory path for config.yaml | ~/.config/sliplane (or OS equivalent) |
SLIPLANE_SECRET_STORE | Force specific credential store: dpapi, keychain, libsecret, plaintext | Auto-detected |
SLIPLANE_ALLOW_PLAINTEXT_STORE | Set to 1 to allow a chmod 0600 file store on headless Linux without DBus/SecretService | 0 |
SLIPLANE_API_URL | Override the API base URL (useful for integration testing against mocks) | https://ctrl.sliplane.io/v0 |
Contributions are welcome! Please submit issues and pull requests to SpaceCorps/Sliplane-Cli.
Dual-licensed under the MIT License.
| Unmount a volume and redeploy (the data is kept) |