All-in-one Dev Hub — task management for humans and AI agents, repository management, and more, in one desktop app.
workhub is the home base for an AI-driven development style: humans and AI agents (Claude Code / OpenCode) share one task board, task outcomes and collected knowledge accumulate in a dedicated Obsidian vault, and everything — the app, the Claude Code plugin, and the vault template — ships from this one repository.
- One board for humans and AI — every task is a Markdown file with YAML
frontmatter in the vault (
status,assignee: me | claude-code | opencode,project, ...). The app, Obsidian, humans, and AI agents all read and write the same files. - List + kanban views with filters by status / assignee / project, and drag & drop to change status or reorder within a column.
- Launch AI on a task — start Claude Code or OpenCode in the task's target repository (or in the vault for tasks without a project) with the task file as context.
- Live sync — file watching picks up edits made outside the app instantly.
- Repository management (integrating devdeck)
- Music player (integrating tube-loop-player)
Runtime requirements: git on PATH (for the Repos module).
$dir = "$env:LOCALAPPDATA\Programs\workhub"
New-Item -ItemType Directory -Force $dir | Out-Null
Invoke-WebRequest "https://github.com/atman-33/workhub/releases/latest/download/workhub.exe" -OutFile "$dir\workhub.exe"
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$dir", "User")Open a new terminal and run:
workhubEach release also ships workhub-windows-x86_64.zip (exe + README + LICENSE)
and SHA256SUMS.txt if you prefer manual installation.
workhub checks GitHub Releases on startup; when a newer version exists, a banner appears at the top — click Update & restart. The check can be disabled in ⚙ Settings.
Tasks live in a dedicated Obsidian vault. On first launch the Tasks tab asks
you to choose a folder — pick an empty one (e.g. C:/obsidian/workhub-vault)
and press Init vault to expand the bundled template
(vault-template/) into it. You can also change the vault
later in ⚙ Settings → Tasks vault path.
Optionally open the same folder as a vault in Obsidian to browse and edit tasks and notes directly.
The plugin gives Claude Code the task-list / task-start / task-report /
vault-init skills and the accompanying safety hooks. Install it user
scope so it is available in every repository a task may target:
claude
> /plugin marketplace add atman-33/workhub
> /plugin install workhub@workhub-marketplace
The skills locate the vault via %APPDATA%\workhub\config.json (written by
the app), or the WORKHUB_VAULT environment variable as an override — no
per-repository configuration is needed.
- Create a task in the app and set
assigneetoclaude-code(oropencode) andprojectto the target repository (short name underC:/repos/<name>or an absolute path; leave empty to run in the vault). - Press Launch agent on the task card. Claude Code starts in the target
repository with the task file as context, runs
task-start(status →doing), does the work, thentask-report(results into the vault, status →review). - Review the result and move the task to
donein the app — only humans close tasks.
src/ # React frontend (React 19, Tailwind v4, shadcn/ui)
src-tauri/ # Rust backend (Tauri 2)
.claude-plugin/ # Claude Code marketplace definition
plugins/ # workhub Claude Code plugin (skills / hooks)
vault-template/ # initial template for the dedicated Obsidian vault
docs/
Requires Rust and Node.js 22+:
npm install
npm run tauri dev # run with hot reload
npx tauri build --no-bundle # release build -> src-tauri/target/release/workhub.exeMIT — based on devdeck (MIT).