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.
- Permission System — Ask mode requires confirmation for file operations; Allow-All mode for trusted workflows
- Session Management — Persistent conversations with lazy loading, rename, archive, delete
- Artifact Panel — Preview HTML, Excel, Word, and code in a side panel
- Activity Tree — Visual step-by-step display of tool execution progress
| 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 .envAdd 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:devOptional 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.








