An AI desktop agent that reads your local context and invokes tools
to help non-technical users — and everyone else — get things done.
Product Showcase · Builder's QA Column

Scan disk usage, suggest cleanup targets, and execute only after your confirmation.

Find local data files, analyze them, and produce a structured Excel report.

Then turn that analysis into a visual HTML dashboard — in the same conversation.

Classify Apple Notes by topic and isolate entries containing sensitive information.

Read a local .docx file, translate it, and render the result with full formatting.
AI-generated interactive components for structured input — Playground for style exploration with live preview, Tournament for preference discovery through binary choices, and Guided Form for step-by-step information collection.

Analyzes your usage patterns, identifies friction points, and recommends skills to install — one click to activate.

Background clipboard monitoring gives the AI awareness of your working context. Ask it to summarize your week and it already knows what you've been doing.


| Layer | Technology |
|---|---|
| Runtime | Electron 33, Node.js |
| UI | React 18, TailwindCSS 4, Radix UI |
| State | Jotai |
| AI | Claude Agent SDK, Anthropic SDK, MCP SDK |
| Build | Vite 6, esbuild, TypeScript 5 |
| Storage | JSONL (append-only) |
Prerequisites: Git and Bun (v1.0+).
git clone https://github.com/YUHAO-corn/Deskhand.git
cd Deskhand
bun install
cp .env.example .env
Add your API key to .env:
ANTHROPIC_API_KEY=sk-ant-xxx # Get one at https://console.anthropic.com/
Then start the app:
bun run electron:dev
Optional configuration
| Variable | Description |
|---|---|
ANTHROPIC_BASE_URL |
Custom API endpoint (e.g. OpenRouter) |
ANTHROPIC_MODEL |
Override the default model |
Contributions are welcome. Feel free to open an issue or submit a pull request.
Built with Claude Agent SDK and Anthropic SDK.
$ claude mcp add Deskhand \
-- python -m otcore.mcp_server <graph>