575 karma · joined May 18, 2026
I like exploring how software workflows change with AI agents, terminals, browsers, notes, and project context becoming more connected.
I posted it more as a progress/update thread because I was mainly looking for feedback from people with heavy terminal or multi-window workflows, but I agree that the format fits Show HN better.
It’s definitely not dead though. Quite the opposite: the project is actively growing and improving. The first post didn’t get much traction, but we kept working on it, fixed a lot of rough edges, and v1 is in a much better state now.
I should have phrased that more clearly.
Cate is not trying to compete with tiling/scolling WMs. Those are better if the main problem is arranging normal OS windows.
The goal here is more project-scoped: one spatial canvas where terminals, browser previews, editors, docs, notes, agents, git/worktrees, and saved layouts live together. More like a persistent workspace for a single project than a global desktop environment.
From a quick look, I agree there is overlap around the canvas editor idea. Cate is aiming a bit more at the broader project workspace layer: terminals, browser previews, editors, notes, agents, git/worktrees, docking/tabs/splits, and persistent layouts around a project.
But yes, fair callout. Appreciate the input.
Right now Cate is a local desktop app because we wanted the first version to work closely with local projects, shells, files, node-pty/xterm, browser panels, Monaco, git worktrees, etc.
A self-hosted web version would need a different architecture: a backend that owns the PTY sessions, keeps them alive when the browser disconnects, handles auth/security, and syncs the canvas state to the client. Definitely possible, but a bigger shift than just “put the current app in the browser”.
Long term I think remote/headless workspaces and reconnectable sessions would make a lot of sense.
Cate is a bit broader in scope: Electron desktop app, persistent project workspaces, node-pty/xterm terminals, browser panels, Monaco editors, docs, git/worktrees, docked tabs/splits, and now agent panels as well.
PTYs were a fun rabbit hole. The basic idea is simple, but making terminals feel native inside a canvas is where it gets tricky: lifecycle, resize behavior, restoring sessions, shell fallback, scrollback, performance, and not breaking when panels are moved/docked/detached.
Cool to see someone else exploring the terminal + canvas direction too. I’ll take a closer look at your repo.
We chose Electron because the goal for v1 was to make Cate easy to try across macOS, Windows, and Linux without asking people to change their OS setup or use a specific window manager. A native implementation would probably give us more control and better performance in some areas, but it would also make iteration and cross-platform support much harder at this stage.
The HTML/canvas approach definitely has tradeoffs. Large canvases, XY transforms, terminals, browser previews, editors, and agents all in one workspace can get expensive if handled naively. We’ve been working on viewport-based rendering, transform handling, and avoiding unnecessary re-renders, but it is still an ongoing performance challenge.
So yes, we accounted for it, but I would not claim it is “solved”. v1 is much better than the early builds, and we’re continuing to improve it.
Cate is an open source desktop workspace built around an infinite canvas. Instead of constantly switching between terminals, editors, browser previews, docs, and AI tools, you arrange everything spatially in one place.
Big improvements since the earlier posts:
docking, tabs, and splits detachable native OS windows git worktree support unified Cmd+K search much smoother rendering/performance on larger canvases AI provider + MCP integration Stack: Electron, React, Monaco, xterm.js/node-pty, Zustand.
Runs on macOS, Windows, and Linux. MIT licensed.
Would love feedback from people with heavy multi-window or terminal-based workflows.