Access
Install
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdinVendor-official, but review any script before piping it to a shell.
Showcase


Try itExperimental
See what an agent can do with kitty before you ever sign up. Pick a story: recorded sessions replay real probe-harness transcripts; sandboxed self-drive sessions are designed and gated (docs/TRY-IT.md).
$kitty --versionrecorded session — replayed, not liveVerified integrations
No integration evidence found in our corpus for this product yet — that means none was found, never that it doesn’t integrate.
By theme — the product's score on each story themeBy theme
Agenticness — how well agents can access and operate the productAgenticnessevidence →
How well agents can access and operate the product
Ai assistance — stories about ai assistance in this arenaAi assistanceevidence →
Stories about ai assistance in this arena
Automation depth — how much of the product can run unattendedAutomation depthevidence →
How much of the product can run unattended
Config theming — stories about config theming in this arenaConfig themingevidence →
Stories about config theming in this arena
Openness — open source, data portability, and self-hosting storiesOpennessevidence →
Open source, data portability, and self-hosting stories
Panes multiplexing — stories about panes multiplexing in this arenaPanes multiplexingevidence →
Stories about panes multiplexing in this arena
Performance rendering — stories about performance rendering in this arenaPerformance renderingevidence →
Stories about performance rendering in this arena
Privacy posture — data-handling and privacy storiesPrivacy postureevidence →
Data-handling and privacy stories
Protocols media — stories about protocols media in this arenaProtocols mediaevidence →
Stories about protocols media in this arena
Remote ssh — stories about remote ssh in this arenaRemote sshevidence →
Stories about remote ssh in this arena
Scriptability control — stories about scriptability control in this arenaScriptability controlevidence →
Stories about scriptability control in this arena
Shell integration — stories about shell integration in this arenaShell integrationevidence →
Stories about shell integration in this arena
Workflow ergonomics — stories about workflow ergonomics in this arenaWorkflow ergonomicsevidence →
Stories about workflow ergonomics in this arena
Story verdicts — every judged story with its evidenceStory verdicts
Follow the green: where the map greys out is where kitty stops today. ✓ full · ~ partial · ! disputed · — none · n/a not applicable.
Agenticness — how well agents can access and operate the productAgenticness
How well agents can access and operate the product
API surface
Drive the product through a documented public API
✓9/10
unlocks → Webhooks · Scoped API keys · MCP server · Machine-readable spec · Versioning policy
Subscribe to events via webhooks
—–
Build against official SDKs
n/an/a
Issue scoped/least-privilege API credentials for an agent
—–
Connect an agent via an official MCP server
—–
Download a machine-readable API spec (OpenAPI or equivalent)
—0/10
Rely on versioned APIs with a documented deprecation policy
—0/10
Test against a sandbox environment without touching production data
n/an/a
Explore an interactive API reference with runnable examples
—0/10
Docs for agents
Point an agent at llms.txt or agent-oriented docs
—0/10
Agentic features
Delegate tasks to a built-in AI assistant inside the product
n/an/a
Operate the product with natural-language commands
n/an/a
Plug MCP servers into this product so it can use their tools
—–
Get AI-generated insights and suggestions from my data inside the product
n/an/a
Set up automations that run autonomously in the background
—–
Ai assistance — stories about ai assistance in this arenaAi assistance
Stories about ai assistance in this arena
Automation depth — how much of the product can run unattendedAutomation depth
How much of the product can run unattended
Config theming — stories about config theming in this arenaConfig theming
Stories about config theming in this arena
Openness — open source, data portability, and self-hosting storiesOpenness
Open source, data portability, and self-hosting stories
Panes multiplexing — stories about panes multiplexing in this arenaPanes multiplexing
Stories about panes multiplexing in this arena
Performance rendering — stories about performance rendering in this arenaPerformance rendering
Stories about performance rendering in this arena
Privacy posture — data-handling and privacy storiesPrivacy posture
Data-handling and privacy stories
Protocols media — stories about protocols media in this arenaProtocols media
Stories about protocols media in this arena
Remote ssh — stories about remote ssh in this arenaRemote ssh
Stories about remote ssh in this arena
Scriptability control — stories about scriptability control in this arenaScriptability control
Stories about scriptability control in this arena
Let a coding agent programmatically drive the terminal itself — create panes, run commands, read output — through a documented control protocol or API
✓10/10
Extend the terminal with scripts or plugins in a real language (Lua, Python, kittens) beyond built-in options
✓9/10
Define startup sessions and window layouts in config or scripts so a project workspace opens in one command
✓9/10
Script and control the terminal from the command line — open windows, send text, query state — via a documented CLI or IPC interface
✓10/10
Shell integration — stories about shell integration in this arenaShell integration
Stories about shell integration in this arena
Workflow ergonomics — stories about workflow ergonomics in this arenaWorkflow ergonomics
Stories about workflow ergonomics in this arena
Sorted by importance (agentic first) (high → low) · 54/54 stories · click a row’s chevron for the rationale and evidence
Drive the product through a documented public API G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | full | 9/10 | Tprobed | |
Connect an agent via an official MCP server G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | none | untested | none yet | |
Delegate tasks to a built-in AI assistant inside the product G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | n/a | untested | none yet | |
Plug MCP servers into this product so it can use their tools G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | none | untested | none yet | |
Use an official CLI G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | full | 9/10 | Tprobed | |
Run the product headlessly / in CI for automation G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | partial | 7/10 | Tprobed | |
Download a machine-readable API spec (OpenAPI or equivalent) G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Explore an interactive API reference with runnable examples G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Point an agent at llms.txt or agent-oriented docs G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Rely on versioned APIs with a documented deprecation policy G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Build against official SDKs G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | n/a | untested | none yet | |
Get AI-generated insights and suggestions from my data inside the product G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | n/a | untested | none yet | |
Issue scoped/least-privilege API credentials for an agent G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | untested | none yet | |
Operate the product with natural-language commands G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | n/a | untested | none yet | |
Set up automations that run autonomously in the background G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | untested | none yet | |
Subscribe to events via webhooks G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | untested | none yet | |
Test against a sandbox environment without touching production data G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 1 | n/a | untested | none yet | |
Let a coding agent programmatically drive the terminal itself — create panes, run commands, read output — through a documented control protocol or API C Agent control | ai-native user | Scriptability control — stories about scriptability control in this arenaScriptability control | 3 | full | 10/10 | Tprobed | |
Script and control the terminal from the command line — open windows, send text, query state — via a documented CLI or IPC interface C Remote control | developer | Scriptability control — stories about scriptability control in this arenaScriptability control | 3 | full | 10/10 | Tprobed | |
Keep the terminal's full configuration as plain-text files in my dotfiles and sync it across machines C Dotfiles | power-user | Config theming — stories about config theming in this arenaConfig theming | 3 | full | 9/10 | Xcommunity | |
Split windows into panes and organize work across tabs without an external multiplexer C Multiplexing | developer | Panes multiplexing — stories about panes multiplexing in this arenaPanes multiplexing | 3 | full | 9/10 | Xcommunity | |
Export all of my data in open formats and leave G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 3 | partial | 5/10 | Tprobed | |
Rely on GPU-accelerated rendering that stays fast and responsive under heavy output C Rendering | developer | Performance rendering — stories about performance rendering in this arenaPerformance rendering | 3 | disputed | 5/10 | Dcontradicted | |
Define rules that trigger actions automatically on events G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 3 | none | untested | none yet | |
Delegate terminal tasks to a built-in AI agent that plans and executes commands with my approval C Ai agent | ai-native user | Ai assistance — stories about ai assistance in this arenaAi assistance | 3 | none | untested | none yet | |
Prevent my data from being used to train AI models G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 3 | n/a | untested | none yet | |
Self-host the core product G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 3 | none | untested | none yet | |
Define startup sessions and window layouts in config or scripts so a project workspace opens in one command C Layouts | power-user | Scriptability control — stories about scriptability control in this arenaScriptability control | 2 | full | 9/10 | Tprobed | |
Display inline images and rich graphics via a documented terminal graphics protocol C Graphics | developer | Protocols media — stories about protocols media in this arenaProtocols media | 2 | full | 9/10 | Xcommunity | |
Extend the terminal with scripts or plugins in a real language (Lua, Python, kittens) beyond built-in options C Extensibility | developer | Scriptability control — stories about scriptability control in this arenaScriptability control | 2 | full | 9/10 | Tprobed | |
Apply color schemes and themes, including automatic light/dark mode switching C Theming | power-user | Config theming — stories about config theming in this arenaConfig theming | 2 | full | 8/10 | Cclaimed | |
Jump between prompts and command marks in my scrollback thanks to shell integration C Marks | developer | Shell integration — stories about shell integration in this arenaShell integration | 2 | full | 8/10 | Cclaimed | |
Run the same terminal with the same config on macOS, Linux, and Windows C Platforms | developer | Protocols media — stories about protocols media in this arenaProtocols media | 2 | full | 8/10 | Xcommunity | |
SSH to remote hosts with the terminal's own integration carrying my terminfo, shell integration, and config along C Ssh | developer | Remote ssh — stories about remote ssh in this arenaRemote ssh | 2 | full | 8/10 | Xcommunity | |
Use programming fonts with ligatures, fallback fonts, and fine-grained font tuning C Fonts | developer | Config theming — stories about config theming in this arenaConfig theming | 2 | full | 8/10 | Xcommunity | |
Do everything through the API that I can do in the UI G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 2 | partial | 7/10 | Tprobed | |
Use tmux inside the terminal, or a documented native tmux integration/control mode C Tmux | developer | Remote ssh — stories about remote ssh in this arenaRemote ssh | 2 | partial | 6/10 | Xcommunity | |
Perform bulk operations across many items at once G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 2 | partial | 5/10 | Tprobed | |
Search my scrollback quickly and jump between matches C Scrollback | developer | Workflow ergonomics — stories about workflow ergonomics in this arenaWorkflow ergonomics | 2 | partial | 5/10 | Cclaimed | |
I get command-aware features from shell integration, like exit status, duration, and notifications when long commands finish C Command tracking | developer | Shell integration — stories about shell integration in this arenaShell integration | 2 | partial | 4/10 | Cclaimed | |
Open URLs and file paths from output by clicking them or selecting them from the keyboard C Hyperlinks | developer | Workflow ergonomics — stories about workflow ergonomics in this arenaWorkflow ergonomics | 2 | partial | 4/10 | Cclaimed | |
Restore my windows, tabs, and working directories after a restart or crash C Sessions | developer | Panes multiplexing — stories about panes multiplexing in this arenaPanes multiplexing | 2 | partial | 3/10 | Cclaimed | |
See published benchmarks or measured latency/throughput numbers backing the terminal's performance claims C Benchmarks | power-user | Performance rendering — stories about performance rendering in this arenaPerformance rendering | 2 | partial | 3/10 | Xcommunity | |
Opt out of telemetry and usage tracking G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 2 | none | 0/10 | ||
Choose where my data is stored (region/residency) G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 2 | n/a | untested | none yet | |
Control data retention and deletion G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 2 | n/a | untested | none yet | |
Get AI explanations and suggested fixes when a command fails C Ai commands | ai-native user | Ai assistance — stories about ai assistance in this arenaAi assistance | 2 | n/a | untested | none yet | |
Read the product's source under an open license G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 2 | none | untested | none yet | |
Schedule recurring jobs or workflows G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 2 | none | untested | none yet | |
Type natural language and get the right shell command generated in place C Ai commands | ai-native user | Ai assistance — stories about ai assistance in this arenaAi assistance | 2 | n/a | untested | none yet | |
Use or fully disable AI features with clear control over what session data leaves my machine, without a forced login C Ai privacy | ai-native user | Ai assistance — stories about ai assistance in this arenaAi assistance | 2 | none | untested | none yet | |
Discover and run terminal actions from a searchable command palette C Discoverability | power-user | Workflow ergonomics — stories about workflow ergonomics in this arenaWorkflow ergonomics | 1 | none | untested | none yet | |
Summon the terminal instantly with a global hotkey or quake-style dropdown window C Quick access | power-user | Panes multiplexing — stories about panes multiplexing in this arenaPanes multiplexing | 1 | none | untested | none yet | |
Version, review, and roll back my automations G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 1 | none | untested | none yet |
Opportunities — the stories that would move this product's scores, from its own judged verdictsOpportunitiestop 8 of 29 stories with headroom
What would move kitty’s scores — derived from its own judged verdicts, biggest headroom first. Each line quotes what the judge found missing; shipping it (or evidencing it publicly) is the fix.
Agenticness — how well agents can access and operate the productPlug MCP servers into this product so it can use their tools
nonemoves agent-readyimpact 45
The axis applies to terminal emulators as a kind (peer products hold positive or none verdicts on this story), so lack of evidence for an applicable capability is "none", never "na".
Agenticness — how well agents can access and operate the productConnect an agent via an official MCP server
nonemoves agent-readyimpact 45
This product is not itself an agent, so publishing an official MCP server is plausible and the axis applies; no first-party MCP server appears in the evidence.
Automation depth — how much of the product can run unattendedDefine rules that trigger actions automatically on events
nonemoves PA Scoreimpact 30
Missing: any documented 'on-event' hook/watcher/trigger mechanism and evidence of automatic action execution tied to specific events.
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
nonemoves PA Scoreimpact 30
The axis applies to terminal emulators as a kind (peer products hold positive or none verdicts on this story), so lack of evidence for an applicable capability is "none", never "na".
Openness — open source, data portability, and self-hosting storiesSelf-host the core product
nonemoves PA Scoreimpact 30
The axis applies to terminal emulators as a kind (peer products hold positive or none verdicts on this story), so lack of evidence for an applicable capability is "none", never "na".
Agenticness — how well agents can access and operate the productPoint an agent at llms.txt or agent-oriented docs
nonemoves agent-readyimpact 30
Probes explicitly show no llms.txt (404), no markdown-flavored docs endpoint, and no OpenAPI/agent-discovery spec; all documentation is standard human-oriented HTML with no agent-oriented onboarding artifact for pointing an AI agent at.
Agenticness — how well agents can access and operate the productSet up automations that run autonomously in the background
nonemoves Built-in AIimpact 30
The axis applies to terminal emulators as a kind (peer products hold positive or none verdicts on this story), so lack of evidence for an applicable capability is "none", never "na".
Agenticness — how well agents can access and operate the productIssue scoped/least-privilege API credentials for an agent
nonemoves agent-readyimpact 30
kitty's remote-control feature allows scripts to control the terminal, but there is no evidence of scoped or least-privilege credential issuance — the remote control model uses a single unix socket/password with allow/deny options, not per-agent scoped API keys or tokens.
Showing the top 8 of 29 — every none/partial verdict in the story verdicts table is headroom.
Think a verdict is wrong? Every verdicts-table row has a Flag link — see the methodology.
Coverage map — which docs area, API section, or community source covers which judged storiesCoverage map3 surfaces · 25 covered stories
Where the cited evidence behind each covered verdict came from — the same citations the verdicts table shows, no extra judging.
Kitty docs24 stories
- Run the product headlessly / in CI for automation
- Use an official CLI
- Drive the product through a documented public API
- Perform bulk operations across many items at once
- Keep the terminal's full configuration as plain-text files in my dotfiles and sync it across machines
- Use programming fonts with ligatures, fallback fonts, and fine-grained font tuning
- Apply color schemes and themes, including automatic light/dark mode switching
- Do everything through the API that I can do in the UI
- Export all of my data in open formats and leave
- Split windows into panes and organize work across tabs without an external multiplexer
- Restore my windows, tabs, and working directories after a restart or crash
- Rely on GPU-accelerated rendering that stays fast and responsive under heavy output
- Display inline images and rich graphics via a documented terminal graphics protocol
- Run the same terminal with the same config on macOS, Linux, and Windows
- SSH to remote hosts with the terminal's own integration carrying my terminfo, shell integration, and config along
- Use tmux inside the terminal, or a documented native tmux integration/control mode
- Let a coding agent programmatically drive the terminal itself — create panes, run commands, read output — through a documented control protocol or API
- Extend the terminal with scripts or plugins in a real language (Lua, Python, kittens) beyond built-in options
- Define startup sessions and window layouts in config or scripts so a project workspace opens in one command
- Script and control the terminal from the command line — open windows, send text, query state — via a documented CLI or IPC interface
- I get command-aware features from shell integration, like exit status, duration, and notifications when long commands finish
- Jump between prompts and command marks in my scrollback thanks to shell integration
- Open URLs and file paths from output by clicking them or selecting them from the keyboard
- Search my scrollback quickly and jump between matches
Hacker News9 stories
- Keep the terminal's full configuration as plain-text files in my dotfiles and sync it across machines
- Use programming fonts with ligatures, fallback fonts, and fine-grained font tuning
- Split windows into panes and organize work across tabs without an external multiplexer
- See published benchmarks or measured latency/throughput numbers backing the terminal's performance claims
- Rely on GPU-accelerated rendering that stays fast and responsive under heavy output
- Display inline images and rich graphics via a documented terminal graphics protocol
- Run the same terminal with the same config on macOS, Linux, and Windows
- SSH to remote hosts with the terminal's own integration carrying my terminfo, shell integration, and config along
- Use tmux inside the terminal, or a documented native tmux integration/control mode
Probe proofs — replayable recordings from the probe harnessProbe proofs
Replayable recordings from our probe harness — see the Prove-It protocol to submit one.
$kitty --versionreproduced$ kitty --version kitty 0.48.2 created by Kovid Goyal
$kitten @ --helpreproduced$ kitten @ --help
Usage: kitten @ [global options] [sub-command] [sub-command options] [sub-command args]
Control kitty by sending it commands. Set the allow_remote_control option in
kitty.conf for this to work. When run without any sub-commands this will start
an interactive shell to control kitty.
Commands:
action
Run the specified mappable action
close-tab
Close the specified tabs
close-window
Close the specified windows
create-marker
Create a marker that highlights specified text
detach-tab
Detach the specified tabs and place them in a different/new OS window
detach-window
Detach the specified windows and place them in a different/new tab
disable-ligatures
Control ligature rendering
env
Change environment variables seen by future children
focus-tab
Focus the specified tab
focus-window
Focus the specified window
get-colors
Get terminal colors
get-text
Get text from the specified window
goto-layout
Set the window layout
kitten
Run a kitten
last-used-layout
Switch to the last used layout
launch
Run an arbitrary process in a new window/tab
load-config
(Re)load a config file
ls
List tabs/windows
new-window
Open new window
remove-marker
Remove the currently set marker, if any.
resize-os-window
Resize/show/hide/etc. the specified OS Windows
resize-window
Resize the specified windows
run
Run a program on the computer in which kitty is running and get the output
scroll-window
Scroll the specified windows
select-window
Visually select a window in the specified tab
send-[redacted]
Send arbitrary [redacted] presses to the specified windows
send-text
Send arbitrary text to specified windows
set-background-image
Set the background image
set-background-opacity
Set the background opacity
set-colors
Set terminal colors
set-enabled-layouts
Set the enabled layouts in tabs
set-font-size
Set the font size in the active top-level OS window
set-spacing
Set window paddings and margins
set-tab-color
Change the color of the specified tabs in the tab bar
set-tab-title
Set the tab title
set-user-vars
Set user variables on a window
set-window-logo
Set the window logo
set-window-title
Set the window title
signal-child
Send a signal to the foreground process in the specified windows
Get help for an individual command by running:
kitten @ command -h
Global options:
--to
An address for the kitty instance to control. Corresponds to the address
given to the kitty instance via the --listen-on option or the listen_on
setting in kitty.conf. If not specified, the environment variable
KITTY_LISTEN_ON is checked. If that is also not found, messages are sent to
the controlling terminal for this process, i.e. they will only work if this
process is run within a kitty window.
--password
A password to use when contacting kitty. This will cause kitty to ask the
user for permission to perform the specified action, unless the password has
been accepted before or is pre-configured in kitty.conf. To use a blank
password specify --use-password as always.
--password-file [=rc-pass]
A file from which to read the password. Trailing whitespace is ignored.
Relative paths are resolved from the kitty configuration directory. Use - to
read from STDIN. Use fd:num to read from the file descriptor num. Used if no
--password is supplied. Defaults to checking for the rc-pass file in the
kitty configuration directory.
--password-env [=KITTY_RC_PASSWORD]
The name of an environment variable to read the password from. Used if no
--password-file is supplied. Defaults to checking the environment variable
KITTY_RC_PASSWORD.
--use-password [=if-available]
If no password is available, kitty will usually just send the remote control
command without a password. This option can be used to force it to always or
never use the supplied password. If set to always and no password is
provided, the blank password is used.
Choices: if-available, always, never
Options:
--help, -h [=no]
Show help for this command
kitten @ 0.48.2 created by Kovid Goyal
$kitty --detach -o allow_remote_control=socket-only --listen-on unix:/tmp/pa-kitty-probe && kitten @ --to unix:/tmp/pa-kitty-probe ls && kitten @ ... send-text "echo PA_PROBE_OK\n" && kitten @ ... get-text && kitten @ ... close-window --match allreproduced$ kitty --detach -o allow_remote_control=socket-only --listen-on unix:/tmp/pa-kitty-probe && kitten @ --to unix:/tmp/pa-kitty-probe ls && kitten @ ... send-text "echo PA_PROBE_OK\n" && kitten @ ... get-text && kitten @ ... close-window --match all
[
{
"active_tab_history": [],
"background_opacity": 1.0,
"id": 1,
"is_active": true,
"is_focused": false,
"last_focused": true,
"platform_window_id": 45448,
"tabs": [
{
"active_window_history": [
1
],
"enabled_layouts": [
"fat",
"grid",
"horizontal",
"splits",
"stack",
"tall",
"vertical"
],
"groups": [
{
"id": 1,
"windows": [
1
]
}
],
"id": 1,
"is_active": true,
"is_focused": false,
"layout": "fat",
"layout_opts": {
"bias": 50,
"full_size": 1,
"mirrored": "n"
},
"layout_state": {
"all_windows": {
"active_group_history": [
1
],
"active_group_idx": 0,
"window_groups": [
{
"id": 1,
"window_ids": [
1
]
}
]
},
"biased_map": {},
"class": "Fat",
"main_bias": [
0.5,
0.5
],
"opts": {
"bias": 50,
"full_size": 1,
"mirrored": "n"
}
},
"title": "\u2026/.claude/worktrees/agent-a1cb212b2713e2797",
"title_overridden": false,
"windows": [
{
"at_prompt": true,
"cmdline": [
"/bin/zsh"
],
"columns": 91,
"created_at": 1788549744199424000,
"cwd": "/Users/judegomila/Documents/GitHub/productarena/.claude/worktrees/agent-a1cb212b2713e2797",
"env": {
"COLORTERM": "truecolor",
"HOME": "/Users/judegomila",
"KITTY_INSTALLATION_DIR": "/Applications/kitty.app/Contents/Resources/kitty",
"KITTY_LISTEN_ON": "unix:/tmp/pa-kitty-probe",
"KITTY_PID": "68129",
"KITTY_PUBLIC_[redacted]": "1:1c1y3P|8V&e3q{yBJP2zk=sDVGstwKB(hV#UjwE*",
"KITTY_WINDOW_ID": "1",
"LANG": "en_US.UTF-8",
"MANPATH": "/Applications/kitty.app/Contents/Resources/man:",
"NODE_ENV": "production",
"PATH": "/Applications/kitty.app/Contents/MacOS:/Users/judegomila/Documents/GitHub/productarena/.claude/worktrees/agent-a1cb212b2713e2797/node_modules/.bin:/opt/homebrew/lib/node_modules/pnpm/dist/node-gyp-bin:/Users/judegomila/Documents/GitHub/productarena/.claude/worktrees/agent-a1cb212b2713e2797/node_modules/.bin:/Users/judegomila/.opencode/bin:/Users/judegomila/.local/bin:/Users/judegomila/.local/bin:/Users/judegomila/.elan/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/pkg/env/global/bin:/Library/TeX/texbin:/Users/judegomila/.cargo/bin:/Applications/Ghostty.app/Contents/MacOS:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/frontend-design/unknown/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/code-review/unknown/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/code-simplifier/1.0.0/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/superpowers/6.3.0/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/feature-dev/unknown/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/math-olympiad/unknown/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/hookify/unknown/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/session-report/unknown/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/claude-md-management/1.0.0/bin:/Users/judegomila/.claude/plugins/cache/claude-plugins-official/swift-lsp/1.0.0/bin",
"PWD": "/Users/judegomila/Documents/GitHub/productarena/.claude/worktrees/agent-a1cb212b2713e2797",
"SCRIPT": "/var/folders/y3/9hs_txjs2ng3w8q679fywqyh0000gn/T/pa-probe-record-xfOafl/kitty-remote-control-roundtrip.raw",
"SHLVL": "1",
"TERM": "xterm-kitty",
"TERMINFO": "/Applications/kitty.app/Contents/Resources/kitty/terminfo",
"WINDOWID": "45448",
"_": "/opt/homebrew/bin/kitty",
"__CF_USER_TEXT_ENCODING": "0x1F5:0x0:0x0"
},
"foreground_processes": [
{
"cmdline": [
"-zsh"
],
"cwd": "/Users/judegomila/Documents/GitHub/productarena/.claude/worktrees/agent-a1cb212b2713e2797",
"pid": 68137
}
],
"has_activity_since_last_focus": false,
"id": 1,
"in_alternate_screen": false,
"is_active": true,
"is_focused": false,
"is_self": false,
"last_cmd_exit_status": 0,
"last_focused_at": 0.561231,
"last_reported_cmdline": "",
"lines": 30,
"needs_attention": false,
"neighbors": {
"bottom": []
},
"pid": 68133,
"session_name": "",
"title": "\u2026/.claude/worktrees/agent-a1cb212b2713e2797",
"title_overridden": false,
"user_vars": {}
}
]
}
],
"wm_class": "kitty",
"wm_name": "kitty"
}
]
Last login: Fri Sep 4 12:21:21 on ttys054
judegomila@Judes-MBP agent-a1cb212b2713e2797 % echo PA_PROBE_OK
PA_PROBE_OK
judegomila@Judes-MBP agent-a1cb212b2713e2797 %
Claims vs evidence — vendor claims reconciled against independent verdictsClaims vs evidence
9 of 13 testable claims verified · 0 contradicted → integrity 69/100
18 distinct capability claims found in kitty’s own claimed-docs/GitHub materials, reconciled against our judge’s independent verdicts.
9
Verified
4
Unverified
0
Contradicted
11
Undersold
Verified (10)
“Can be controlled from scripts or the shell prompt to open windows, send text, and change titles”
Script and control the terminal from the command line — open windows, send text, query state — via a documented CLI or IPC interfacefullproof ↗
“Can be controlled from scripts or the shell prompt to open windows, send text, and change titles”
Let a coding agent programmatically drive the terminal itself — create panes, run commands, read output — through a documented control protocol or APIfullproof ↗
“Implements a terminal graphics protocol for rendering arbitrary pixel/raster graphics on screen”
Display inline images and rich graphics via a documented terminal graphics protocolfullproof ↗
“SSH kitten sets up remote shell integration, file transfer, connection reuse, and socket forwarding”
SSH to remote hosts with the terminal's own integration carrying my terminfo, shell integration, and config alongfullproof ↗
“Configuration is stored in a plain-text kitty.conf file”
Keep the terminal's full configuration as plain-text files in my dotfiles and sync it across machinesfullproof ↗
“Windows can be arranged into tabs, splits, and multiple layouts”
Split windows into panes and organize work across tabs without an external multiplexerfullproof ↗
“Extensible via 'kittens' written in Python”
Extend the terminal with scripts or plugins in a real language (Lua, Python, kittens) beyond built-in optionsfullproof ↗
“Supports changing fonts including ligatures and fallback configuration”
Use programming fonts with ligatures, fallback fonts, and fine-grained font tuningfullproof ↗
“Hints kitten's matching and actions can be completely customized”
Extend the terminal with scripts or plugins in a real language (Lua, Python, kittens) beyond built-in optionsfullproof ↗
“Supports startup sessions and programmable tabs/splits/layouts to define a working environment”
Define startup sessions and window layouts in config or scripts so a project workspace opens in one commandfullproof ↗
Unverified (6)
“Shell integration with zsh/fish/bash adds prompt jumping, output paging, and mouse cursor editing”
I get command-aware features from shell integration, like exit status, duration, and notifications when long commands finishpartialproof ↗
“Shell integration with zsh/fish/bash adds prompt jumping, output paging, and mouse cursor editing”
Jump between prompts and command marks in my scrollback thanks to shell integrationfullproof ↗
“Supports changing and customizing color themes”
Apply color schemes and themes, including automatic light/dark mode switchingfullproof ↗
“Hints kitten lets you select and act on URLs/paths/text from terminal output via keyboard”
Open URLs and file paths from output by clicking them or selecting them from the keyboardpartialproof ↗
“Supports wide-gamut color formats for richer color rendering”
Apply color schemes and themes, including automatic light/dark mode switchingfullproof ↗
“Can automatically switch color themes when the OS toggles light/dark mode”
Apply color schemes and themes, including automatic light/dark mode switchingfullproof ↗
Undersold (11)
Run the product headlessly / in CI for automationpartialproof ↗
Drive the product through a documented public APIfullproof ↗
Perform bulk operations across many items at oncepartialproof ↗
Do everything through the API that I can do in the UIpartialproof ↗
Export all of my data in open formats and leavepartialproof ↗
Restore my windows, tabs, and working directories after a restart or crashpartialproof ↗
See published benchmarks or measured latency/throughput numbers backing the terminal's performance claimspartialproof ↗
Run the same terminal with the same config on macOS, Linux, and Windowsfullproof ↗
Use tmux inside the terminal, or a documented native tmux integration/control modepartialproof ↗
Search my scrollback quickly and jump between matchespartialproof ↗
Claims outside our story set (4)
Real capability claims found in kitty’s own materials, but no story in this arena’s taxonomy covers them yet — that’s feedback on the taxonomy, not a mark against the product.
“Includes a kitty-diff kitten for side-by-side file diffing”
source ↗“Provides a Unicode input tool for entering arbitrary Unicode characters”
source ↗“Provides git integration (e.g. as a diff pager)”
source ↗“Documents the full set of mappable keyboard/action bindings for customization”
source ↗
Business model
Free, GPL-3.0 open source terminal by Kovid Goyal (of calibre fame); no company or paid tier, funded by user donations and sponsorship.
pricing ↗Score trend
How this product’s scores have moved as evidence and verdicts are re-derived — a point per change, not per day.
Try Experimental
Run it in the microterminal →Recorded agent sessions — and a live MCP handshake where the vendor ships one.
Flag
⚑ Flag a verdictThink a verdict is wrong? Opens a prefilled GitHub issue — or use the ⚑ next to any verdict above.
For agents
