Tabs, splits, and tmux work fine until you have several projects open with logs, tests, and long-running shells. I kept rebuilding context instead of resuming work. Horizon puts shells on an infinite canvas. You can arrange them into workspaces and reopen later with layout, scrollback, and history intact.
Built in 3 days with Claude/Codex, dogfooding the workflow as I went. Feedback and contributions welcome.
Comments
tekacs•25m ago
This is fun! I switched to https://github.com/manaflow-ai/cmux for a while, but had to switch back to Ghostty due to its unreliability, high memory and CPU usage and a bunch of bugs.
This makes a lot of sense, but... it'd be great to allow pulling out of a canvas into a second canvas for those of us with multiple screens (you at least end up needing one window per screen).
In general it feels like... more structure rather than less feels like it'd be the smoothest experience. I'll play with your Ctrl+K shortcut and see if it ends up feeling like I can get everywhere that I need quickly.
But... nice work!
Note for jj users like me: you need to `git lfs pull` if you want to `cargo run --release`!
Update: No luck creating any 'shell' workspaces (codex ones work fine) - might be a classic 'doesn't work for fish' issue – I'll push a fix once I find it.
Also: the AGENTS.md is wrong JFYI - it points to portable-pty, when this is using alacritty_terminal's tty (on rustix-openpty)
tekacs•25m ago
This makes a lot of sense, but... it'd be great to allow pulling out of a canvas into a second canvas for those of us with multiple screens (you at least end up needing one window per screen).
In general it feels like... more structure rather than less feels like it'd be the smoothest experience. I'll play with your Ctrl+K shortcut and see if it ends up feeling like I can get everywhere that I need quickly.
But... nice work!
Note for jj users like me: you need to `git lfs pull` if you want to `cargo run --release`!
Update: No luck creating any 'shell' workspaces (codex ones work fine) - might be a classic 'doesn't work for fish' issue – I'll push a fix once I find it.
Also: the AGENTS.md is wrong JFYI - it points to portable-pty, when this is using alacritty_terminal's tty (on rustix-openpty)