hangar-ai

mcp
Security Audit
Fail
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Fail
  • exec() — Shell command execution in demo/backend/model.ts
  • exec() — Shell command execution in demo/backend/shell.ts
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Desktop app to run Claude Code, Codex, Gemini CLI and OpenCode side by side, with a shared task board and memory over MCP, and an orchestrator that runs workers in git worktrees. Local, open source.

README.md

Hangar.AI

Run Claude Code, Codex and friends side by side, in one window.

Latest release Windows, macOS and Linux MIT

Download

Get the latest release, under
Assets:

  • Windows — the .exe, 64-bit. It installs for you alone and asks for no administrator
    rights. Being unsigned, SmartScreen shows a warning on first run: More info →
    Run anyway. WebView2 is required and ships with Windows 11.
  • macOS — .dmg, one universal build for Apple Silicon and Intel. Signed and notarised
    with an Apple developer account, so it opens on a double-click like anything else.
  • Linux — .AppImage to run without installing, or .deb / .rpm for a package
    manager. WebKitGTK 4.1 is required and every current distribution packages it, as
    libwebkit2gtk-4.1-0 on Debian and Ubuntu or webkit2gtk4.1 on Fedora.

The app updates itself from there, so this is a one-time download.

What it does

  • Tiling panes — 1, 2, 4 or 8 real terminals. Every split resizes on its own, and each
    pane picks its shell from whatever is installed: PowerShell, cmd, Git Bash, WSL, MSYS2 and
    Nushell on Windows; zsh, bash, fish, Nushell and pwsh everywhere else — opened as login
    shells on macOS, so a pane starts with the PATH your terminal has. Zoom one pane to the
    whole grid and back, search its scrollback, or drop a file or a screenshot on it to paste
    its path.
  • Workspaces — a project directory plus its pane layout, saved. Reopen one and every
    pane comes back with its agent.
  • Session resume — agents relaunch on the conversation they were in, with no session
    ids for you to track.
  • Shared task board — a kanban board per workspace that the agents themselves read and
    write, over MCP. Cards show who holds them and what blocks them, and the board can sit
    in a panel beside the terminals.
  • 3D preview — an agent shows you the model it is working on in a panel beside the
    terminals rather than naming a file, and can render it to an image to check its own work.
  • Agent state at a glance — each pane says whether its agent is working, waiting for
    your answer, or done and waiting for you; the sidebar counts the same for every
    workspace, so a turn that ends in a workspace you left does not go unnoticed.
  • Broadcast — one instruction, sent to every pane at once, or held until each agent
    is free.
  • Dictation — hold a key, speak, and it is typed into the focused pane. Runs on this
    machine through whisper.cpp, on a checkpoint downloaded once: 99 languages, no key, no
    connection, and nothing recorded leaves the computer. Groq's hosted Whisper is there as
    a fallback, and an optional pass can tidy the transcript — dropping the hesitations and
    spelling useEffect the way you would type it. The Groq key is kept in the system
    keychain, never in the app's settings file.
  • 32 themes — ported from the most-installed VS Code palettes, restyling the whole
    window rather than just the terminals. Font, size, line height, cursor and padding adjust
    live, and the interface has a size of its own.
  • Rebindable shortcuts, and an interface in English or French.
  • Discord Rich Presence — off unless you turn it on.

The task board

Every workspace gets a board, and agents work it over MCP:

Tool What it does
board_list_tasks Read the current state of the work
board_next_task Highest-priority free task whose dependencies are done
board_claim_task Take ownership — fails if someone got there first
board_create_task File work for another agent, with priorities and dependencies
board_update_task Move between columns, edit, or release
board_comment_task Leave notes, which is how agents talk to each other
board_delete_task Remove a task

Claims are atomic: every change goes through a single lock, so two agents racing for the
same task cannot both win it.

The 3D preview

Agents that build game assets show them over MCP too:

Tool What it does
model_show Open a model in the panel and report its triangles, materials, animations and size
model_snapshot Render it to a PNG the agent can look at, from a fixed angle
model_close Close one model, or every model the agent's workspace has open

It reads glTF and GLB, OBJ with its MTL, STL, PLY, FBX and USDZ, up to 256 MB, and only from
the workspace's folders and its git worktrees. A model reloads by itself when its file
changes, so an agent re-exporting it is enough to refresh what you see.

Each workspace has its own preview. A model an agent shows opens in that agent's
workspace: if you are looking at another one, nothing covers it, and the model is waiting
when you get there. The agent is told whether you can see it, and its snapshots render
either way.

The Claude Code bridge

Claude Code panes load a small mod,
hangar-bridge, which Hangar writes to ~/.hangar/mods/hangar-bridge and hands to the
panes it starts through CLAUDE_CODE_PLUGIN_DIRS — nothing is installed in Claude Code
itself, and a claude started outside Hangar never sees it. From inside the session it
tells Hangar:

  • when a turn starts and ends, and when a permission dialog is waiting for you — the
    pane's state and its notification come from there rather than from a guess;
  • which session the pane is on, so a restart resumes the right conversation;
  • the context window's fill and the plan's 5-hour and weekly usage, shown at the bottom
    of the sidebar;
  • which files it edits, so that an agent about to edit a file another pane just changed
    asks you first.

It also takes the prompts you broadcast "when free" and submits them once its session is
idle. It needs Claude Code 2.1.287 or later; without it, or in a WSL pane, Hangar falls
back to reading the pane's output as it does for every other agent. Settings → General →
Claude Code bridge turns it off, and Hangar leaves it out by itself where the machine's
managed settings forbid sideloaded plugins. Claude Code sessions
are also named after their pane, so agents can message each other as @<pane>.

Connecting agents

Settings → MCP registers the server in whichever tools it finds, each in its own format:

Tool File
Claude Code .mcp.json
Codex ~/.codex/config.toml
Gemini CLI ~/.gemini/settings.json
Cursor .cursor/mcp.json
VS Code .vscode/mcp.json

Existing configuration is merged rather than overwritten, and a backup is kept on first
write. The API port and its token are resolved at launch and never written into those
files, so the configs stay valid across restarts.

The same panel can drop an agent playbook into AGENTS.md and CLAUDE.md, inside a
delimited block that leaves the rest of the file alone.

Keyboard

Ctrl on Windows, Cmd on macOS:

Shortcut Action
Ctrl/Cmd + 1…8 Focus pane N
Ctrl/Cmd + , Settings
Ctrl+Shift+Z / Cmd+Option+Z Zoom the focused pane, and back
Ctrl+Shift+F / Cmd+F Search the focused pane
Double-click a split Reset that boundary to 50/50
Double-click a workspace Rename

Everything else is rebindable from Settings → Shortcuts. The defaults differ where the two
platforms do: a Mac copies with Cmd+C rather than Ctrl+Shift+C, splits with
Cmd+D, and moves between panes with Ctrl+Option+arrow — leaving Option+arrow to
the terminal, which uses it to move by word.

Development

Node 20+, pnpm and a Rust toolchain; on Windows, the MSVC build tools, and on macOS the
Xcode command line tools (xcode-select --install). Linux builds against the system
WebView, so it needs its headers first:

sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev \
  libxdo-dev libssl-dev patchelf
pnpm install
pnpm tauri dev      # run it
pnpm tauri build    # build the installers

The MCP server is the same binary, run with --mcp:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | ./src-tauri/target/debug/hangar-ai --mcp

English is the reference for translations in src/i18n.ts: the French table is typed
against it, so a missing key fails the build instead of falling back at runtime.

Redrawing the logo regenerates three checked-in copies, in this order. The scripts are
PowerShell, so this one is a Windows job — the artwork they produce is checked in, and a
macOS clone never has to run them:

powershell -File scripts/logo.ps1            # the masters, assets/logo.png and .svg
pnpm tauri icon assets/logo.png              # the OS icon set
powershell -File scripts/installer-art.ps1   # the installer bitmaps

A fork that wants the Rich Presence badges needs art uploaded to its own Discord
application under the keys agent-claude, agent-codex, agent-gemini and
agent-opencode, then its application id set in Settings → Discord. Until then the card
simply shows no badge.

License

MIT

Reviews (0)

No results found