README.md

June 15, 2026 · View on GitHub

Cate

English | Français | 简体中文 | Deutsch

An infinite canvas for your code, terminals, browsers, docs, and AI agents.

MIT License CI Downloads


Cate demo

Cate is a desktop IDE built on an infinite canvas. Spread editors, terminals, browsers, docs, and AI agents across freeform space instead of stacking windows and tabs. Float them, dock them into tabs and splits, or detach them into their own OS windows, and Cate restores the whole layout when you reopen the folder.

Getting started: open a folder and it becomes a workspace. Right-click to add panels, press Cmd+K for the command palette, drag panels onto the dock to build tabs and splits. No config files.

Install

Download a prebuilt release. Don't build from source for daily use.

PlatformFormatsLink
macOSDMG, ZIP (arm64, x64)Latest release
WindowsNSIS installer, ZIP (x64)Latest release
LinuxAppImage, DEB, tar.gz (x64)Latest release

What's inside

  • Canvas & layout: infinite zoom and pan, docking into tabs and splits across four zones, detachable windows, saved layouts, and multi-project session restore.
  • Editors & terminals: Monaco editors with syntax highlighting, multi-cursor, diffs, and Markdown preview; native xterm.js terminals via node-pty; document panels for PDFs, DOCX, and images.
  • Git: git-aware file tree with live watching, plus a source-control sidebar for staging, branches, worktrees, history, and inline diffs. Full-text search.
  • AI agents: in-app coding agent (Pi) with chat threads and per-chat model memory. Connect Anthropic, OpenAI Codex, GitHub Copilot, Gemini, OpenRouter, Groq, Mistral, DeepSeek, and more via OAuth or API key.
  • Navigation: canvas-wide search across files, terminal scrollback, and panel titles; command palette; panel-to-panel keyboard navigation.

Keyboard shortcuts

macOS shown below; on Windows/Linux use Ctrl in place of Cmd.

Panels & filesView & navigation
New terminalCmd+TCommand paletteCmd+K
New editorCmd+Shift+ESearch everythingCmd+Shift+F
New browserCmd+Shift+BToggle sidebarCmd+B
New agentCmd+Shift+AToggle file explorerCmd+Shift+X
New canvasCmd+Shift+CToggle minimapCmd+Shift+M
New fileCmd+NFocus next / previous panelCtrl+Tab / Ctrl+Shift+Tab
Save fileCmd+SMove between panelsCmd+←↑↓→
Close panelCmd+WDelete focused panelCmd+Backspace
Canvas
Zoom in / outCmd+= / Cmd+-
Reset zoomCmd+0
Zoom to fit / selectionCmd+1 / Cmd+2
Auto-layout canvasCmd+Shift+L
Pan canvasShift+←↑↓→
Toggle select / hand toolShift+Space
Undo / redoCmd+Z / Cmd+Shift+Z

Every shortcut is rebindable in Settings.

Build from source

For contributors. Use the release above otherwise.

Prerequisites:

  • Bun: package manager and script runner.
  • Node.js 20 or 22 LTS (see .nvmrc) on your PATH. The build scripts run under it; the runtime daemon bundles its own Node 22.
  • Linux only: node-pty ships prebuilt binaries for macOS and Windows, but not Linux, so it compiles from source there. Install Python 3 and a C++ toolchain:
    • Debian/Ubuntu: sudo apt install build-essential python3
    • Fedora/RHEL: sudo dnf install @development-tools gcc-c++ make python3
    • Arch: sudo pacman -S base-devel python

Fresh clone, one command sets everything up (installs dependencies and builds the local runtime daemon):

git clone https://github.com/0-AI-UG/cate.git
cd cate
bun run setup

Then:

bun run dev          # dev server with hot reload
bun run typecheck
bun run test         # unit tests (vitest)
bun run test:e2e     # Playwright integration tests
bun run build        # production build
bun run package      # package for distribution (:mac, :win, :linux)

Packaged binaries land in release/. The runtime daemon is rebuilt by bun run runtime:tarball (re-run it after changing anything under src/runtime/).

Architecture

src/
├── agent/      # Embedded Pi coding-agent: process manager, auth, marketplace, panel UI
├── main/       # Electron main process: IPC, workspaces, windows, updater, security
├── preload/    # Context-isolated IPC bridge
├── renderer/   # React 18 app: canvas, docking, panels, sidebar, stores, hooks
└── shared/     # IPC channels and shared types

Cate runs all IPC through a context-isolated preload bridge. Filesystem access is scoped to registered workspace roots, browser panels disable node integration, and terminals can't spawn outside approved directories.

Stack: Electron 41, React 18, Zustand 5, Monaco 0.52, xterm.js 5.5 + node-pty 1.0, Tailwind 3.4, electron-vite, electron-builder, electron-updater, Sentry. PDFs and DOCX via pdf.js and mammoth, git via simple-git, file watching via chokidar. The agent runtime is @earendil-works/pi.

Contributing

See CONTRIBUTING.md. Release-by-release history lives in the CHANGELOG.

Star history

Star History Chart

License

MIT