Computer Agents
Claude Code in the cloud, with an SDK.
What if Claude Code had an API? And you could build real applications with it? That’s Computer Agents.
We give you Claude-level AI with full execution capabilities—isolated containers, persistent file storage, built-in skills—all accessible through a clean SDK. No infrastructure to manage.
Quick Links

Quick Start
Run your first agent in 3 minutes

SDK Guide
TypeScript SDK for building workflows

API Reference
REST API documentation

Architecture
Infrastructure and security
Three Primitives
Everything you need to build agentic applications:
Agents — The Brain
Configure how your AI thinks. Custom instructions, model selection (Haiku, Sonnet, Opus), reasoning effort, and multi-turn memory.
const agent = await client.agents.create({
name: 'Code Assistant',
model: 'claude-sonnet-4-5',
instructions: 'You are a senior engineer. Write clean, tested code.',
reasoningEffort: 'medium'
});Environments — The Computer
Give your agent a real computer. Isolated containers, persistent file storage, installed packages, secrets management.
const env = await client.environments.create({
name: 'my-project'
});
// Configure runtimes and packages
await client.environments.setRuntimes(env.id, ['python', 'nodejs']);
await client.environments.installPackages(env.id, ['flask', 'pytest']);
// Files persist across all sessions
await client.files.uploadFile(env.id, {
path: 'config.json',
content: '{"debug": true}'
});Skills — The Tools
Pre-built capabilities that just work. Web search, deep research, image generation, plus any MCP server.
const agent = await client.agents.create({
name: 'Research Engineer',
model: 'claude-sonnet-4-5',
enabledSkills: ['web_search', 'deep_research', 'image_generation']
});
// Add custom tools via MCP
await client.environments.update(env.id, {
mcpServers: [
{ type: 'stdio', name: 'github', command: 'npx', args: ['@anthropic/mcp-server-github'] }
]
});Build Real Workflows
Combine primitives to build multi-step workflows where each step builds on the last:
import { ComputerAgentsClient } from 'computer-agents';
const client = new ComputerAgentsClient({
apiKey: process.env.COMPUTER_AGENTS_API_KEY
});
// Create a persistent thread
const thread = await client.threads.create({
environmentId: 'env_xxx',
agentId: 'agent_xxx'
});
// Step 1: Research
await client.threads.sendMessage(thread.id, {
content: 'Research best practices for REST API design in 2024',
onEvent: (e) => console.log(e.type)
});
// Step 2: Build (files from step 1 still exist)
await client.threads.sendMessage(thread.id, {
content: 'Create a Flask API following those practices'
});
// Step 3: Test (agent remembers everything)
await client.threads.sendMessage(thread.id, {
content: 'Write tests and run them'
});Why Computer Agents?
| Raw Claude API | Claude Code | OpenAI Agents SDK | Computer Agents |
|---|---|---|---|
| No execution | CLI only | No infrastructure | Execution + SDK + Managed |
| No files | Local only | You build it | Persistent workspaces |
| No tools | Not an API | Patterns only | Skills built-in |
Documentation Structure
SDK Guide — TypeScript SDK
- Quick Start — Run your first agent
- API Resources — All SDK resources
- Streaming — Real-time events
- Advanced — Production patterns
API Reference — REST API
- Authentication — API keys
- Threads — Conversations
- Environments — Execution contexts
- Agents — Agent configuration
- Files — File operations
Architecture — Platform details
- Infrastructure — Cloud components
- Security — Security model
- Scalability — Scaling behavior
Get Started
npm install computer-agentsimport { ComputerAgentsClient } from 'computer-agents';
const client = new ComputerAgentsClient({
apiKey: process.env.COMPUTER_AGENTS_API_KEY
});
// This is Claude Code, but as an API
const result = await client.run(
'Create a Flask API and run it',
{
environmentId: 'env_xxx',
onEvent: (event) => console.log(event.type)
}
);
console.log(result.content);