3 ms·
Really nice! I tried out a similar thing but with tldraw as the canvas engine: https://github.com/aleda145/terminaldraw https://github.com/aleda145/terminaldraw
by aleda145 4mo ago
Really nice! I tried out a similar thing but with tldraw as the canvas engine: https://github.com/aleda145/terminaldraw https://github.com/aleda145/terminaldraw
I see Cate also uses node-pty. I didn't know what psuedo terminals were before, it's cool stuff
- BlueBerry2001 4mo agoNice, I just checked terminaldraw. Very similar core idea, but interesting that you used tldraw more directly as the canvas engine. 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.
- jon-wood 4mo agoIf you haven't already it may be worth looking at https://github.com/coder/ghostty-web https://github.com/coder/ghostty-web which wraps libghostty in an xterm.js compatible wrapper, the focus for Ghostty has very much been the sort of things you're mentioning so it'll hopefully make a solid foundation.