Claude's hand on your Mac — a computer-use agent written in Almide.
manus (Latin: hand) gives Claude eyes and hands on a real macOS
desktop. It screenshots the screen, sends it to the Anthropic Messages
API computer tool, and executes the actions Claude returns
(clicks, typing, key presses) with cliclick.
Screenshot → think → act, in a loop, until the task is done.
No Docker, no sandbox VM — it drives your machine. That is powerful and risky; every action asks for confirmation unless you opt out.
- macOS (Apple Silicon or Intel)
ANTHROPIC_API_KEYin the environmentcliclickonPATH—brew install cliclick- Screen Recording + Accessibility permission granted to the terminal you run it from (System Settings → Privacy & Security)
almide build src/main.almd -o manus # compile to a native binary
export ANTHROPIC_API_KEY=sk-ant-...
./manus "open Safari and search for the Almide language"Or run straight from source:
almide run src/main.almd -- "take a screenshot and describe what you see"| Var | Meaning |
|---|---|
ANTHROPIC_API_KEY |
required — your Anthropic API key |
MANUS_MODEL |
model id (default claude-sonnet-4-6) |
MANUS_YOLO=1 |
skip the per-action confirmation prompt |
MANUS_TASK |
task text, if not passed as an argument |
manus controls your real machine. Mis-clicks and mistyped text can do
real damage (delete files, send messages). Defaults are conservative:
- Every action prompts
[y/N]before it runs.MANUS_YOLO=1disables this. - Watch it work — don't walk away.
- Prefer running it in a dedicated macOS user account for anything risky.
- There is a hard cap of 40 steps per run.
- Read the logical screen size via
osascript(Finder desktop bounds). screencapturethe screen, downscale to logical points withsips(so Claude's coordinates map 1:1 ontocliclick's), base64-encode.- Call
POST /v1/messageswith thecomputer_20250124tool and thecomputer-use-2025-01-24beta header (built directly with thehttpandjsonstdlib modules). - Parse the returned
tool_useblock, execute the action viacliclick, and reply with a fresh screenshot as atool_result. - Loop until Claude stops without requesting a tool.
Supported actions: screenshot, left_click, right_click,
double_click, middle_click, mouse_move, type, key, wait,
cursor_position. (scroll and left_click_drag return a "not
supported" result in v0.1.)
Early (v0.1). Written to dogfood Almide on a real, effect-heavy program:
subprocess control, HTTP, JSON, an agent loop. Known upstream issue found
while building it: almide test (WASM target) trips a Perceus
reference-counting verification bug in the compiler on this module,
though almide build (Rust target) is clean — see CLAUDE.md.
MIT