Appearance
Quickstart
From nothing to a live HTTPS URL in three commands.
1. Install the CLI
The conway CLI is a single static binary, served straight from the platform:
sh
curl -fsSL https://api.agentcloud.ac/install.sh | shThis detects your OS/arch (macOS or Linux, amd64 or arm64) and drops conway into /usr/local/bin. Then point it at the platform and set your token:
sh
export CONWAY_ENDPOINT=https://api.agentcloud.ac
export CONWAY_TOKEN=<your-token>TIP
Don't have a token? An admin issues one with conway tokens issue, or you can mint scoped tokens yourself — see Tokens & delegation.
2. Deploy
From inside your application's source directory:
sh
conway init my-app
conway deployconway deploy packs the directory, uploads it, builds it remotely (using your Dockerfile if present, otherwise railpack autodetects the stack), waits for the health check, and prints the live URL:
── phase: building
── phase: pushing
── phase: rolling_out
✓ deployed: https://app-my-app.apps.agentcloud.acYour app must listen on the PORT environment variable (default 8080). That's the only requirement.
3. Add a database
sh
conway add postgresThis provisions a TLS-enabled Postgres, generates credentials, and injects DATABASE_URL (plus PGHOST, PGUSER, …) into every service in the project — with a rolling restart. Your next deploy, or your already-running app, just sees the variable. You never copy a credential.
sh
conway status # see services, URLs, datastores, quota, recent eventsWhat just happened
| Step | Under the hood |
|---|---|
init | Created an isolated project namespace with quotas, limits, and network policies |
deploy | Built an OCI image, pushed it to the in-cluster registry, rolled out a Deployment behind the edge, issued a TLS cert on first request |
add postgres | Ran a single-instance Postgres with a persistent volume, generated credentials, injected the connection string project-wide |
Next: Deploying services in depth, or the full verb reference.