@hasna/computer
v0.1.4
Published
Open-source computer use for AI agents — control your Mac with Anthropic or OpenAI. CLI + MCP server + REST API + Dashboard.
Maintainers
Readme
@hasna/computer
Open-source computer use for AI agents. Control your Mac with Anthropic Claude or OpenAI.
CLI + MCP Server + REST API + SDK
What it does
An AI model sees your screen (via screenshots) and controls your mouse and keyboard to complete tasks — like a remote human operator, but powered by AI.
# Tell the AI to do something on your Mac
computer run "open Safari and search for 'weather in NYC'"
# Take a screenshot
computer screenshot -o screen.png
# View past sessions
computer sessionsFeatures
- Multi-provider — Anthropic (Claude computer use) or OpenAI (CUA)
- macOS native — Uses
screencapture+cliclickfor zero-dependency screen control - MCP server — Other AI agents can use your computer as a tool
- REST API — Integrate from any language
- Session logging — Every action logged in SQLite, fully replayable
- SDK — Import and use programmatically in TypeScript/Bun
Install
bun install -g @hasna/computerPrerequisites:
- macOS (Apple Silicon or Intel)
- Bun runtime
cliclick—brew install cliclick- Accessibility permissions (System Settings > Privacy & Security > Accessibility)
- An API key:
ANTHROPIC_API_KEYorOPENAI_API_KEY
CLI
computer run <task> # Run a computer use task
computer run <task> -p openai # Use OpenAI instead of Anthropic
computer run <task> -s 30 # Limit to 30 steps
computer screenshot # Capture current screen
computer sessions # List past sessions
computer session <id> # Show session details + action log
computer stats # Usage statisticsMCP Server
Add to your Claude Code config:
{
"mcpServers": {
"computer": {
"command": "computer-mcp"
}
}
}Available tools:
computer_run_task— Run a full computer use taskcomputer_screenshot— Capture the screencomputer_click— Click at coordinatescomputer_type— Type textcomputer_key— Press keyscomputer_scroll— Scrollcomputer_mouse_move— Move the mousecomputer_open_url— Open a URLcomputer_open_app— Open an appcomputer_screen_size— Get screen resolutioncomputer_list_sessions— List sessionscomputer_get_session— Get session detailscomputer_stats— Usage stats
REST API
computer-serve # Starts on port 19450# Run a task
curl -X POST localhost:19450/run -d '{"task":"open calculator"}'
# Take a screenshot
curl localhost:19450/screenshot
# Execute a single action
curl -X POST localhost:19450/action -d '{"type":"click","point":{"x":500,"y":300}}'
# List sessions
curl localhost:19450/sessionsSDK
import { runTask, captureScreenshot, createMacDriver } from "@hasna/computer";
// Run a full task
const session = await runTask({
task: "open Notes and create a new note",
provider: "anthropic",
maxSteps: 20,
onStep: (step, response, result) => {
console.log(`Step ${step}: ${response.action?.type}`);
},
});
// Or control manually
const driver = createMacDriver();
const screenshot = await driver.screenshot();
const result = await driver.execute({
type: "click",
point: { x: 500, y: 300 },
});How it works
- Screenshots your screen
- Sends the screenshot to the AI model (Claude or GPT)
- The model analyzes what's on screen and returns an action (click, type, scroll, etc.)
- The action is executed on your Mac
- A new screenshot is taken
- Repeat until the task is done (or max steps reached)
Providers
| Provider | Model | Tool |
|----------|-------|------|
| Anthropic | Claude Sonnet 4.5 (default) | computer_20250124 |
| OpenAI | computer-use-preview | CUA Responses API |
Data
Sessions and action logs are stored in ~/.hasna/computer/computer.db (SQLite).
License
Apache-2.0
