Atlas CLI · v0.1.0
Get Atlas
One command installs a single self-contained file. Sign in, and you have a cloud machine you and your agents can work in together — with a public URL for anything you serve.
$ npm install -g @atlaslabsnpm/cli$ atlas login
Requires Node.js 20+.
Install
Other ways in
No npm. Installs one self-contained file. Goes to /usr/local/bin when writable, otherwise ~/.local/bin — never needs sudo, and verifies a SHA-256 checksum before anything lands on your PATH.
$ curl -fsSL https://www.atlaslabs.id/install.sh | sh
Direct download. One file, no installer. Everything is bundled in — the only requirement is Node.
$ curl -fsSL https://www.atlaslabs.id/download/atlas.cjs -o atlas.cjs$ node atlas.cjs whoami
From source. If you have the repo checked out.
$ cd packages/cli && npm install && npm run bundle$ node dist/atlas.cjs --help
Getting started
Your first machine
Sign in
Opens your browser and approves this device. The token goes to your system keychain — you never paste a key anywhere.
$ atlas login$ atlas whoami
Create a machine
The name is a slug: lowercase letters, numbers and dashes. Running this twice is a clean conflict, never a second machine.
$ atlas machine create my-app
Push your work and run it
Paths are relative to /workspace. Everything after -- runs on the machine verbatim, and the exit code comes back to your shell — so this fails your CI when the tests fail.
$ atlas put my-app ./server.js server.js$ atlas exec my-app -- 'npm install && npm test'
Serve it and get a public URL
Bind to 0.0.0.0 on port 3000 or 8000 — those are the ports routed from outside, and they are fixed when the machine is created.
$ atlas exec my-app -- 'cd /workspace && (nohup node server.js >/tmp/dev.log 2>&1 &)'$ atlas ports my-app
Stop it when you're done
Machines bill while they run. There is a 1-hour cap and a 5-minute idle timeout as a backstop, but stopping is the habit. Stopping is final — the filesystem does not survive, so pull anything you want to keep first.
$ atlas get my-app dist/build.zip ./build.zip$ atlas machine rm my-app
How it works
Coworking with Atlas
Most tools make an agent work on your machine. Atlas gives you and your agents a third place: a machine that belongs to the work, not to either of you. You both reach it through the same commands, and neither of you has to be online for it to keep existing.
One surface
You type atlas exec. Your agent runs the same command. There is no separate agent API to drift out of sync with what you can do by hand.
Off your laptop
Installs, builds and dev servers run in the cloud. Your fan stays quiet, and closing the lid does not kill the run.
Ends in a URL
Anything you serve on port 3000 or 8000 gets a public HTTPS address. The handoff is a link, not "works on my machine".
Give your agent the same machine
Point your coding agent at the workspace and it can drive the machine directly — push files, run builds, read logs, hand back the URL. Because it uses the CLI you already approved, you are not clicking through a new permission prompt for every command it invents.
$ atlas machine create my-app$ # then, to your agent: "build the landing page on my-app and send me the URL"
Everything is attributed
Every device that signs in gets its own identity, and every command, upload and agent run is recorded against it. When two people and three agents share a workspace, “who ran that?” has an answer. Revoke a device and its access ends immediately, everywhere.
$ atlas device list
Open it in Atlas Browser
A workspace has its own address. Hand it to Atlas Browser and you get the terminal, files and a live preview in one window, pointed at the same machine your agent is using.
$ atlas open my-app
Reference
Command reference
| atlas login | Sign in on this device |
| atlas whoami | Who you are signed in as |
| atlas machine create <slug> | Provision a machine |
| atlas machine list | Your machines and their status |
| atlas machine status <slug> | Status and ports |
| atlas machine rm <slug> | Terminate it |
| atlas exec <slug> -- <cmd> | Run a command; mirrors its exit code |
| atlas put <slug> <local> <remote> | Upload a file |
| atlas get <slug> <remote> [local|-] | Download a file |
| atlas ports <slug> | Public URLs for the machine |
| atlas open <slug> | Open in Atlas Browser |
| atlas device list | rm <id> | Signed-in devices; revoke one |
| atlas vm ready --url <url> | Inside a deployment: report the live URL |
| atlas vm notify "<message>" | Inside a deployment: update everyone on the project |
| atlas vm status | Inside a deployment: check the credential |
Machines run Debian 12 as root in /workspace, with Node 22, pnpm, Python 3.13, git and build tools preinstalled. Install anything else with apt-get.
Machines cannot be suspended and resumed. Stopping one is final.
Public URLs are unguessable but unauthenticated — treat a machine’s URL as shareable with anyone who has the link.
Ready to start?
Install, sign in, and create your first machine in about a minute.