by iAmCorey
A minimal modern terminal for AI coding experience — Sidebar workspaces; horizontal / vertical split panes; one-click agent launch; per-agent activity readout; live workspace state with one-click Node and branch switching.
# Add to your Claude Code skills
git clone https://github.com/iAmCorey/kookyLast scanned: 6/9/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-09T07:48:36.721Z",
"npmAuditRan": true,
"pipAuditRan": true
}kooky is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by iAmCorey. A minimal modern terminal for AI coding experience — Sidebar workspaces; horizontal / vertical split panes; one-click agent launch; per-agent activity readout; live workspace state with one-click Node and branch switching. It has 595 GitHub stars.
Yes. kooky 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/iAmCorey/kooky" and add it to your Claude Code skills directory (see the Installation section above).
kooky is primarily written in Swift. It is open-source under iAmCorey 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 kooky against similar tools.
No comments yet. Be the first to share your thoughts!
A minimal modern terminal for AI coding.

A minimal modern terminal built for AI coding. Sidebar workspaces; horizontal / vertical split panes; one-click agent launch; per-agent activity readout; live workspace state with one-click Node and branch switching. Open-source, MIT-licensed. No accounts, no telemetry; app state stays local. GPU rendering via libghostty.
Vertical tabs, split panes & windows. Sidebar workspaces with three-state collapse (⌘⌃S); drag the sidebar's right edge to widen it, and the width sticks per window. Each pane owns its own tab strip and active tab; split it right or down from the two buttons on its tab bar, or with ⌘D / ⌘⇧D. Rename a tab with ⌘R, a workspace with ⌘⇧R. ⌘⇧N opens another window. Drag a tab to reorder it, move it across panes, or drop it into a different window — the live session moves whole, scrollback and running process intact. State persists across launches; every open window is restored. Open any folder as a new workspace: drop it onto the sidebar from Finder, or use ⌘O. Press ⌘⇧E to zoom the active pane to fullscreen and back — the other panes slide off-screen but their processes keep running.

Tell your workspaces apart. Right-click a workspace and give it a colour — seven presets, or Custom Tag… for your own colour plus a name. It shows as a stripe down the left edge of the row, in both sidebar widths, and clicking the colour it already has clears it. Tags carry into the agent panel too, so every agent in one project reads as a group in a list otherwise sorted by who needs you first (switch that off under Settings → Appearance). Hovering a workspace shows its title, any #tag, which agents are running, and where it lives.
One-click AI agent sessions. Pick one from the + menu; the agent boots before your first prompt prints. All fifteen resume their conversation across kooky restarts using each CLI's exact session ID, so closing and reopening a tab picks up where you left off.
| Agent | Command | Waiting dot | Tool pill | Session history |
|---|---|---|---|---|
| Claude Code | claude |
✓ | ✓ | ✓ |
| Codex | codex |
✓ | ✗ | ✓ |
| Gemini CLI | gemini |
✓ | ✗ | ✓ |
| OpenCode | opencode |
✓ | ✗ | ✓ |
| Amp | amp |
✓ | ✗ | ✗ |
| Cursor CLI | cursor-agent |
✓ | ✗ | ✓ |
| Copilot CLI | copilot |
✓ | ✗ | ✓ |
| Grok Build | grok |
✗ | ✗ | ✓ |
| Antigravity CLI | agy |
✓ | ✗ | ✗ |
| Kimi Code | kimi |
✓ | ✗ | ✓ |
| Pi | pi |
✓ | ✓ | ✓ |
| Oh My Pi (new) | omp |
✓ | ✓ | ✓ |
| Reasonix (new) | reasonix |
✓ | ✓ | ✓ |
| Kiro CLI | kiro-cli |
✗ | ✗ | ✓ |
| Droid | droid |
✓ | ✗ | ✓ |
Waiting dot turns amber the moment the agent stops and needs an answer, including a pending tool approval; Grok Build and Kiro CLI expose no such signal, so their dot only reports running and finished. Tool pill shows the tool running right now in the pane status bar. Session history marks the agents whose past conversations can be browsed and resumed from the agent panel's history page — see below. Hide any agent you don't use under Settings → Agents.

Bring your own agent. Not on that list? Add it in Settings → Agents: a name and a command is enough to put it in the + menu and launch it like any other tab. Base it on a built-in agent and it also inherits that agent's launch binary, brand mark, and activity tracking — the sidebar dot is reported by the built-in's wrapper, so a standalone command runs fine but stays dark. Either way you can upload your own logo (PNG, JPEG, or SVG; 64×64 recommended), and it shows up on tabs, the sidebar, the agent panel, and Quick Open. Claude-based entries can carry their own environment variables, so a mirror or proxy endpoint becomes a real agent instead of a shell alias.
Git worktrees. Right-click any git workspace → "Create Worktree…" to spin one up on a new branch (or check out an existing one). Each worktree shows up nested under its source repo in the sidebar with its own tabs + agent — let Claude work on a feature branch without touching what's running on main. Worktrees you create from the command line show up automatically the next time you launch kooky.
SSH workspaces. File → New SSH Workspace… (or ⌘P) creates a workspace that lives on a remote machine: every new tab, split, and restored tab reconnects to the same host on its own. Agent tabs start their agent on the remote — with the remote's own shell setup loaded, so tools installed through nvm and friends are found. Paste a local file or screenshot and kooky uploads it first, then pastes a path the remote agent can actually open. Connections to the same host are shared: extra tabs attach instantly, and password-authenticated hosts work throughout, pasting included.
Keep-awake. Your Mac won't fall asleep under a working agent. A breathing status light in the top bar cycles three notches: Off; Auto — awake while an agent works or an SSH session is live, lid closed included (one-time admin authorization), asleep again the moment the work ends; and Always — a caffeinate you can see, awake until you switch it down. Flip sleep-disable anywhere else (sudo pmset, another tool) and the dial follows within seconds, in both directions.
Recent projects. kooky remembers every folder you open a workspace on — no setup, no manual adding. Reopen one from File → Open Recent, or press ⌘P and type the project's name: closed projects show up as "recent" entries and reopen with a single Enter. Deleted folders hide automatically, and worktree / SSH directories never clutter the list.
Right-click a selection → "Ask ". Select an error / log line / file path, right-click, pick any agent — a new tab spawns with the selection already submitted as the first prompt. Zero ⌘C / ⌘V to go from "what is this" to an actual answer.
Quick Open (⌘P). Fuzzy-search across every window's workspaces, tabs, agents, Terminal presets, and recent project folders from one floating panel. Type to filter, ↑↓ to navigate, Enter to jump or spawn. Triggers from ⌘P or the search pill in the top chrome.
Sidebar file tree. A toggle at the bottom of the sidebar swaps the workspace list for a file tree of the active workspace's folder. Expand directories, double-click to open a file, right-click for Reveal in Finder / Copy Path / Insert Path into Terminal (file rows also get Open) — or just drag a file or folder straight into the terminal to insert its escaped path, same as a Finder drag. Changed files show their +X −Y line counts (the same numbers the status bar totals), and a collapsed folder rolls up its subtree's changes. The tree follows the active tab's directory (worktree workspaces stay pinned to their worktree folder) and refreshes live as files change on disk.
Friction-free input. Selecting text copies it to the clipboard the moment you release the mouse — no ⌘C needed, on every machine regardless of your Ghostty config (turn it off under Settings → General → Clipboard). Hold ⌘ and click a local file path such as /path/file.swift:42 to open it in your preferred editor; web links can use a preferred browser (Settings → General → Open With). Click anywhere on the zsh prompt to move the shell cursor there (no modifier needed, same UX as ghostty.app). Drag a file or folder from Finder onto any pane to drop its escaped absolute path at the cursor.
Prompt composer (⌘L). A chat-style box rises from the bottom of the pane for writing a long, multi-line prompt without a stray Return firing it off mid-thought. Return sends it to the current agent (or shell), Shift+Return adds a newline, Esc cancels and keeps your draft. Open it with ⌘L or the compose button in the pane status bar.
Agent activity readout. Sidebar dot tracks each agent in real time — running (blue), waiting on you (amber), idle (none). Tab + workspace dots also turn red when the last command exited non-zero; hover for exit N · 12.4s. For the agents marked above, the pane status bar also shows the tool the agent is running right now (Bash / Edit / Read / etc.) and how long — click the pill for the full session history; failed calls turn red immediately. Toggle the pill per agent in Settings → Status Bar.
Works with zsh, bash, and fish. Manually-typed agent detection, cwd tracking, the status-bar slots, and one-click agent launch behave the same across all three shells — and keep working even alongside shell autocomplete tools like Fig / Amazon Q / kiro.
Notifications. When an agent in a tab you're not looking at starts waiting on you, or a command there fails, kooky posts a macOS notification — turn each kind on or off in Settings → Notifications. A bell in the top bar (⇧⌘I) keeps a running inbox of those alerts across every window — who's waiting, what failed, what finished — with a red dot when something's unread. Click an entry to jump straight to that tab; switching