@oodarun/cli
v0.1.27
Published
Launch Claude Code on cloud dev environments
Readme
@oodarun/cli
Design on your codebase in the cloud, no local setup required.
Ooda launches Claude Code on cloud sandboxes. Each project runs in its own isolated cloud environment with a public URL — no local dependencies, no Docker, no setup headaches.
Quick start
Install it globally (recommended) and run ooda:
npm install -g @oodarun/cli
oodaThe CLI nudges you when a newer version is published, so a global install won't go stale. You can also run it without installing via npx @oodarun/cli@latest.
On first run you'll be prompted to sign in with your email. If your org is already set up, you'll be connected to it automatically. Otherwise an org admin can invite you.
Your credentials are saved to ~/.ooda/auth.json so you only need to do this once.
What it does
When you connect to a project, ooda automatically asks Claude to analyse your codebase, install dependencies, and start the dev server — no manual prompting needed. You're dropped into a full Claude Code session with syntax highlighting, tool use, and everything you'd get locally.
Your projects:
[1] new-nav ● running
[2] marketing-redesign ○ stopped
[3] shader-tool ○ stopped
[d] Deploy current directory
[n] New project (opens dashboard)
[q] Quit
Select: _- Pick a project — connects and launches Claude Code with full TTY pass-through
- Deploy current directory — uploads your local project to a new sandbox and starts Claude on it
- New project — opens the local web dashboard to create from a template
When you exit Claude (Ctrl+C), you're returned to the selector.
Dashboard
Ooda includes a local web dashboard at http://localhost:4444 for managing your projects visually. Browse existing projects, create new ones from templates, or deploy a local folder — all from your browser.
Parallel sessions
Work on multiple projects simultaneously by opening additional terminals:
# Terminal 1 — main menu + first project
ooda
# Terminal 2 — connect directly to another project
ooda connect marketing-redesign
# Terminal 3 — and another
ooda connect shader-toolooda connect <name> skips the dashboard and connects straight to the named project. It uses prefix matching, so ooda connect market will match marketing-redesign-m3np.
Multi-language support
Each sandbox is a full Linux environment with root access. While ooda includes optimised support for JavaScript frameworks (Astro, Next.js, Vite), Claude can work with any language or framework — Ruby/Rails, Python/Django, PHP/Laravel, Go, Rust, and more. Claude analyses your codebase and figures out the right setup automatically.
Publishing
Publish a built static site to a permanent shareable URL at {slug}-p.ooda.run.
From the CLI — fully non-interactive, so agents and CI can drive it:
ooda publish # run in the project root (auto-detects the build dir)
ooda publish --slug my-app # choose the slug
ooda publish --title "My App" --description "A demo blog" --tags blog,astro # set display metadata
ooda publish -m "added dark mode" # note what changed (recorded per version)
ooda sites list # list published sites
ooda sites access my-app --mode password --password s3cret # gate access
ooda sites delete my-app # unpublishRun publish from your project root — it auto-detects the build output
(dist, build, out, .output/public, or .next/static) inside it. Don't
pass the build folder itself (ooda publish ./dist is wrong). Build first.
Add --json to any command for machine-readable output, and set
OODA_ACCESS_TOKEN + OODA_ORG_ID to run without an interactive login.
Or just ask Claude inside a session:
You: publish this
Claude: Building... uploading... done!
Published: https://my-app-p.ooda.run- Published sites are static (HTML, CSS, JS) served from Cloudflare's edge
- Control access per-site: public, password-protected, or org-login required
- Every publish creates a new version
Why not just use localhost?
- Consistent environments — every sandbox is identical, no "works on my machine" issues
- Safe by default — Claude runs with full permissions in a sandbox, no risk to your local filesystem
- Publish for free — get a permanent URL at
{slug}-p.ooda.run, from a Claude session orooda publish - Collaboration — every project gets a public URL, visible to all org members in the dashboard
- Run anything, anywhere — full cloud sandbox from a laptop, tablet, or phone
Commands
ooda # Interactive menu + dashboard
ooda login | whoami | logout # Email-code sign-in, session check, sign out
ooda connect <name> # Direct connect (for parallel sessions)
ooda list # List your projects
ooda deploy [path|github-url] # Deploy a folder or GitHub repo
ooda publish [--slug <slug>] # Publish a built static site (run in the project root)
ooda sites [list|access|password|delete] # Manage published sites
ooda secrets [set|list|rm|attach|detach] # Env vars & secrets for projects/sites
ooda --help # Full command + flag reference
ooda --port 3000 # Custom dashboard port (default: 4444)Env vars & secrets
Give projects and published sites configuration without hardcoding it. A value is
either a non-secret env var (--env) or a true secret (default).
ooda secrets set API_URL=https://api.example.com --env --sites my-app # public config → window.__OODA_ENV__.API_URL
ooda secrets set STRIPE_KEY=sk_live_... --project my-app # secret injected into the project VM
ooda secrets list --site my-app # masked — keys only, never values- Non-secret
--envvalues are delivered to a published site's page aswindow.__OODA_ENV__.KEY. True secrets are never exposed to the browser. - The CLI never prints a value back (no
revealcommand); an admin reveals in the dashboard. Project preview URLs ({slug}.ooda.run) are sign-in only.
Auth options
| Method | Details |
|--------|---------|
| Interactive prompt | Sign in with email on first run (saved to ~/.ooda/auth.json) |
| Environment variables | OODA_ACCESS_TOKEN and OODA_ORG_ID |
| Claude Code OAuth | If you have Claude Code installed on macOS, the OAuth token is read from your keychain automatically |
Requirements
- Node.js 20+
- An ooda account — org admins invite members, or sign up at ooda.run
- An Anthropic API key or a paid Claude subscription with OAuth
More info
- ooda.run — marketing site
- ooda.run/docs — documentation
- npm — package registry
