Terminals arenaTerminals
Terminal emulators for developers who live in the shell, judged on rendering performance, multiplexing, config-as-code, shell and SSH integration, graphics protocols, and how deeply both humans and AI agents can script, drive, and extend the terminal itself.
54 user stories · 324 judged cells · updated 2026-09-16 · Evidence as of 2026-09-16
Leaderboard — every product ranked by evidenceLeaderboard
| 1 | free-tier vs iTerm2 ↗ | 65/100 | 83/100 | 23/100 | 36/100 | 62/100 | ★ 65k▲ 12.5k/yr | 14/37 verified · 1 disputed | 14/100 integrity | ||
| 2 | 17/100 | 35/100 | 0/100 | 14/100 | 38/100 | ★ 18k▲ 1.2k/yr | 17/33 verified · 4 disputed | 7/100 integrity | |||
| 3 | 25/100 | 0/100 | 0/100 | 40/100 | 13/100 | ★ 28.9k▲ 3.4k/yr | 17/24 verified · 3 disputed | 0/100 integrity | |||
| 4 | 28/100 | untested | 0/100 | 17/100 | 8/100 | ★ 34.9k▲ 3.5k/yr | 18/25 verified · 1 disputed | 69/100 integrity | |||
| 5 | 11/100 | 0/100 | untested | 20/100 | untested | ★ 65.7k▲ 6.2k/yr | 4/13 verified · 2 disputed | 0/100 integrity | |||
| 6 | 8/100 | 0/100 | 0/100 | 16/100 | 0/100 | ★ 61.1k▲ 13.7k/yr | 10/17 verified · 2 disputed | 50/100 integrity |
Best by user type — persona-weighted winnersBest by user type
Per persona, the product with the highest persona-weighted coverage over just that persona's stories — not the same ranking as the overall PA Score leaderboard above.
Story matrix — every product × every judged storyStory matrix
Agenticness — how well agents can access and operate the productAgenticness
Agent access
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productPoint an agent at llms.txt or agent-oriented docs | ai-native | fullT 9/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productRun the product headlessly / in CI for automation | ai-native | fullC 8/10 | none 0/10 | none 0/10 | none 0/10 | fullT 8/10 | partialT 7/10 |
| Agenticness — how well agents can access and operate the productPlug MCP servers into this product so it can use their tools | ai-native | fullC 9/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productConnect an agent via an official MCP server | ai-native | n/a | n/a | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productUse an official CLI | ai-native | fullC 8/10 | none 0/10 | partialT 4/10 | fullC 6/10 | fullT 8/10 | fullT 9/10 |
| Agenticness — how well agents can access and operate the productDrive the product through a documented public API | ai-native | fullT 8/10 | partialT 4/10 | fullT 8/10 | partialT 4/10 | partialT 6/10 | fullT 9/10 |
| Agenticness — how well agents can access and operate the productIssue scoped/least-privilege API credentials for an agent | ai-native | partialC 6/10 | n/a | none 0/10 | n/a | n/a | none 0/10 |
| Agenticness — how well agents can access and operate the productBuild against official SDKs | ai-native | partialT 3/10 | partialT 5/10 | partialT 6/10 | n/a | n/a | n/a |
| Agenticness — how well agents can access and operate the productSubscribe to events via webhooks | ai-native | partialC 4/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Agentic features
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productGet AI-generated insights and suggestions from my data inside the product | ai-native | fullC 8/10 | n/a | partialX 6/10 | n/a | n/a | n/a |
| Agenticness — how well agents can access and operate the productSet up automations that run autonomously in the background | ai-native | fullC 8/10 | none 0/10 | partialX 5/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDelegate tasks to a built-in AI assistant inside the product | ai-native | fullX 9/10 | n/a | partialX 6/10 | n/a | n/a | n/a |
| Agenticness — how well agents can access and operate the productOperate the product with natural-language commands | ai-native | fullC 8/10 | n/a | partialX 6/10 | n/a | n/a | n/a |
Api quality
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productExplore an interactive API reference with runnable examples | ai-native | none 0/10 | n/a | none 0/10 | n/a | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDownload a machine-readable API spec (OpenAPI or equivalent) | ai-native | fullT 8/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productTest against a sandbox environment without touching production data | ai-native | none 0/10 | n/a | n/a | n/a | n/a | n/a |
| Agenticness — how well agents can access and operate the productRely on versioned APIs with a documented deprecation policy | ai-native | none 0/10 | none 0/10 | none 0/10 | n/a | none 0/10 | none 0/10 |
Ai assistance — stories about ai assistance in this arenaAi assistance
Ai agent
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Ai assistance — stories about ai assistance in this arenaDelegate terminal tasks to a built-in AI agent that plans and executes commands with my approval | ai-native | fullX 9/10 | none 0/10 | partialX 5/10 | none 0/10 | none 0/10 | none 0/10 |
Ai commands
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Ai assistance — stories about ai assistance in this arenaGet AI explanations and suggested fixes when a command fails | ai-native | fullC 8/10 | n/a | partialC 5/10 | n/a | n/a | n/a |
| Ai assistance — stories about ai assistance in this arenaType natural language and get the right shell command generated in place | ai-native | fullC 9/10 | n/a | partialX 5/10 | n/a | n/a | n/a |
Ai privacy
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Ai assistance — stories about ai assistance in this arenaUse or fully disable AI features with clear control over what session data leaves my machine, without a forced login | ai-native | disputedD 4/10 | none 0/10 | disputedD 5/10 | none 0/10 | none 0/10 | none 0/10 |
Automation depth — how much of the product can run unattendedAutomation depth
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Automation depth — how much of the product can run unattendedPerform bulk operations across many items at once | ai-native | partialC 6/10 | n/a | partialC 5/10 | n/a | partialT 4/10 | partialT 5/10 |
| Automation depth — how much of the product can run unattendedDefine rules that trigger actions automatically on events | ai-native | fullC 8/10 | none 0/10 | fullC 8/10 | none 0/10 | partialT 3/10 | none 0/10 |
| Automation depth — how much of the product can run unattendedSchedule recurring jobs or workflows | ai-native | fullC 8/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Automation depth — how much of the product can run unattendedVersion, review, and roll back my automations | ai-native | partialC 4/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Config theming — stories about config theming in this arenaConfig theming
Dotfiles
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Config theming — stories about config theming in this arenaKeep the terminal's full configuration as plain-text files in my dotfiles and sync it across machines | power-user | partialC 4/10 | fullC 8/10 | none 0/10 | fullC 9/10 | fullX 9/10 | fullX 9/10 |
Fonts
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Config theming — stories about config theming in this arenaUse programming fonts with ligatures, fallback fonts, and fine-grained font tuning | developer | none 0/10 | fullX 9/10 | none 0/10 | none 0/10 | disputedD 6/10 | fullX 8/10 |
Theming
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Config theming — stories about config theming in this arenaApply color schemes and themes, including automatic light/dark mode switching | power-user | fullC 8/10 | fullX 9/10 | none 0/10 | partialC 3/10 | partialC 4/10 | fullC 8/10 |
Openness — open source, data portability, and self-hosting storiesOpenness
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Openness — open source, data portability, and self-hosting storiesDo everything through the API that I can do in the UI | ai-native | partialT 6/10 | disputedD 3/10 | partialT 6/10 | partialC 2/10 | partialT 6/10 | partialT 7/10 |
| Openness — open source, data portability, and self-hosting storiesExport all of my data in open formats and leave | ai-native | partialC 3/10 | partialT 4/10 | none 0/10 | none 0/10 | partialX 5/10 | partialT 5/10 |
| Openness — open source, data portability, and self-hosting storiesRead the product's source under an open license | ai-native | fullC 8/10 | partialC 6/10 | partialC 6/10 | fullC 9/10 | none 0/10 | none 0/10 |
| Openness — open source, data portability, and self-hosting storiesSelf-host the core product | ai-native | partialX 4/10 | none 0/10 | none 0/10 | none 0/10 | fullT 8/10 | none 0/10 |
Panes multiplexing — stories about panes multiplexing in this arenaPanes multiplexing
Multiplexing
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Panes multiplexing — stories about panes multiplexing in this arenaSplit windows into panes and organize work across tabs without an external multiplexer | developer | partialC 6/10 | fullC 8/10 | fullC 9/10 | none 0/10 | fullT 9/10 | fullX 9/10 |
Quick access
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Panes multiplexing — stories about panes multiplexing in this arenaSummon the terminal instantly with a global hotkey or quake-style dropdown window | power-user | none 0/10 | fullX 8/10 | fullC 9/10 | none 0/10 | none 0/10 | none 0/10 |
Sessions
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Panes multiplexing — stories about panes multiplexing in this arenaRestore my windows, tabs, and working directories after a restart or crash | developer | fullC 8/10 | none 0/10 | fullC 8/10 | none 0/10 | partialC 3/10 | partialC 3/10 |
Performance rendering — stories about performance rendering in this arenaPerformance rendering
Benchmarks
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Performance rendering — stories about performance rendering in this arenaSee published benchmarks or measured latency/throughput numbers backing the terminal's performance claims | power-user | none 0/10 | partialX 4/10 | none 0/10 | partialX 5/10 | none 0/10 | partialX 3/10 |
Rendering
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Performance rendering — stories about performance rendering in this arenaRely on GPU-accelerated rendering that stays fast and responsive under heavy output | developer | none 0/10 | disputedD 5/10 | none 0/10 | disputedD 5/10 | disputedD 4/10 | disputedD 5/10 |
Privacy posture — data-handling and privacy storiesPrivacy posture
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Privacy posture — data-handling and privacy storiesChoose where my data is stored (region/residency) | ai-native | none 0/10 | n/a | n/a | n/a | n/a | n/a |
| Privacy posture — data-handling and privacy storiesPrevent my data from being used to train AI models | ai-native | partialX 7/10 | n/a | disputedD 4/10 | n/a | n/a | n/a |
| Privacy posture — data-handling and privacy storiesControl data retention and deletion | ai-native | partialX 6/10 | n/a | disputedD 3/10 | n/a | n/a | n/a |
| Privacy posture — data-handling and privacy storiesOpt out of telemetry and usage tracking | ai-native | partialX 7/10 | none 0/10 | disputedD 5/10 | none 0/10 | none 0/10 | none 0/10 |
Protocols media — stories about protocols media in this arenaProtocols media
Graphics
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Protocols media — stories about protocols media in this arenaDisplay inline images and rich graphics via a documented terminal graphics protocol | developer | none 0/10 | fullC 8/10 | fullX 8/10 | none 0/10 | disputedD 6/10 | fullX 9/10 |
Platforms
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Protocols media — stories about protocols media in this arenaRun the same terminal with the same config on macOS, Linux, and Windows | developer | partialX 5/10 | partialC 4/10 | none 0/10 | disputedD 5/10 | fullX 8/10 | fullX 8/10 |
Remote ssh — stories about remote ssh in this arenaRemote ssh
Ssh
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Remote ssh — stories about remote ssh in this arenaSSH to remote hosts with the terminal's own integration carrying my terminfo, shell integration, and config along | developer | none 0/10 | none 0/10 | fullX 8/10 | none 0/10 | partialC 6/10 | fullX 8/10 |
Tmux
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Remote ssh — stories about remote ssh in this arenaUse tmux inside the terminal, or a documented native tmux integration/control mode | developer | none 0/10 | none 0/10 | fullC 9/10 | partialX 5/10 | partialT 6/10 | partialX 6/10 |
Scriptability control — stories about scriptability control in this arenaScriptability control
Agent control
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Scriptability control — stories about scriptability control in this arenaLet a coding agent programmatically drive the terminal itself — create panes, run commands, read output — through a documented control protocol or API | ai-native | partialT 6/10 | partialT 4/10 | fullX 8/10 | none 0/10 | fullT 9/10 | fullT 10/10 |
Extensibility
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Scriptability control — stories about scriptability control in this arenaExtend the terminal with scripts or plugins in a real language (Lua, Python, kittens) beyond built-in options | developer | none 0/10 | none 0/10 | fullX 8/10 | none 0/10 | partialX 6/10 | fullT 9/10 |
Layouts
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Scriptability control — stories about scriptability control in this arenaDefine startup sessions and window layouts in config or scripts so a project workspace opens in one command | power-user | none 0/10 | partialT 3/10 | fullX 8/10 | none 0/10 | fullT 7/10 | fullT 9/10 |
Remote control
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Scriptability control — stories about scriptability control in this arenaScript and control the terminal from the command line — open windows, send text, query state — via a documented CLI or IPC interface | developer | partialC 5/10 | partialT 4/10 | fullX 8/10 | partialT 5/10 | fullT 9/10 | fullT 10/10 |
Shell integration — stories about shell integration in this arenaShell integration
Command tracking
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Shell integration — stories about shell integration in this arenaI get command-aware features from shell integration, like exit status, duration, and notifications when long commands finish | developer | partialX 4/10 | none 0/10 | fullC 8/10 | none 0/10 | none 0/10 | partialC 4/10 |
Workflow ergonomics — stories about workflow ergonomics in this arenaWorkflow ergonomics
Discoverability
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Workflow ergonomics — stories about workflow ergonomics in this arenaDiscover and run terminal actions from a searchable command palette | power-user | partialC 5/10 | none 0/10 | partialC 4/10 | none 0/10 | none 0/10 | none 0/10 |
Hyperlinks
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Workflow ergonomics — stories about workflow ergonomics in this arenaOpen URLs and file paths from output by clicking them or selecting them from the keyboard | developer | none 0/10 | none 0/10 | fullX 9/10 | partialC 6/10 | partialC 4/10 | partialC 4/10 |
Adjacent arenas — categories often shopped togetherAdjacent arenas
Shopping this category often means shopping these too.