Documentation
Everything you need to get started with ooda.
Also available as plain markdown for LLMs.
Getting started
ooda is a CLI tool that launches Claude Code on cloud dev environments powered by sprites.dev. One command gets you a full Linux VM with Claude Code running inside it.
Prerequisites
- Node.js 20+
- A sprites.dev API key (free)
- A paid Claude subscription (for Claude Code OAuth)
Quick start
Run the CLI and follow the prompts:
$ npx ooda-cli The first time you run it, you'll be asked to log in to sprites.dev and authorize Claude Code. After that, select a project or create a new one — ooda handles the rest.
ooda.json
ooda.json is the project configuration file. Place it in your project root to declare tools, set the Claude model, and configure other options.
Example
{
"name": "My Cool App",
"description": "A React dashboard for analytics",
"tools": {
"agentation": {}
},
"claude": {
"model": "claude-sonnet-4-6"
}
} Fields
name
Human-readable project name (e.g. "My Cool App"). Shown in the dashboard instead of the sprite slug when set.
description
Short description of what the project is. Shown in the dashboard alongside the name.
tools
An object where each key is a tool name and the value is its configuration (usually an empty object {}). Tools are installed and configured when you run /install-tools or automatically when starting a sprite.
claude.model
The Claude model to use (defaults to claude-sonnet-4-6).
Tools
ooda has a tool system that lets you add MCP servers and other integrations to your project. Tools are declared in ooda.json and installed automatically.
How it works
When you declare a tool in ooda.json and run /install-tools (or start a sprite, which runs it automatically), ooda:
- Looks up the tool in its built-in registry
- Checks that your project meets the tool's requirements (framework, dependencies)
- Installs the npm package
- Registers the MCP server with Claude Code
- Follows the tool's setup instructions (adding components, modifying config files)
- Runs health checks to verify everything works
Built-in tools
Visual element selection for React apps. Adds a floating toolbar to your dev environment that lets you click on any element to select it, then ask Claude to modify it. Requires a React project.
Built by Benji Taylor, Dennis Jin & Alex Vanderzon
More tools coming soon.
Declaring tools
Add a tool to your project by including it in the tools object:
{
"tools": {
"agentation": {}
}
} Building a tool
Third-party npm packages can self-describe as ooda tools by shipping an ooda-tool.json file in their package root. When a user declares your package name in their ooda.json, the installer discovers and uses your recipe automatically.
ooda-tool.json spec
The file follows the same shape as the built-in ToolRecipe type. All fields except description are optional:
{
"description": "What your tool does",
"requirements": {
"frameworks": ["react", "next"],
"dependencies": ["some-package"]
},
"install": {
"ecosystem": "npm",
"package": "your-package-name",
"version": "^1.0.0"
},
"mcp": {
"transport": "stdio",
"command": "node",
"args": ["./node_modules/your-package/mcp-server.js"]
},
"setupInstructions": "Markdown instructions for Claude...",
"healthCheck": {
"command": "ls node_modules/your-package",
"description": "Verify the package is installed"
}
} Fields
description (required)
Short description of what the tool does.
requirements
Framework and dependency constraints. If the project doesn't meet these, the installer warns the user and skips the tool.
install
Package installation details. The ecosystem is npm, gem, or pip.
mcp
MCP server configuration. Use stdio transport for local servers or http for remote ones.
setupInstructions
Markdown instructions that Claude follows after installing. Use this for code changes like adding imports, inserting components, or modifying config files.
healthCheck
A shell command and description to verify the tool is working after setup.
How discovery works
When a tool name isn't in ooda's built-in registry, the installer checks node_modules/<package>/ooda-tool.json. If the file exists and is valid, it's used as the recipe. The name field is optional — it defaults to the package name.
Publishing
Publish your project to a permanent shareable URL with a single command. Just tell Claude to publish, or use the /publish command.
How it works
- Claude builds your project with the correct base path for the publish URL
- The build output is collected and uploaded to
ooda.run - Your site is available at
ooda.run/p/your-project
Every publish creates a new version. Previous versions are kept and accessible. Publishing is free with no limits on the number of projects.
Supported frameworks
Any framework that produces static output works — Vite, Astro, Next.js (static export), and more. The publish script automatically detects your build output directory (dist, build, out, etc.).
CLI commands
$ npx ooda-cli Launch the interactive project manager. Lists your existing projects and lets you create new ones, deploy local folders, or connect to running sprites.
$ ooda-cli connect <name> Connect directly to a running sprite by name. Opens a Claude Code session in your terminal. Useful for opening additional terminal sessions to the same project.
$ ooda-cli list List all your sprites and their current status.