Kooky:AI coding agent のために作り直された macOS terminal
AI coding agent が日常的な tool になると、terminal そのものが少し古く見えてくる。Shell が弱いからではない。実際の agent workflow では、複数の project、複数の branch、複数の Claude Code / Codex session を同時に開き、どの agent が動いていて、どの agent が tool approval で止まり、どの pane が失敗したのかを見続ける必要がある。Traditional terminal でも split、tab、tmux は使えるが、その process が agent なのか、どの conversation が人間を待っているのかまでは知らない。
今日見たいのは iAmCorey/kooky。この project は、自分を AI coding 向けの minimal modern terminal と位置づけている。Sidebar workspaces、horizontal / vertical split panes、one-click agent launch、per-agent activity readout、live workspace state、Node と Git branch の one-click switching を、ひとつの macOS desktop app に入れている。新しい model でも agent runtime でもない。複数の command-line agent を、ちゃんと管理できる terminal session にするための tool だ。
GitHub repository page、README、Releases、LICENSE、Git default branch history を 2026-08-03 時点で確認すると、iAmCorey/kooky は 604 stars、31 forks。主要言語は Swift、license は MIT。Git history で確認できる最初の public commit は 2026-05-08 08:19:28 UTC。Default branch main の現在の HEAD は 40238d6、commit time は 2026-08-03 09:45:24 UTC。最新 GitHub Release は v0.47.1、published time は 2026-08-03 09:46 UTC。Default branch は現在およそ 226 commits ある。
プロジェクト概要
| 項目 | 内容 |
|---|---|
| リポジトリ | iAmCorey/kooky |
| 位置づけ | AI coding agent 向け macOS terminal |
| Stars | 604 |
| Forks | 31 |
| 主要言語 | Swift |
| ライセンス | MIT |
| 最初の public Git commit | 2026-05-08 08:19:28 UTC |
| 現在の default branch commit | 40238d6、2026-08-03 09:45:24 UTC |
| 最新 GitHub Release | v0.47.1、2026-08-03 09:46 UTC |
| Commit 数 | 約 226 commits |
| キーワード | terminal、macOS、SwiftUI、AI agents、Codex、Claude Code、worktrees、local-first |
解いているのは「agent が増えた後どう見張るか」という問題
Claude Code、Codex、Gemini CLI、OpenCode のような tool には共通点がある。どれも一つの terminal pane の中で動くことを前提にしている。Single project ならそれで問題ない。しかし複数の agent を同時に走らせると、管理コストがすぐに出てくる。どの tab の agent がまだ動いているのか。どれが tool call の承認を待っているのか。どの command が non-zero exit したのか。どの workspace が別の branch に切り替わったのか。こうした情報が scrollback の中にだけあると、人間は頻繁に tab を見に行くことになる。
Kooky の価値はここにある。README にある agent panel、sidebar status dot、pane status bar、notification inbox、session history は、すべて「agent session を schedule する必要がある」という問題に向いている。Claude Code、Codex、Gemini CLI、OpenCode、Cursor CLI、Copilot CLI、Kimi Code など十数種類の command-line agent を launch menu に置き、その一部については native session id を読んで、tab を閉じて再び開いたときにも古い conversation を続けられるようにしている。
これは小さな UI detail に見えるが、日常利用では大きい。Agent work は単に output を流し続けるだけではない。よく「あなたの判断待ち」の状態に入る。Terminal が「running」と「waiting for you」を区別できれば、人間は無駄に何度も確認しなくてよい。複数の branch で二つ三つの agent を走らせると、この差はかなり効いてくる。
Workspace、split、worktree は飾りではない
Kooky の UI の中心は、見た目のよい tab だけではない。Workspace を first-class object として扱う。左側 sidebar は開いた project を覚え、recent projects、Quick Open、file tree、Finder からの folder drag を扱える。各 pane は自分の tab strip を持ち、horizontal / vertical に split でき、tab は pane や window をまたいで drag できる。Running process と scrollback もそのまま移動する。
AI coding では、Git worktree support が特に実用的だ。README が説明する flow では、Git workspace を右クリックして worktree を作り、新しい branch または既存 branch を選ぶと、その worktree が独立した workspace として現れる。これなら、一つの agent に feature branch で code を直させつつ、main workspace には service、logs、test command を残せる。Traditional terminal でも手作業なら可能だが、directory を作り、path を覚え、tab を開き直す必要がある。Kooky はその状態を同じ workspace model に入れる。
SSH workspace もある。Remote workspace を作ると、新しい tab、split、復元された tab が同じ host に接続し直す。Agent tab は remote 側で agent を起動し、local file や screenshot を paste すると先に upload して、remote agent が読める path を貼る。この設計は日常の debugging に向いている。Local で code を見て、remote で logs を見て、agent が remote 上で error を読む。その間の path copy のずれが減る。
Status bar がただの飾りではない
多くの terminal status bar は cwd や時刻を出すだけだが、Kooky の pane status bar は agent workflow にかなり近い。Git repo と branch、diff 行数、Python venv、Node version、proxy variables、SSH 時の user@host を表示できる。README では、Node や branch の pill をクリックして version / branch を切り替えたり、repo pill から GitHub を開いたり URL を copy したり Finder で表示したりできると説明している。
こうした情報は prompt に出すこともできる。しかし prompt は現在の shell output の一部でしかない。Agent が走り始めると、prompt は scrollback の中に流れていく。Pane の端に固定しておけば、agent output を見ている間も、どの repo、どの branch、どの Node environment にいるのか分かる。これは「agent が間違った branch で長時間作業した」を避けるうえで効く。
Failure state と waiting state も面白い。Kooky は agent が人間を待つと status dot の色を変え、command が non-zero exit すると tab と workspace の状態を red にする。macOS notification と global notification inbox もある。Terminal が passive window から、戻るべきタイミングを知らせる agent console に近づいている。
Local-first だが、platform boundary ははっきりしている
Kooky の README は、accounts なし、telemetry なし、app state は device local と明記している。Agent terminal としては自然な方向だ。Command-line agent 自体が code、environment variables、conversation history に触れる可能性があるので、外側の terminal が追加の cloud sync 面を持たないほうが扱いやすい。Rendering には libghostty を使い、全体は SwiftUI-native の macOS app だ。
一方で、制約も明確だ。第一に、現時点では macOS terminal であり、cross-platform terminal ではない。第二に、install package は adhoc-signed で、README には Gatekeeper が初回起動を止める可能性と、System Settings から Open Anyway する方法、または xattr で quarantine を外す方法が書かれている。普通の user には摩擦だが、early developer tool を試す人なら受け入れられる。ただし notarized distribution が完成した mature path ではないことは理解しておきたい。
第三に、Kooky は agent を整理して表示する tool であって、Claude Code、Codex、その他 CLI をインストールするわけではない。Model account も提供しない。Session resume、activity readout、tool pill が使えるかどうかは、その agent command と local session format に依存する。README の agent table でも、waiting state、tool pill、session history の対応は agent ごとに違う。
Security detail が思ったより多い
Terminal と agent を組み合わせると、copy / paste と remote session boundary が怖くなる。Kooky の README にはいくつか実用的な安全策がある。Multi-line paste がそのまま実行されそうな場合は confirmation と content preview を出す。Remote program が OSC 52 で clipboard を read / write しようとすると approval を求める。sudo や ssh password を入力している間は macOS secure keyboard input を有効にし、他の process が keystroke を監視できないようにする。
派手な機能ではないが、かなり現実的だ。AI coding では web page、issue、logs から command をコピーすることが多い。Multi-line snippet に curl ... | sh や改行後の危険な command が混じっていると、普通の terminal では paste した瞬間に実行されうる。Kooky はこれを user の注意だけに任せず、terminal 側で扱うべき問題として見ている。
Remote SSH workspace も同じだ。Local file や screenshot を paste すると先に upload し、remote path を貼る。これは便利機能に見えるが、agent が local path を受け取ったのに remote shell では読めない、というよくあるずれを避ける。Agent にとっては、「この path はどの machine で見えるのか」が人間以上に重要だ。
先に試すべき人
Codex や Claude Code をたまに一つだけ開く程度なら、普通の terminal と tmux で十分だ。Kooky が意味を持つのは、agent を parallel work unit として使い始めている場合だ。一つは bug fix、一つは test、一つは docs lookup、一つは remote logs。こうなると必要なのは tab の数ではなく、tab ごとの state、ownership、recoverability である。
macOS native app が好きな developer にも向いている。SwiftUI、system menu、IME、notifications、secure keyboard input、file drag、Finder / Open In integration は、Electron wrapper より desktop app に近い。一方、主戦場が Linux、Windows、remote tmux、pure keyboard TUI なら、現時点での Kooky の魅力は少し下がる。
もう一つ現実的な caveat がある。Project の更新は非常に速い。v0.47.1、226 commits、5 月に始まった public Git history という状態は、まだ急速に磨かれている段階を示している。Frequent release は active signal だが、configuration、UI、agent support matrix はまだ変わり続ける可能性がある。Team standard terminal として即採用するより、まず watchlist に入れて小さく試すのがよい。
まとめ
iAmCorey/kooky が面白いのは、より綺麗な terminal emulator を作っているところではない。Terminal の関心を「shell を表示する」から「agent session を管理する」へ移しているところだ。Claude Code、Codex、その他 CLI agent が同時に動くと、本当に足りなくなるのは state awareness である。誰が動いているのか、誰が待っているのか、誰が失敗したのか、誰がどの branch にいるのか、どの session を再開できるのか。
AI coding workflow がすでに parallel になっているなら、Kooky は watchlist に入れてよい。単独の button より参考になるのは、その判断だ。AI agent は普通の command ではない。人間の attention を管理するために、terminal 側の助けが必要になる。