MCPcopy Index your code
hub / github.com/YUHAO-corn/Deskhand

github.com/YUHAO-corn/Deskhand @v0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.0 ↗ · + Follow
384 symbols 757 edges 73 files 42 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Deskhand

An AI desktop agent that reads your local context and invokes tools


to help non-technical users — and everyone else — get things done.

License Electron React TypeScript Claude

Product Showcase · Builder's QA Column


What It Can Do

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.


Features

Generative UI

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.

Skill Insight

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

Clipboard Intelligence

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.

More

  • 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

Architecture

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)

Data Flow Architecture


Quick Start

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

Contributing

Contributions are welcome. Feel free to open an issue or submit a pull request.

License

MIT

Acknowledgments

Built with Claude Agent SDK and Anthropic SDK.

Extension points exported contracts — how you extend this code

ArtifactBase (Interface)
(no doc)
packages/core/src/types/artifact.ts
InsightAgentConfig (Interface)
(no doc)
packages/shared/src/insight/insight-agent.ts
AuthFormProps (Interface)
(no doc)
apps/electron/src/renderer/components/auth/AuthForm.tsx
MockSession (Interface)
(no doc)
scripts/generate-mock-sessions.ts
FileArtifact (Interface)
(no doc)
packages/core/src/types/artifact.ts
InsightAgentResult (Interface)
(no doc)
packages/shared/src/insight/insight-agent.ts
AuthGuardProps (Interface)
(no doc)
apps/electron/src/renderer/components/auth/AuthGuard.tsx
TerminalArtifact (Interface)
(no doc)
packages/core/src/types/artifact.ts

Core symbols most depended-on inside this repo

has
called by 21
packages/shared/src/agent/tool-matching.ts
generateMessageId
called by 13
packages/core/src/types/message.ts
getConfigDir
called by 11
packages/shared/src/config/storage.ts
flushCurrentTurn
called by 6
apps/electron/src/renderer/components/chat/turn-utils.ts
getSessionFilePath
called by 5
packages/shared/src/sessions/storage.ts
respondToPermission
called by 5
packages/shared/src/agent/deskhand-agent.ts
togglePopup
called by 5
apps/electron/src/renderer/components/input/InputToolbar.tsx
getHistoryPath
called by 5
apps/electron/src/main/clipboard-monitor.ts

Shape

Function 270
Interface 90
Method 18
Class 6

Languages

TypeScript98%
Python2%

Modules by API surface

apps/electron/src/renderer/components/input/popups/InputPopups.tsx43 symbols
apps/electron/src/renderer/components/chat/turn-utils.ts37 symbols
apps/electron/src/renderer/components/chat/markdown/Markdown.tsx19 symbols
packages/shared/src/agent/tool-matching.ts18 symbols
apps/electron/src/main/clipboard-monitor.ts18 symbols
apps/electron/src/renderer/pages/settings/SettingsPage.tsx17 symbols
packages/shared/src/agent/deskhand-agent.ts15 symbols
packages/shared/src/config/storage.ts14 symbols
apps/electron/src/renderer/components/artifact/ArtifactPanel.tsx14 symbols
apps/electron/src/renderer/components/app-shell/SessionSidebar.tsx14 symbols
packages/shared/src/sessions/storage.ts11 symbols
packages/shared/src/insight/insight-agent.ts10 symbols

For agents

$ claude mcp add Deskhand \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact