Quick Start
Get a workspace running for your AI agent in three steps.
Prerequisites
- Join the waitlist — NanoTerm is in closed beta. Enter your email; we approve in batches.
- Wait for the approval email. When a spot opens up, you'll get a "You're in — finish sign-up" email from us. Click the link to set your password.
- Sign in at nanoterm.dev/signin and create an API key on the API Keys page.
If your org already has an admin on NanoTerm, ask them to invite you directly — invitations bypass the waitlist, and you'll get an invite link that takes you straight to sign-up.
Step 1: Install
- CLI
- TypeScript SDK
- curl
npm install -g @nanoterm/cli
nanoterm auth set-key nt_your_api_key
npm install @nanoterm/sdk
No installation needed. Use your API key in the Authorization header.
Step 2: Create a Workspace
- CLI
- TypeScript
- curl
nanoterm ws create --name my-agent --image ubuntu:22.04
# ✓ Workspace created: ws_a1b2c3d4
import { NanoTermClient } from '@nanoterm/sdk'
const client = new NanoTermClient({
apiKey: 'nt_your_api_key'
})
const ws = await client.createWorkspace({
name: 'my-agent',
image: 'ubuntu:22.04'
})
console.log(ws.id) // ws_a1b2c3d4
curl -X POST https://api.nanoterm.dev/api/workspaces \
-H 'Authorization: Bearer nt_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"name": "my-agent", "image": "ubuntu:22.04"}'
Step 3: Execute Commands
- CLI
- TypeScript
- curl
# One-shot command
nanoterm exec ws_a1b2c3d4 -- uname -a
# Linux nanoterm 5.15.0 x86_64 GNU/Linux
# Interactive terminal
nanoterm attach ws_a1b2c3d4
const result = await client.exec(ws.id, ['uname', '-a'])
console.log(result.stdout)
// Linux nanoterm 5.15.0 x86_64 GNU/Linux
console.log(result.exitCode)
// 0
curl -X POST https://api.nanoterm.dev/api/workspaces/ws_a1b2c3d4/exec \
-H 'Authorization: Bearer nt_your_api_key' \
-H 'Content-Type: application/json' \
-d '{"command": ["uname", "-a"]}'
Step 4 (optional): Run a Coding Agent
Most NanoTerm users want a Claude Code or Codex CLI agent running
inside the workspace. To do that, the agent needs its own
credentials. Save those once as an org secret, and every workspace
created from a claude-code or codex image picks them up.
- Claude (subscription)
- Claude (API key)
- Codex
nanoterm secrets auth-claude
# Opens the browser; on completion the credential is saved
# to your org and injected into every workspace.
nanoterm ws create --image ghcr.io/momenntal/nanoterm-claude-code
nanoterm shell <ws-id>
# agent@ws-…:/workspace$ claude
nanoterm secrets set ANTHROPIC_API_KEY \
--from-env ANTHROPIC_API_KEY
nanoterm ws create --image ghcr.io/momenntal/nanoterm-claude-code
nanoterm secrets auth-codex --api-key sk-...
nanoterm ws create --image ghcr.io/momenntal/nanoterm-codex
nanoterm secrets status confirms which providers are wired up.