$git clone https://github.com/blueberrycongee/termcanvasYour terminals, on an infinite canvas.
| 1 | <div align="center"> |
| 2 | |
| 3 | <img src="docs/icon.png" width="128" alt="TermCanvas app icon" /> |
| 4 | |
| 5 | # TermCanvas |
| 6 | |
| 7 | **Your terminals, on an infinite canvas.** |
| 8 | |
| 9 | [](https://github.com/blueberrycongee/termcanvas/releases) |
| 10 | [](https://github.com/blueberrycongee/termcanvas/releases) |
| 11 | [](LICENSE) |
| 12 | []() |
| 13 | [](https://website-ten-mu-37.vercel.app) |
| 14 | |
| 15 | [**termcanvas.dev →**](https://website-ten-mu-37.vercel.app) |
| 16 | |
| 17 | <br> |
| 18 | |
| 19 | <img src="docs/demo.gif" alt="TermCanvas in action — canvas navigation, focus, zoom, and panel switching" /> |
| 20 | |
| 21 | <br> |
| 22 | |
| 23 | <img src="docs/hero-canvas.png" alt="TermCanvas — multiple AI agents arranged on an infinite canvas" /> |
| 24 | |
| 25 | <br><br> |
| 26 | |
| 27 | <img src="docs/hero-hub.png" alt="TermCanvas Hub — knowledge graph view with sessions sidebar" /> |
| 28 | |
| 29 | </div> |
| 30 | |
| 31 | <br> |
| 32 | |
| 33 | TermCanvas spreads all your terminals across an infinite spatial canvas — no more tabs, no more split panes. Drag them around, zoom in to focus, zoom out to see the big picture. |
| 34 | |
| 35 | It organizes everything in a **Project → Worktree → Terminal** hierarchy that mirrors how you actually use git. Add a project, and TermCanvas auto-detects its worktrees. Create a new worktree from the terminal, and it appears on the canvas instantly. |
| 36 | |
| 37 | <p align="right"><a href="./README.zh-CN.md">中文文档 →</a></p> |
| 38 | |
| 39 | > **New to TermCanvas?** Read the full [**User Guide**](./docs/user-guide.md) — every interaction explained, every keyboard shortcut, plus the non-obvious tricks (⌘E focus chain, drag-to-stash, session replay, etc.). |
| 40 | |
| 41 | --- |
| 42 | |
| 43 | ## Quick Start |
| 44 | |
| 45 | **Download** — grab the latest build from [GitHub Releases](https://github.com/blueberrycongee/termcanvas/releases). |
| 46 | |
| 47 | > [!IMPORTANT] |
| 48 | > **Apple Silicon (M-series) Macs — pick the file with `arm64` in its name** |
| 49 | > Files **with** `arm64` in the filename (e.g. `TermCanvas-X.Y.Z-arm64.dmg`, `TermCanvas-X.Y.Z-arm64-mac.zip`) are native Apple Silicon builds. Files **without** `arm64` are Intel (x64) builds — they'll still launch on M-series Macs via Rosetta 2, but you'll see noticeable lag when panning/zooming the canvas. |
| 50 | > |
| 51 | > To verify after install: open **Activity Monitor**, find TermCanvas, and check the **Kind** column — it should say **Apple**, not **Intel**. If it says Intel, delete the app and redownload the `arm64` variant. |
| 52 | |
| 53 | > [!WARNING] |
| 54 | > **macOS note for unsigned builds** |
| 55 | > If macOS says TermCanvas is damaged or blocks launch because the app is unsigned, clear the quarantine attribute and try again: |
| 56 | > |
| 57 | > ```bash |
| 58 | > xattr -cr /Applications/TermCanvas.app |
| 59 | > ``` |
| 60 | > |
| 61 | > If you installed the app somewhere else, replace the path with the actual app location. |
| 62 | |
| 63 | **Build from source:** |
| 64 | |
| 65 | This workspace uses `pnpm`, and `pnpm-lock.yaml` is the canonical lockfile. |
| 66 | |
| 67 | ```bash |
| 68 | git clone https://github.com/blueberrycongee/termcanvas.git |
| 69 | cd termcanvas |
| 70 | pnpm install |
| 71 | pnpm dev |
| 72 | ``` |
| 73 | |
| 74 | **Install CLI tools** — after launching the app, go to Settings → General → Command line interface and click Register. This adds `termcanvas` and `hydra` to your PATH. |
| 75 | |
| 76 | Registration also installs TermCanvas skills and lifecycle hooks for Claude/Codex. For Codex 0.129.0 and newer, TermCanvas writes the required hook trust state in `~/.codex/config.toml` so the generated hooks are reviewed/trusted and continue to emit terminal lifecycle and telemetry events. |
| 77 | |
| 78 | --- |
| 79 | |
| 80 | ## Features |
| 81 | |
| 82 | ### Canvas |
| 83 | |
| 84 | Infinite canvas — pan, zoom, and arrange terminals freely. Three-layer hierarchy: projects contain worktrees, worktrees contain terminals. New worktrees appear automatically as you create them. |
| 85 | |
| 86 | Double-click a terminal title bar to zoom-to-fit. Drag to reorder. Box-select multiple terminals. Draw and annotate freely on the canvas itself with the |