FIRST DEPLOYMENT
Deploy your first app with an agent.
Start inside any app repository. Small installs a portable skill for your coding agent, keeps production credentials outside the prompt, and deploys to a private URL by default.
One prompt. Your agent handles setup.
Paste this into Codex, Claude Code, Cursor, or OpenCode from your app repository. It inspects the project, installs the official tools, and drives the deployment to a healthy URL.
Deploy this app with Small. Follow https://smallcloud.sh/start.md. Keep it private, and add managed Postgres if the app needs data.
- 1Give the agent one prompt
It reads Small's canonical deployment guide.
- 2Approve browser sign-in
No cloud key or workspace admin token enters chat.
- 3Receive the private URL
The agent plans, deploys, verifies, and reports back.
QUICKSTART
One prompt to a private URL.
You do not need to choose a cloud, create registry credentials, or give the agent SSH access. Small Cloud is the default when target.server is empty.
- 01
PROMPT
Give the deployment to the agent already in your repo.
The canonical guide tells it how to inspect the app, install the checksum-verified CLI and project skill, create
small.yaml, and use safe defaults.Deploy this app with Small. Follow https://smallcloud.sh/start.md. Keep it private, and add managed Postgres if the app needs data.
- 02
HUMAN CHECKPOINT
Approve one scoped browser sign-in.
The agent shows the exact Small activation URL and device code, then waits. Existing users sign in and approve; new users verify their email. Passwords, magic links, and API tokens stay out of the conversation.
- 03
PLAN
Small evaluates authority before building.
The plan returns allow, approval required, or denywith reasons. A routine private deployment normally stays inside policy and proceeds without a human checkpoint.
decisionALLOWaccessprivate · workspace membersruntimeSmall Cloud · automatic placement - 04
LIVE
Open the stable application URL.
Small uploads the immutable image, starts it in an isolated runtime, verifies health and routing, then prints the URL. The previous release stays active until its replacement is healthy.
HEALTHYhttps://hello-small.apps.smallcloud.sh
RUNTIME
Choose where it runs.
Runtime placement is separate from the deployment contract. Start on managed Small Cloud, then move the same manifest to a company-owned VPS when policy or workload requirements change.
Small Cloud
Leave target empty. Small selects healthy managed capacity, provisions ingress, and returns the application URL.
- Fastest first deployment
- gVisor-isolated pooled runtime
- No VPS or registry setup
Your VPS
Enroll a supported host from Cloud & runtimes, then set target.server or pass --server.
- Company-owned capacity
- Outbound-only managed relay
- No public Docker socket or SSH handoff
DEPLOYMENT CONTRACT
Keep deployment intent in small.yaml.
The manifest is the portable boundary between any coding agent and Small. It declares how to build, health-check, expose, size, and place the app—without containing credentials.
version: 2
name: hello-small
source:
type: local
dockerfile: Dockerfile
context: .
service:
port: 3000
healthcheck:
path: /health
resources:
memoryMb: 256
cpus: 0.25
storage: []
access:
mode: private
env: {}
secrets: []
lifecycle:
expiresAfter: 30d
target: {}Local source builds an immutable image on your machine. Source code is not uploaded to Small.
CPU and memory are explicit, so policy and placement can be evaluated before deployment.
Private is the safe default. Access changes travel with the release and activate only after health succeeds.
version: 2
addons:
postgres:
version: 17Small provisions a dedicated private database and injects DATABASE_URL. The credential is never shown in the dashboard, logs, CLI, MCP output, or agent conversation.
AGENT INTEGRATION
Use the skill first. Add MCP when useful.
The repository skill is enough for Codex, Claude Code, and compatible agents to operate the CLI. MCP adds structured tools for manifests, policy plans, deployments, logs, audit, and rollback; it is useful, but not required for activation.
Project skill
Lives with the repository, tells the agent what Small can do, and keeps the deployment process reproducible across harnesses.
.agents/skills/deploy-with-smallMCP server
Exposes typed planning and operations over stdio using the already authenticated CLI credential.
small mcpCLI
The narrow, scriptable contract underneath every harness and the escape hatch for manual operation or CI.
small --help# Codex
codex mcp add small -- small mcp
# Claude Code
claude mcp add --transport stdio --scope user small -- small mcpRestart the coding-agent session after installing a skill or MCP server so the harness discovers it cleanly.
APPLICATION ACCESS
Put the audience beside the app.
Private apps allow workspace members by default. Maker can invite an exact verified email as an app guest or allow a verified email domain without adding workspace members.
access:
mode: private
allow:
workspaceMembers: true
emailDomains:
- company.comaccess: mode: public
APPROVAL POLICY
Review changes in authority—not every release.
Routine releases can continue automatically. Owners and admins decide whether authority-expanding changes are allowed, require approval, or are denied. Hard boundaries cannot be approved around.
Expands the reachable audience
Claims or changes a public name
Expands private-app membership
Increases CPU or memory authority
Small stores the requested manifest and authority diff.
The active private release remains untouched while waiting.
Policy, health, quota, and capacity are evaluated again.
OWNERSHIP AND EVIDENCE
Know who asked, who decided, and what changed.
Every app has an owner. The audit log records human users, service accounts, agents, runtimes, approval decisions, access changes, deployment results, and the target they affected.
One accountable owner per app, transferable by an admin.
Filter by deployment, access, identity, or infrastructure.
Expand identifiers and metadata, or export CSV and JSON.
OPERATIONS
Observe, replace, and recover.
A replacement becomes active only after container health and routing succeed. Rollback resolves the historical immutable image rather than pulling a mutable tag again.
small plan
small deploy
small status
small logs hello-small
small rollback <deployment-id>
small stop hello-small --yes
small archive hello-small --yesSECRETS
Declare names. Supply values out of band.
Personal agent credentials cannot read or change workspace secrets. An administrator or reviewed administrative service account supplies values from its environment; list operations never return plaintext.
export DATABASE_URL='postgres://…'
small secrets set --app hello-small --from-env DATABASE_URL DATABASE_URL
unset DATABASE_URL
small secrets list --app hello-smallREQUEST PATH
Understand where traffic and trust live.
The control plane authorizes deployment intent. Application traffic flows through the TLS edge and application gateway—not through the dashboard process—and then to the assigned runtime.
Small does not receive SSH access or a remote Docker socket. A customer node leases only commands assigned to its runtime identity.
TROUBLESHOOTING
Start with evidence, then repair.
Use the deployment timeline and app logs first. For a customer-owned VPS, the node installer provides bounded health, repair, update, rollback, and uninstall operations.
sudo small-node-installer check
sudo systemctl status small-node --no-pager
sudo journalctl -u small-node -n 200 --no-pager
sudo small-node-installer repairRe-enroll
Issue a replacement enrollment, then rotate the node safely.
small-node-installer reenrollUpdate or rollback
A failed readiness check restores the prior node release.
small-node-installer rollbackCurrent limits
Persistent volumes are single-node data. Managed relay is the supported customer-VPS ingress mode today.
private alphaREADY TO SHIP?