A chat-first desktop app for developers who work with AI coding agents. Wraps Claude Code, Codex, Grok, Gemini, Cursor, and OpenCode in a persistent, project-aware interface — structured chat history, rich composer, file viewer, integrated terminal, git worktrees, and session management, all stored locally.
Supports macOS and x64 Linux. Requires at least one supported agent CLI installed.
Zuse currently ships x64 builds for Debian/Ubuntu and other Linux distributions that can run AppImages.
Install the latest .deb release directly from a terminal:
curl -fsSL https://raw.githubusercontent.com/swarajbachu/zuse/main/scripts/install-linux.sh | sh
The installer downloads the .deb attached to the latest GitHub release,
verifies its GitHub-published SHA-256 digest, and uses apt, which installs
Zuse's Secret Service and Avahi runtime dependencies. You may be prompted for
your sudo password.
Download the latest x64 .AppImage from
GitHub Releases, then run:
chmod +x Zuse-*-linux-x86_64.AppImage
./Zuse-*-linux-x86_64.AppImage
AppImage users must provide a Secret Service implementation, such as GNOME
Keyring or KWallet. Install avahi-publish-service if you want nearby-device
discovery.
Before starting an agent session, install and authenticate at least one of the supported agent CLIs. If a CLI installed through a version manager is not detected, set its absolute binary path in Zuse's provider settings.
| Provider | CLI |
|---|---|
| Claude | claude |
| Codex | codex |
| Grok | grok |
| Gemini | gemini |
| Cursor | cursor |
| OpenCode | opencode |
AskUserQuestion cards rendered inline in the timeline/clear, /new, /model, /mode, /help@-mention file picker — fuzzy search any project file, inserts as an inline chipAskUserQuestion card and Shift+Tab flow@-mentions within a worktreessh zuse-<workspace> alias without exposing a public SSH listener~/.zuse/cloud/ that pauses on disconnect and resumes with fresh accesslocalhost; public E2B preview URLs remain an explicit copy actionCmd+S to save, mtime-based optimistic concurrency.dmg (Apple Silicon + Intel).AppImage and Debian/Ubuntu .deb| Shell | Electron 42 |
| Renderer | React 19 + TypeScript + Vite |
| Styling | Tailwind CSS v4 + shadcn/ui (zinc dark) |
| State | Zustand (ephemeral) + SQLite (persistent) |
| IPC | @effect/rpc with Electron IPC transport |
| Runtime | Effect.ts (Layer, Stream, Schema) |
| Terminal | xterm.js + node-pty |
| Editor | CodeMirror 6 |
| Monorepo | Bun workspaces + Turbo |
apps/
desktop/ Electron shell
renderer/ React UI (Vite)
server/ All backend logic — Effect Layers
web/ Next.js marketing site
packages/
contracts/ @zuse/contracts — typed RPC contracts + branded IDs
ui/ Shared React components
specs/
0.01-MVP/ Foundation
0.02-MVP/ File viewer & editor
0.03-MVP/ Composer 2.0
0.04-MVP/ Code index (spec complete, not yet built)
sub-agents/ Sub-agent delegation
# Install
bun install
# Dev (renderer + Electron)
bun dev
# Build
turbo build
# Package macOS DMG (signed)
bun run dist:mac
# Package macOS DMG (unsigned, local testing)
bun run dist:mac:unsigned
# Package Linux AppImage and deb
bun run dist:linux
# Package Linux without publishing
bun run dist:linux:unsigned
Requires: Bun 1.3.10+, Node.js ≥ 22.13, and macOS or x64 Linux.
Changes to the macOS awake controller require the physical MacBook release check, including assertion and best-effort closed-lid verification.
The default install uses the public icon set and does not require registry credentials. Contributors can clone the repository and run the commands above without any additional setup.
Licensed developers can opt into the paid icon styles by exporting
HUGEICONS_TOKEN before bun install. The install hook downloads the licensed
packages into an isolated local directory; they are never added to the public
workspace dependency graph. If lifecycle scripts were disabled, run
bun run icons:install-paid, then confirm the active set with
bun run icons:status --expect=paid.
The packaging commands build x64 artifacts into dist/. End-user installation
instructions are in Install on Linux.
Except where third-party terms apply, Zuse's source code is licensed under the
GNU Affero General Public License v3.0 only (AGPL-3.0-only).
Small areas with close correspondence to MIT-licensed upstream software retain
the applicable copyright and permission notice. Reference-driven pull requests,
library foundations, and the code-level inventory are documented in
Attribution and provenance.
Zuse also builds on ideas and foundations from the wider open-source community. We are grateful to the contributors whose work made this project possible.
TypeScript
94.1%
MDX
2.5%
JavaScript
1.9%
A chat-first desktop app for developers who work with AI coding agents. Wraps Claude Code, Codex, Grok, Gemini, Cursor, and OpenCode in a persistent, project-aware interface — structured chat history, rich composer, file viewer, integrated terminal, git worktrees, and session management, all stored locally.
Supports macOS and x64 Linux. Requires at least one supported agent CLI installed.
Zuse currently ships x64 builds for Debian/Ubuntu and other Linux distributions that can run AppImages.
Install the latest .deb release directly from a terminal:
curl -fsSL https://raw.githubusercontent.com/swarajbachu/zuse/main/scripts/install-linux.sh | sh
The installer downloads the .deb attached to the latest GitHub release,
verifies its GitHub-published SHA-256 digest, and uses apt, which installs
Zuse's Secret Service and Avahi runtime dependencies. You may be prompted for
your sudo password.
Download the latest x64 .AppImage from
GitHub Releases, then run:
chmod +x Zuse-*-linux-x86_64.AppImage
./Zuse-*-linux-x86_64.AppImage
AppImage users must provide a Secret Service implementation, such as GNOME
Keyring or KWallet. Install avahi-publish-service if you want nearby-device
discovery.
Before starting an agent session, install and authenticate at least one of the supported agent CLIs. If a CLI installed through a version manager is not detected, set its absolute binary path in Zuse's provider settings.
| Provider | CLI |
|---|---|
| Claude | claude |
| Codex | codex |
| Grok | grok |
| Gemini | gemini |
| Cursor | cursor |
| OpenCode | opencode |
AskUserQuestion cards rendered inline in the timeline/clear, /new, /model, /mode, /help@-mention file picker — fuzzy search any project file, inserts as an inline chipAskUserQuestion card and Shift+Tab flow@-mentions within a worktreessh zuse-<workspace> alias without exposing a public SSH listener~/.zuse/cloud/ that pauses on disconnect and resumes with fresh accesslocalhost; public E2B preview URLs remain an explicit copy actionCmd+S to save, mtime-based optimistic concurrency.dmg (Apple Silicon + Intel).AppImage and Debian/Ubuntu .deb| Shell | Electron 42 |
| Renderer | React 19 + TypeScript + Vite |
| Styling | Tailwind CSS v4 + shadcn/ui (zinc dark) |
| State | Zustand (ephemeral) + SQLite (persistent) |
| IPC | @effect/rpc with Electron IPC transport |
| Runtime | Effect.ts (Layer, Stream, Schema) |
| Terminal | xterm.js + node-pty |
| Editor | CodeMirror 6 |
| Monorepo | Bun workspaces + Turbo |
apps/
desktop/ Electron shell
renderer/ React UI (Vite)
server/ All backend logic — Effect Layers
web/ Next.js marketing site
packages/
contracts/ @zuse/contracts — typed RPC contracts + branded IDs
ui/ Shared React components
specs/
0.01-MVP/ Foundation
0.02-MVP/ File viewer & editor
0.03-MVP/ Composer 2.0
0.04-MVP/ Code index (spec complete, not yet built)
sub-agents/ Sub-agent delegation
# Install
bun install
# Dev (renderer + Electron)
bun dev
# Build
turbo build
# Package macOS DMG (signed)
bun run dist:mac
# Package macOS DMG (unsigned, local testing)
bun run dist:mac:unsigned
# Package Linux AppImage and deb
bun run dist:linux
# Package Linux without publishing
bun run dist:linux:unsigned
Requires: Bun 1.3.10+, Node.js ≥ 22.13, and macOS or x64 Linux.
Changes to the macOS awake controller require the physical MacBook release check, including assertion and best-effort closed-lid verification.
The default install uses the public icon set and does not require registry credentials. Contributors can clone the repository and run the commands above without any additional setup.
Licensed developers can opt into the paid icon styles by exporting
HUGEICONS_TOKEN before bun install. The install hook downloads the licensed
packages into an isolated local directory; they are never added to the public
workspace dependency graph. If lifecycle scripts were disabled, run
bun run icons:install-paid, then confirm the active set with
bun run icons:status --expect=paid.
The packaging commands build x64 artifacts into dist/. End-user installation
instructions are in Install on Linux.
Except where third-party terms apply, Zuse's source code is licensed under the
GNU Affero General Public License v3.0 only (AGPL-3.0-only).
Small areas with close correspondence to MIT-licensed upstream software retain
the applicable copyright and permission notice. Reference-driven pull requests,
library foundations, and the code-level inventory are documented in
Attribution and provenance.
Zuse also builds on ideas and foundations from the wider open-source community. We are grateful to the contributors whose work made this project possible.
TypeScript
94.1%
MDX
2.5%
JavaScript
1.9%