by peters
GPU-accelerated terminal board that puts all your sessions on an infinite canvas
# Add to your Claude Code skills
git clone https://github.com/peters/horizonLast scanned: 8/14/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-14T05:37:17.384Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how horizon compares with popular alternatives.
horizon is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by peters. GPU-accelerated terminal board that puts all your sessions on an infinite canvas. It has 710 GitHub stars.
Yes. horizon passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/peters/horizon" and add it to your Claude Code skills directory (see the Installation section above).
horizon is primarily written in Rust. It is open-source under peters on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh horizon against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Tabbed terminals hide your work. Tiled terminals box you in. Horizon gives you a canvas — an infinite 2D surface where every terminal, agent, browser, VNC desktop, and editor lives as a panel you can place, resize, and group.
Think of it as a whiteboard for live sessions, with a structured workflow on top: color-coded workspaces, preset panels, a command palette, and fit-to-workspace whenever you want a clean overview.
Horizon has five nouns. Everything else is a shortcut, a preset, or a panel kind.
| Noun | What it is | How you use it |
|---|---|---|
| Canvas | The infinite 2D surface | Drag empty canvas or swipe with two fingers to pan. Pinch or Ctrl+scroll to zoom. Minimap to jump. |
| Workspace | A color-coded cluster with a shared working directory | Ctrl+double-click the canvas and pick a preset, or click New in the sidebar. Arrange with Default (free), Rows, Cols, or Grid. Detach it to its own window. |
| Panel | One live surface inside a workspace | Shell, SSH, coding agent, browser, markdown, git, or usage. |
| Preset | A named template for a new panel | Command palette, Ctrl+double-click, or Ctrl+Shift+N (first preset). |
| Session | A saved board | Close Horizon and come back. Ctrl+Shift+J switches between saved boards. |
A typical board looks like this:
Session
└── Canvas
├── Workspace "Backend" cwd: ~/projects/api
│ ├── Shell
│ ├── Grok
│ ├── Browser → http://127.0.0.1:3000
│ └── Git Changes
└── Workspace "Frontend" cwd: ~/projects/web
├── Shell
└── Claude
Workspaces stay visible. There are no hidden tabs. If something is off-screen, pan, zoom, fit, or search — do not hunt through a tab strip.
| Kind | What you get |
|---|---|
shell |
Login shell in the workspace directory |
ssh |
Remote shell — usually from the Remote Hosts overlay |
grok · claude · codex · open_code · gemini · kilo_code · pi |
First-class coding-agent TUIs, with session resume where the CLI supports it |
browser |
Live Chromium, Firefox, or Safari on the canvas, shared with agents |
editor |
Markdown split view (syntax + preview) |
git_changes |
Changed files, diffs, and hunks for the workspace repo |
usage |
Token spend across agent panels |
command |
Run an arbitrary command as a panel |
device |
Native VNC view of a loopback desktop, or of a remote desktop reached through an SSH tunnel (the host's key must already be trusted, for example by opening it over SSH once). Read-only until you turn Interact on, which sends your mouse and keyboard to that desktop |
You do not need a config file to start. Launch Horizon, then:
gb, cc, web, gc).@ for panels only, or > for presets and actions.Once that loop is familiar, the rest is optional: New in the sidebar for an empty workspace, Ctrl+Shift+H for SSH/Tailscale hosts, the workspace Detach control for a dedicated window, a Browser panel for any site on this machine or on BrowserStack, a Device panel for each VNC desktop you want to watch, or Settings (Ctrl+Shift+,) to edit ~/.horizon/config.yaml with the canvas still visible behind it.
Pan and zoom freely. Place panels anywhere. A minimap in the corner keeps you oriented — click or drag it to jump.
Group related panels into color-coded workspaces. Auto-arrange with rows, columns, or grid — or drag freely. Detach a workspace into its own OS window.
24-bit color, mouse reporting, scrollback, alt-screen, and Kitty keyboard protocol. Powered by the Alacritty terminal engine. Click a TUI (Grok, vim, less, …) and the click goes to the app; Shift+click still selects text.
Ctrl+Shift+K searches workspaces, panels, presets, and actions. Prefix > for presets and actions, @ for panels only. Selecting a panel pans the canvas to it.
First-class Grok, Claude Code, Codex, OpenCode, Gemini CLI, KiloCode, and Pi integration. Session persistence and resume work where the CLI supports it. Title bars show a working indicator and, when a session is bound, its id. A live usage dashboard tracks token spend.
Open any site in Chromium, Firefox, or Safari on this machine, or on a BrowserStack browser or phone you name in config. On this machine you and an agent share the page: navigate, inspect, click, fill, capture network traffic, and hand control back and forth. A BrowserStack panel shows the live page and takes the same navigate, click, and fill actions.
A built-in git status panel watches the workspace repo. See changed files, inline diffs, and hunk-level detail without leaving the canvas.
Click an OSC 8 hyperlink to open it. Ctrl+click a URL or file path under the cursor. Horizon sees what the terminal prints and makes it interactive.
Ctrl+Shift+H discovers hosts from SSH config and Tailscale. Search, filter, and connect. Type user@filter to override the SSH user.
The SSH | VNC switch (or Tab) picks what opening a host creates: a terminal over SSH, or a Device panel showing the host's desktop (read-only until you turn Interact on in the panel). VNC never crosses the network in the clear: Horizon runs ssh -W 127.0.0.1:<port> to the host and pipes that into its native VNC viewer, so the server only has to listen on the host's loopback interface (remote_hosts.vnc_port, default 5900). A host whose server listens elsewhere gets its own entry in remote_hosts.vnc_ports, keyed by the label the overlay shows or by its SSH host name; typing :port at the end of the filter (for example lab:5901) uses that port for one session, or for the shortcut being saved.
The in picker chooses the workspace that receives the session. It defaults to remote_hosts.default_workspace (Remote Sessions, created as a grid on first use); pick any other workspace for one session (Alt+↑/↓ cycles it from the keyboard), or Set default (Alt+D) to make it the new default in the config file Horizon loaded (~/.horizon/config.yaml unless --config named another). Set default waits while the Settings editor has unsaved edits, so the two never overwrite each other.
Right-click a host for Open over SSH, Open over VNC, Save SSH shortcut and Save VNC shortcut. A saved shortcut is an ordinary preset (SSH: <host> or VNC: <host>, with the user@ override applied) written to the config file, so the command palette and the preset picker can add that host to any workspace later.
The same viewer also watches loopback VNC servers on this computer, one port per copy of an app. See Watch an app over VNC.