# OpenCove: an infinite canvas for Claude Code, Codex and terminals

> OpenCove is an Electron desktop workspace that arranges agent sessions, terminals, tasks and notes on one infinite 2D canvas. It is alpha software, MIT licensed, and the README is honest about what it does not have yet.

**DeadWaveWave/opencove** — Your infinite canvas workspace for agents, tasks, knowledge, and research. An infinite canvas for Claude Code, Codex, terminals, tasks, and notes.

- Repository: https://github.com/DeadWaveWave/opencove
- Stars: 1,601 · Forks: 142
- Language: TypeScript
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/deadwavewave-opencove

## The problem OpenCove solves: agent context that disappears into tabs

If you run Claude Code or Codex for real work, the failure mode is not the model. It is the workspace. Three agent sessions, two terminals, a task list and a scratch note end up as tabs you cycle through, and the relationship between them is stored in your head. Close the laptop and the relationships are gone.

OpenCove's answer is to make the relationship physical. Agents, terminals, tasks and notes are nodes on one infinite 2D canvas, so proximity carries meaning: the terminal that runs the test suite sits next to the agent that wrote it, and the note explaining why sits next to both. The README frames this as a spatial development workspace for people who work with AI coding agents every day, and lists the intended workflows as running multiple Claude Code or Codex sessions side by side, keeping task plans and terminal output in one shared workspace, and switching projects without losing layout, context, or execution history.

Who it is for: developers who already live in terminal-native agent CLIs and want a persistent visual layer over them. Who it is not for: anyone who wants the agent itself. OpenCove does not replace Claude Code or Codex; the README recommends installing one of them globally to experience full agent workflows. It is a shell around tools you already have.

## How the canvas, workspaces and the worker fit together

The repository is an Electron application: package.json declares electron, react and typescript as keywords, the main entry is ./out/main/index.js, and the build config produces artifacts named ${productName}-${version}-${os}-${arch}.${ext} for macOS, Windows and Linux. So the canvas is a desktop app, not a browser tab.

Underneath that sits a worker. The README describes two ways to install the opencove CLI, one from inside the Desktop app under Settings, Worker, CLI, and one from a GitHub Release that includes standalone runtime bundles named opencove-server-*. The worker is also what hosts the experimental Web UI: starting it with a hostname and a password prints a Web UI URL and enables password login for browser access. By default the Web UI is loopback-only at 127.0.0.1, so exposing it to your LAN is a deliberate act that requires the password.

Persistence is the mechanism that makes the spatial idea work rather than being decoration. The README lists persistent workspaces as restoring viewport, layout, terminal output and agent state after restarts, and space archives as snapshots you can revisit. Workspace isolation is handled with directories and git worktrees, which means two projects do not share a working tree just because they share a canvas. The 0.3.2 announcement adds native Pi activity tracking, Windows Agent startup and recovery improvements, and managed SSH runtimes kept aligned with Desktop updates.

## Installing OpenCove and opening your first canvas

The README offers two install paths. The Desktop route is the simplest: download a build for macOS, Windows or Linux from the GitHub Releases page, where 0.3.0 stable and newer are published. On macOS the builds are not signed or notarized with an Apple Developer ID, and the README gives the Gatekeeper workaround directly:

```bash
xattr -dr com.apple.quarantine /Applications/OpenCove.app
```

If you want the CLI without the Desktop app, use a release that publishes the standalone runtime bundles plus its versioned installer asset. For the latest stable release on macOS or Linux:

```bash
curl -fsSL https://github.com/DeadWaveWave/opencove/releases/latest/download/opencove-install.sh | sh
```

On Windows the equivalent uses PowerShell:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -Command "Invoke-RestMethod https://github.com/DeadWaveWave/opencove/releases/latest/download/opencove-install.ps1 | Invoke-Expression"
```

The README states the standalone installer verifies the downloaded runtime against the release's SHA256SUMS.txt before extracting it, which is the right default for a pipe-to-shell install. If that first URL returns 404, the latest stable release has not published the standalone installer yet; the README's own advice is to use the Desktop installer or wait.

For a headless server that hosts the Web UI, start the worker after install:

```bash
opencove worker start --hostname 0.0.0.0 --web-ui-password 'change-me'
```

That prints the Web UI URL. The README is explicit that you should keep the password set whenever the Web UI is exposed beyond localhost. To build from source instead, the prerequisites are Node.js >= 22.12.0 and pnpm 9.6.0, with Claude Code or Codex installed globally if you want the agent workflows:

```bash
git clone https://github.com/DeadWaveWave/opencove.git
cd opencove
pnpm install
pnpm dev
```

pnpm dev starts the development environment through scripts/run-electron-vite-dev.mjs. What you should see is the Electron window with an empty canvas, ready for your first terminal or agent node.

## Where OpenCove gets in your way

The README labels the project alpha and recommends it for early adopters and power users. That is not boilerplate caution; it maps onto concrete gaps. macOS builds are unsigned and unnotarized, so every macOS user runs the quarantine command above or fights Gatekeeper. The Web UI is marked experimental and is loopback-only by default, which means the remote-access story is unfinished. Nightly prereleases exist alongside stable, and the README says they contain newer changes and may have rough edges.

The install path has a sharp edge of its own. The generic opencove-install.sh alias only works if the latest stable release actually published it, and the README documents the 404 case rather than hiding it. If you pin to a nightly, you must use the versioned asset from that release page, which means writing the tag into the URL yourself.

The deeper limitation is architectural. Because OpenCove is a GUI canvas over CLI agents, it is the wrong tool for CI, for scripted batch runs, or for anyone who wants an agent invoked from a Makefile. It is also the wrong tool if you work in one session at a time: the spatial layout costs screen space and setup effort that a single terminal does not need. And the README does not document rollback or downgrade between versions, so if a nightly breaks your workspace state, the documented path back is not stated.

## OpenCove compared with tmux and a plain terminal multiplexer

The honest alternative for parallel agent sessions is tmux, or a terminal multiplexer plus a notes file. The difference is in what persists and what you see. tmux gives you panes and windows inside one terminal emulator; the layout is textual, the state lives in the server process, and if you kill the server the layout is gone. It has no notion of a task node, a note node, or an image pasted next to an agent session.

OpenCove keeps the same terminal-native agents but stores the layout as application state. The README's persistent workspaces restore viewport, layout, terminal output and agent state after restarts, and space archives let you snapshot a workspace and jump back into an old context. That is the real difference: tmux preserves a session, OpenCove preserves a spatial arrangement you can revisit. The cost is weight. tmux is a binary you already have; OpenCove is an Electron app with a worker process, a Node >= 22.12.0 requirement, and unsigned macOS builds. If your work fits in four panes and you never need to look at a diagram of it, tmux wins on every axis except the one OpenCove was built for.

## Licence, upgrades and what maintenance costs you

OpenCove is MIT licensed, and the repository carries LICENSE, CLA.md and TRADEMARKS.md at the top level. MIT is permissive, so forking and internal redistribution are straightforward, but the CLA and trademark files mean contributions and branding have their own terms; read those before you plan to ship a rebranded build. Nothing here is legal advice.

The upgrade surface is real. The project ships stable releases and nightly prereleases on separate channels, and package.json sets generateUpdatesFilesForAllChannels to true, so the updater is channel-aware. The 0.3.2 announcement notes that managed SSH runtimes are kept aligned with Desktop updates, which tells you the worker and the Desktop app are versioned together rather than independently. If you run a headless worker on a server, that alignment is something you have to manage yourself: upgrading the Desktop app on your laptop does not upgrade the worker on the server.

The last push to the repository was on 2026-09-09, and the most recent releases listed are v0.3.2 on 2026-09-06 and a nightly on 2026-09-07. The repository is not archived. The README does not document a downgrade procedure, so treat nightly channel adoption as a one-way bet on your workspace state.

## Conclusion

Adopt OpenCove if you routinely run two or more CLI agent sessions and lose track of which terminal belongs to which task; the spatial layout and persistent workspaces are the whole point. Do not adopt it if you need signed macOS builds, a stable API surface, or a headless-only workflow, because the project labels itself alpha, macOS builds are not notarized, and the Web UI is marked experimental. Before committing, verify three things: that the release page publishes the standalone installer assets for the version you want (the README warns a 404 on opencove-install.sh means they are not up yet), that your Node version satisfies >= 22.12.0 if you build from source, and that the layout persistence survives a restart on your machine, since that is the feature the whole workflow depends on.

## FAQ

### How do I install the OpenCove CLI without the Desktop app?

Use a GitHub Release that includes the standalone runtime bundles (opencove-server-*) plus its versioned installer asset, for example opencove-install-v<version>.sh on macOS and Linux or the .ps1 equivalent on Windows. Stable releases also publish generic opencove-install.sh and opencove-install.ps1 aliases that target the latest stable release. If the generic URL returns 404, the README says the latest stable release has not published the standalone installer yet.

### Does OpenCove replace Claude Code or Codex?

No. OpenCove is a spatial workspace that arranges agent sessions, terminals, tasks and notes on one canvas, and the README recommends globally installing Claude Code or Codex to experience full agent workflows. It hosts and lays out those CLI agents rather than providing the agent itself.

### Can I open the OpenCove canvas from another device on my network?

The README describes an experimental Worker-hosted Web UI. By default it is loopback-only at 127.0.0.1, and you enable it under Settings, Experimental, Worker Web UI. To serve it more widely, start the worker with a hostname and a Web UI password, and the README says to keep the password set whenever the Web UI is exposed beyond localhost.

### Why does macOS block OpenCove when I open it?

The README states that current macOS builds are not signed or notarized with an Apple Developer ID, so Gatekeeper may block the app. The documented workaround is running xattr -dr com.apple.quarantine /Applications/OpenCove.app in a terminal.

## Sources

- [DeadWaveWave/opencove on GitHub](https://github.com/DeadWaveWave/opencove)
- [Issues](https://github.com/DeadWaveWave/opencove/issues)
- [License: MIT](https://github.com/DeadWaveWave/opencove/blob/main/LICENSE)
- [README](https://github.com/DeadWaveWave/opencove/blob/main/README.md)
- [Releases](https://github.com/DeadWaveWave/opencove/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/deadwavewave-opencove
