This is an early preview release. Consider this a prototype/Alpha release.
A unified developer control plane for developers managing parallel coding work across local repositories, remote worktrees, AI agents, terminals, diffs, and review comments.
When a developer manages a team of agents, the classic IDEs geared for managing 1 task/project at a time do not scale. Just like a manager uses Jira/Linear to track the progress of a team, we need a unified tool for developers to keep track of all their active tasks and interact with agents working on them. Agents are just a stepping stone to get the work done. We need to focus on tracking work and not agents.
DevHQ aims to be a single pane of glass for developers. The goal is to allow developers to run the full SDLC, from work intake to production deploy through a single UI.
There are 3 main pillars of why we built DevHQ:
- Code still matters.
We believe that while AI is abstracting code behind natural language, code still matters and developers need to understand the code that the agent is writing in context of the broader project. This means we need IDE-like features, like code navigation, but don't need the full overhead of an IDE context switching. We should be able to switch between project contexts with lightning speed.
- Development work is not linear
Developers need to quickly jump between agents or sometimes pick up an idea after a few weeks without losing their place. We need a way to visually see all "open" work. Git worktrees are the backbone for tracking the lifecycle of development work.
- Chat is a bad interface for providing feedback to your agents.
While prompting is useful for steering an agent in-flight, it is not suitable for providing structural feedback on an Agent's output. We can push every change to the central code review platform (github, gitlab etc.), but that elongates the feedback loop. We need tigther feedback loops to work with these agents that can provide local code-review capability
DevHQ is implemented as a custom plugin to Lite XL, making it highly customizable to match your personal preferences.
It bundles a ghostty based terminal lite-xl-ghostty to run agents. It can be paired with terminal sessions managers like shpool, atch to provide simple reattachment across restarts of lite-xl.
Install DevHQ, Lite XL, and the required Lite XL packages with:
curl -fsSL https://raw.githubusercontent.com/mbhatia/devhq/main/install.sh | shThe installer supports macOS and Linux on x86_64 and aarch64. On macOS it
downloads the official Lite XL DMG and installs the app into /Applications.
It prompts for a command-line tool directory, defaulting to $HOME/.local/bin,
creates that directory if needed, installs devhq and lpm there, adds the
DevHQ package repository, and installs the language, LSP, and devhq packages.
On macOS, it attempts to install optional
shpool with Homebrew. On Linux, it
attempts to install shpool into the selected directory when Cargo is
available. A missing package manager, an untrusted Homebrew tap, or an
installation failure produces a warning and does not stop DevHQ installation.
On Linux, lpm still installs Lite XL.
Run the same command again to upgrade or refresh an existing DevHQ install.
To install from a fork or another repository:
DEVHQ_REPOSITORY_URL=https://github.com/example/devhq \
sh ./install.shFor a non-main GitHub branch, use the branch suffix accepted by lpm:
DEVHQ_REPOSITORY_URL=https://github.com/example/devhq.git:feature-branch \
sh ./install.shFor a local checkout:
DEVHQ_REPOSITORY_URL=/path/to/devhq sh ./install.shOn macOS, install Lite XL from the official DMG.
Install Lite XL Package Manager (lpm):
wget https://github.com/lite-xl/lite-xl-plugin-manager/releases/download/latest/lpm.`uname -m | sed 's/arm64/aarch64/'`-`uname | tr '[:upper:]' '[:lower:]'` -O lpm && chmod +x lpmInstall Lite XL and DevHQ:
./lpm repo add https://github.com/mbhatia/devhq
./lpm repo update https://github.com/mbhatia/devhq
./lpm install devhq --assume-yes
./lpm reinstall devhq --assume-yesOn Linux, install Lite XL with ./lpm install lite-xl before installing DevHQ.
Install the language and LSP plugins:
./lpm install meta_languages lsp --assume-yesInstall shpool for better agent life-cycle management:
cargo install --git https://github.com/shell-pool/shpool --locked shpoolThe devhq:toggle-review-sidebar command opens a right-hand split that lists one
entry per comment thread in the active worktree. The sidebar appears
automatically when you leave a comment. Clicking an entry opens the commented
file and jumps to the range. When a comment was anchored to a specific commit
that is no longer HEAD, DevHQ opens that historical version of the file
(git show <commit>:<path>) instead of the working copy.
The sidebar and gutter markers reload automatically when the comment JSONL is changed on disk (for example by the reply CLI below), so external replies show up without switching worktrees.
Agents can reply to an existing DevHQ review comment from the command line:
./devhq review reply <comment-id> --message "Addressed in the latest changes."The command only appends an agent reply to the existing comment. It does not
create comments or resolve them. On success it prints the new reply ID.
Posting comments to an agent includes each thread's id and these usage instructions, so the agent can reply to the right thread.
Set DEVHQ_USERDIR or LITE_USERDIR when the script cannot infer the Lite XL
user directory from its own path.
From a macOS arm64 machine:
./build_installer.sh --dry-run
./build_installer.shThe script runs install.sh against a staged copy of the official Lite XL app,
then brands, signs, and repackages it as dist/DevHQ-macos-arm64.dmg. LPM
resolves DevHQ's declared web, terminal, widget, font, language, and LSP
dependencies directly into the app bundle. The app also contains devhq,
lpm, and shpool under Contents/Resources/bin; local DevHQ agent terminals
add that directory to PATH. A private Lua interpreter is included for the
devhq command. These commands are not added to the user's system-wide shell
path. The Lite XL license remains in the app and is also visible at the DMG
root. DevHQ, LPM, shpool, and Lua license texts are stored under
Contents/Resources/legal, with THIRD-PARTY-NOTICES.md also visible at the
DMG root.
Useful overrides:
LITE_XL_DMG_URL=https://example.invalid/lite-xl.dmg ./build_installer.sh
LPM_PATH=/path/to/lpm ./build_installer.sh
SHPOOL_PATH=/path/to/shpool ./build_installer.sh
LUA_BIN_PATH=/path/to/lua ./build_installer.sh
LITE_XL_DMG_PATH=/path/to/lite-xl.dmg ./build_installer.sh --stage-onlyBy default the app is ad-hoc signed for local packaging. For a real Developer
ID signature, set SIGN_IDENTITY="Developer ID Application: ..." and
CODESIGN_OPTIONS="--options runtime --timestamp".
GitHub Actions also builds this installer on a macOS arm64 runner. Pull request
and manual (workflow_dispatch) runs upload DevHQ-macos-arm64.dmg as the
DevHQ-macos-arm64 workflow artifact for testers. Pushing a v* tag builds the
same DMG and publishes it to the matching GitHub Release with the gh CLI.
Pull-request builds use ad-hoc signing and are not Gatekeeper-trusted. Manual
workflow runs and trusted v* tags use the configured Developer ID identity,
sign nested native code and the app with hardened runtime and a timestamp, sign
and notarize the DMG, staple the ticket, and verify the result. Tagged builds
also publish the DMG.
Required GitHub secrets for Developer ID signing and notarization:
APPLE_DEVELOPER_ID_APPLICATION_P12_BASE64APPLE_CERTIFICATE_PASSWORDAPPLE_KEYCHAIN_PASSWORDAPPLE_SIGN_IDENTITYAPPLE_IDAPPLE_TEAM_IDAPPLE_APP_SPECIFIC_PASSWORD
Copyright (c) 2026 Manuj Bhatia.
DevHQ is free software, licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for the full text.
Individuals and companies are free to use, modify, and self-host DevHQ. Because AGPL-3.0 is a network copyleft license, if you modify DevHQ and make it available to others over a network (for example, as a hosted service), you must also make the complete corresponding source code of your modified version available under the AGPL-3.0.
"DevHQ" and the DevHQ name and logo are trademarks of Manuj Bhatia. The AGPL-3.0 license covers the source code only and grants no rights to these trademarks. Forks and derivative products must use a different name. See TRADEMARK.md.
By contributing to DevHQ, you agree to the terms of the Contributor License Agreement, which allows the Project to be offered under both the AGPL-3.0 and, at the Owner's discretion, other license terms (such as a commercial license). You retain copyright to your contributions.