Operations 13 min read

Horizon: Infinite Canvas Terminal for Parallel AI Coding Agents

Horizon is a GPU-accelerated terminal board that replaces tabs with an infinite canvas, natively integrating seven coding agents, a shared browser with human-agent handoff, and persistent sessions, enabling spatial organization of multi-agent workflows for developers managing parallel AI-assisted coding tasks.

Geek Labs
Geek Labs
Geek Labs
Horizon: Infinite Canvas Terminal for Parallel AI Coding Agents

What Is Horizon

Horizon is a GPU-accelerated terminal board (terminal board) where each terminal, coding agent, browser, and Git panel is a "panel" on an infinite 2D canvas that can be freely positioned, scaled, and grouped. Written in Rust using wgpu for GPU rendering (Vulkan/Metal/DX12/OpenGL), it reuses Alacritty's terminal engine for 24-bit color, mouse reporting, scrollback, and the Kitty keyboard protocol.

The project's README states: "Tabbed terminals hide your work. Tiled terminals box you in." Horizon's answer is a canvas: a freely pannable and zoomable 2D plane where all work is laid out visibly.

Project: peters/horizon – puts all terminals and AI agent sessions on an infinite canvas. Stars: 705+ | Language: Rust | License: MIT | Updated: 2026-09 (active)
GitHub: github.com/peters/horizon
Horizon GitHub project homepage
Horizon GitHub project homepage

Canvas Model: Five Nouns

The entire model consists of five nouns:

Canvas – infinite canvas

Workspace – color-coded group sharing a working directory

Panel – a live panel on the canvas (terminal, agent, browser, git changes, etc.)

Preset – panel template

Session – saved entire canvas board

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
Horizon canvas model: Session contains Canvas, Canvas contains Workspaces, Workspaces contain Panels
Horizon canvas model: Session contains Canvas, Canvas contains Workspaces, Workspaces contain Panels

Why the Canvas Is Not a Gimmick

Three details make the canvas practical:

Space as Index

You don't need to remember "tab 8"; you remember "backend group on the left, blue, with production SSH." Workspaces are color-coded; pan when off-screen, press Ctrl+Shift+9 to fit a workspace. A minimap in the corner lets you jump instantly. Human spatial memory outperforms tab-order memory.

No Hidden State

Tabs hide sessions, especially long-running agents. In Horizon all workspaces stay visible; agent panels show a working indicator so you can see at a glance which agent is busy.

Closing Doesn't Lose State

Session persistence saves layout, canvas pan/zoom position, and even terminal scrollback history. Close today, reopen tomorrow exactly as left. Ctrl+Shift+J switches between boards. Critical for overnight agent tasks.

Agents as First-Class Citizens

Horizon provides native panels for seven coding agents: Grok, Claude Code, Codex, OpenCode, Gemini CLI, KiloCode, Pi . Each is a first-class TUI integration; where the CLI supports session resume, Horizon connects it.

This lets you assign "backend repo to Claude, test coverage to Codex, research to Gemini" in one workspace, with three agents running simultaneously in separate panels, a shell for manual intervention, and a git_changes panel watching diffs.

Two additional panel types reveal design intent:

Usage panel – tracks token spend across all agent panels, giving a dashboard for the hidden cost of parallel agents.

Smart detection – URLs, file paths, and OSC 8 hyperlinks printed in the terminal become clickable; agent output like "modified src/api.ts" can be Ctrl+clicked to jump.

SSH is also integrated: Ctrl+Shift+H auto-discovers hosts from SSH config and Tailscale, and connected remote sessions land in a Remote Sessions grid workspace.

Human and Agent Share One Browser

The browser panel is a live Chromium/Firefox/Safari instance. The key: you and the agent operate the same page. When the agent detects the MCP browser contract on the canvas, it attaches automatically; you watch it click buttons, fill forms, capture network traffic. When human intervention is needed (login, CAPTCHA, complex dropdown), your page actions pause the agent queue for five seconds, or you explicitly hand off; after finishing, click "Done – hand back to agent" to return control.

This handoff loop solves the awkward zone where automation halts at a human-only step. Traditional workflow: watch agent logs, notice stall, grab browser manually. Horizon makes this handoff a first-class canvas interaction.

Engineering restraint:

MCP is the only agent-browser contract; no per-agent custom protocols.

Every action is audit-logged to ~/.horizon/audit/browsers/; credentials, query values, and typed text are redacted (keystrokes store only character count).

A standalone horizon-browser CLI exposes the same MCP tools in three modes: natural-language goal, deterministic run plan (model-free), and standard MCP stdio server – the same browser panel can be scripted without the GUI.

Local-First Commitments

The configuration reveals a strict "data never leaves the machine" stance:

Voice input is compile-time opt-in because it requires a C++ inference library. Transcription uses transcribe.cpp (Whisper GGUF models) entirely locally; the project states "nothing leaves the machine." Hold F9 to speak; text inserts into the focused panel like typing, without touching clipboard, paste shortcuts, or Enter.

Multi-language profiles bind their own model, language, and hotkey – e.g., F1 Norwegian, F2 English, F3 Norwegian-to-English translation. Password fields reject insertion.

Session persistence is also local: no cloud sync, boards are local files. Compared to many "AI workbench" products that rush to upload sessions, this 2026 choice feels old-school but predictable.

The author appears to be Norwegian – README documents Norwegian support in unusual detail, including dialect normalization (NB-Whisper).

Comparison with Alternatives

tmux / Zellij – session persistence pioneers, but organize by fixed panes, no GPU, no agent integration. Horizon's canvas + persistence upgrades tmux's core value (disconnect without loss) to a visual version.

iTerm2 / Warp tabs – single-window tab switching; work obscures each other. Fine for 1-2 sessions, breaks down with 5-6 parallel agents.

Wave Terminal – also modern terminal + AI, but uses block-based flow layout (output stacked in blocks). Horizon diverges on spatial model: Wave is "document flow," Horizon is "whiteboard."

Multiple terminal windows – free, but no grouping, no working indicators, no token usage summary, no browser handoff.

Selection logic is straightforward: if you run ≤2 agent sessions concurrently, don't bother; the system terminal suffices. Once you parallelize three or more, or need human-agent browser sharing, Horizon's canvas pays compounding dividends.

Who Should Try It

Multi-agent parallelists – core users commanding two or more coding agents; usage panel + working indicators hit the pain point directly.

Full-stack multi-repo workers – separate Backend/Frontend/DevOps workspaces, color-zoned, faster than Alt-Tab.

Remote developers – SSH config + Tailscale auto-discovery, manage remote machines as local panels.

Privacy-conscious users – local voice transcription, local session storage, no accounts, no cloud.

Note: created March 2026, 705 stars still early; Issues show some platform-specific rough edges (Windows/Linux distro differences). Prebuilt packages for macOS arm64/x64, Linux x64, Windows x64; install via brew install peters/horizon/horizon.

The terminal category lay dormant for years until AI agents multiplied the number of concurrent sessions a programmer runs by 3-4x, forcing terminal reinvention. Horizon's answer is spatial: work is no longer a list but a map you arrange yourself. This direction may not win, but it deserves a try from anyone drowning in tabs.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

AI agentsRustGPU accelerationdeveloper toolsterminalinfinite canvassession persistencemulti-agent workflow
Geek Labs
Written by

Geek Labs

Daily shares of interesting GitHub open-source projects. AI tools, automation gems, technical tutorials, open-source inspiration.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.