@saplo/cli
v2.4.0
Published
Official CLI + MCP server for Saplo hosting platform - 53 tools for Claude (Code & Desktop): deploy, env, domains, DNS, mail, backups, cron, ports, addons (universal buy), prepaid wallet, WordPress automation (install, plugins, themes, users, wp-cli, db e
Maintainers
Readme
@saplo/cli
Official CLI for the Saplo hosting platform.
Installation
npm install -g @saplo/cliQuick Start
# Authenticate
saplo login
# In your project directory
saplo init # generate saplo.yaml
saplo link # connect to existing app
saplo deploy # deploy!Commands
Authentication
saplo login [--token <token>]- Authenticate with Saplosaplo whoami- Show current authenticated user
Project Setup
saplo init- Initialize saplo.yaml in current directorysaplo link [--app-id <id>]- Link directory to an existing application
Deployment
saplo deploy- Deploy the current directorysaplo deploy --prebuilt- Upload prebuilt output (skip server build)saplo deploy --no-logs- Deploy without streaming logssaplo rollback [<deployment_id>]- Roll back to previous deploymentsaplo status- Show current app status and recent deployments
Logs
saplo logs- Show recent logssaplo logs --follow- Stream live logssaplo logs --deployment <id>- Logs for a specific deployment
Environment Variables
saplo env- List all env varssaplo env set KEY=value- Set one or more env varssaplo env rm KEY- Remove an env varsaplo env pull- Pull non-secret vars to .env.local
Domains
saplo domain ls- List custom domainssaplo domain add example.com- Add a custom domainsaplo domain rm example.com- Remove a domain
Utilities
saplo open- Open app URL in browser
saplo.yaml Reference
version: 1
name: my-app # lowercase slug
stack: nextjs # nextjs|react|django|static|docker|node|astro
app_id: 1234 # set by `saplo init` or `saplo link`
runtime:
node: "22" # node version
python: "3.13" # python version
build:
install: "npm ci"
command: "npm run build"
output: ".next"
start:
command: "npm run start"
port: 3000
healthcheck: "/api/health"
workers: 1
env:
MY_VAR: "value"
domains: [example.com, www.example.com]
hooks:
pre_build: "scripts/setup.sh"
post_deploy: "curl -X POST $NOTIFY_URL"
branches:
production: main
resources:
ram_mb: 2048
ssd_gb: 20.saploignore
Create a .saploignore file (like .gitignore) to exclude files from deployment:
my-large-file.bin
local-only/Default ignores: node_modules, .git, .next/cache, *.log, .env*, .DS_Store
License
MIT - Studio Kalmus
