Perseus Pisces icon

Desktop automation
that acts like a human

Perseus Pisces captures the screen, asks an LLM what to do, and drives the real mouse and keyboard — gated by an auditable whitelist. No DOM, no containers, no external dependencies.

0 external dependencies Go stdlib only Windows · macOS · Linux empty go.sum
Capabilities

Everything an operator needs

Built from twelve focused subsystems — each using only the Go standard library and OS primitives.

Human-like input

Mouse moves along randomized Bézier curves with jitter and overshoot; keystrokes carry natural 40–220 ms delays.

Whitelist & audit

Every action clears a glob-rule whitelist and is written to an append-only NDJSON log before it ever executes.

Record & replay

Capture tasks as a semantic action graph and replay them with perceptual-hash state matching and drift detection.

Multi-provider LLM

Anthropic, OpenAI, and GitHub Copilot — all with vision, reasoning controls, and structured action output.

MCP server

Expose the desktop as Model Context Protocol tools over stdio, so any MCP client can drive it — pure stdlib JSON-RPC.

Local web UI

A dark, precision-tooling control room embedded in the binary via go:embed. Vanilla JS, no CDN, no frameworks.

Zero dependencies

No go get, no npm, no Docker. GUI primitives are OS syscalls; go.sum stays empty and builds are reproducible.

Cross-platform

One codebase compiles to Windows (syscall), macOS (CoreGraphics), and Linux (X11/XTest, Wayland fallback).

The loop

Screenshot → decision → action

Each iteration mirrors how a person works at a computer — observe, decide, act, verify.

Capture

Take a screenshot of the live screen.

Reason

The LLM reads the screen and returns a structured action.

Clear

The whitelist approves, denies, or pauses for the user.

Act

Human-like mouse and keyboard input executes it.

Audit

Screenshot, decision, and result are logged.

Model Context Protocol

Drive your desktop from any MCP client

  • Exposes screenshot, mouse_*, type_string, key_press, shell_command and more as MCP tools.
  • Pure standard-library JSON-RPC 2.0 over stdio — no SDK, no dependencies.
  • Every tool call still passes the same whitelist and audit engine.
  • Works with Claude Desktop, IDEs, and custom agents.
// claude_desktop_config.json
{
  "mcpServers": {
    "perseus": {
      "command": "perseus",
      "args": ["mcp"]
    }
  }
}
Quickstart

Build and run in seconds

Requires Go 1.22+. No other toolchain, runtime, or package manager.

# Download a prebuilt binary from the releases page,
# or build from source (Go 1.22+, zero dependencies):
git clone https://github.com/DebajyotiSaikia/computer-use
cd computer-use
go build -trimpath -ldflags="-s -w" -o perseus .

# Start the agent + local web UI
./perseus start

# Authenticate a provider
./perseus auth anthropic

# Or expose your desktop to any MCP client
./perseus mcp