GitHubにすら置かれていないコーディングエージェント「kaagum」──Guile言語・自前UIなし・ACP専用という徹底ぶり
「kaagum」(発音はkah-gum)は、Guileプログラミング言語で書かれた小型・セキュリティ重視のAIエージェント。公式ページによれば、ファイルシステムを扱うツール呼び出しはネットワークアクセス無しのコンテナで実行し、ネットワークが必要なツールは特定のハードコードされたエンドポイントにしかアクセスできない。自前のUIを持たず、Agent Client Protocol(ACP)だけを話す設計で、GitHubではなくSourcehut系の非中央集権的ホスティングで公開されている。

目次
コーディングエージェントの多くは、Python・TypeScript・Rustのいずれかで書かれ、GitHub上でホストされ、独自のCLIかチャットUIを持つ。「kaagum」(発音はkah-gum)は、この3つの前提すべてから外れる。Guile(GNU版のScheme処理系)で書かれ、GitHubではなくSourcehut系の非中央集権的ホスティングgit.systemreboot.netで公開され、自前のUIを一切持たない。
3行まとめ
- kaagumは、Guile言語で書かれた「最小限の依存関係」を謳う小型のセキュリティ重視AIエージェント。OpenAI互換APIを持つ任意のLLM(llama-cppによるローカルモデルを含む)と接続でき、ローカルモデルを使えばデータを一切外部に出さずに済む。
- ツール呼び出しは最小権限の原則に基づいて細かくサンドボックス化される。ファイルシステムを扱うツールはネットワークアクセスの無いコンテナで、必要なディレクトリだけにアクセスを制限して動く。ネットワークが必要なツール(GitHubやCodebergのissueを読むツール等)は、特定のハードコードされたエンドポイントにしかアクセスできない設計になっている。
- kaagumはUIを持たず、Agent Client Protocol(ACP)を話すことで任意の対応クライアントから使う設計。公式ページは「セキュリティ上の理由から、ACPクライアント側のファイル読み書き機能は一切使わない」と明記している。
最小権限を徹底したツール呼び出し
公式ページが強調しているのは、ツール呼び出しの隔離レベルの細かさだ。「ファイルシステムを扱うツール呼び出しは、ネットワークアクセスの無いコンテナで実行され、ファイルシステムへのアクセスも見る必要があるディレクトリだけに制限される。ネットワークアクセスが必要なツール呼び出しは、特定のハードコードされたエンドポイントへの問い合わせのみに制限される。たとえばソフトウェアフォージ(GitHubやCodebergなど)のissueを読むツールは、そのフォージの特定のAPIエンドポイントだけにしか問い合わせできず、それ以外には一切アクセスできない」。公式ページはこの粒度について「他のAIエージェントは、このレベルのきめ細かいネットワークアクセス制御を提供していない」と主張している。
UIを持たず、ACPだけを話す
kaagum自体にはチャット画面もCLIメニューも無い。代わりにAgent Client Protocol(ACP)を話し、以前紹介したようにZedやJetBrains系IDE、Emacsのagent-shellなど、ACP対応の任意のクライアントから使う設計になっている。公式ページはここでもセキュリティを優先し、「セキュリティ上の理由から、ACPクライアントのファイル読み書き機能は一切使われない」と明記している。ファイル操作は全てkaagum自身のサンドボックス経由で完結させ、クライアント側の権限に頼らない、という設計判断だと読める。
Guix + Emacsでの導入例
公式ページに載っている導入手順は、パッケージ管理システムGuixとEmacsを前提にしている。kaagumとemacs-agent-shell-kaagumパッケージをGuixからインストールし、~/.emacsに次のような設定を追加する。
(require 'agent-shell-kaagum)
(setq agent-shell-kaagum-command "kaagum"
agent-shell-kaagum-parameters
'("--api-key-command=pass openrouter.ai"
"--model=anthropic/claude-sonnet-4.6"))
(add-to-list 'agent-shell-agent-configs
(agent-shell-kaagum-make-agent-config))
--api-key-commandにはパスワードマネージャのコマンド(この例ではpass)を指定してAPIキーをその場で取得させ、画面には出さない設計になっている。--modelには利用したいモデル名を指定する(この例ではOpenRouter経由のanthropic/claude-sonnet-4.6)。作業ディレクトリに移動し、M-x agent-shellでkaagumを選ぶと起動する仕組みだ。
まだ「ブレインストーミング中」の項目も多い
公式ページには「Brainstorming future direction(今後の方向性の検討中項目)」という正直な見出しのセクションがあり、セッションの保存・復元、ツール呼び出しコンテナへの複数ディレクトリ共有、LLMレスポンスのストリーミング、ツール呼び出し出力のLLMへのストリーミング、トークン使用量のモニタリング、Guileで書けるカスタムツール、ツールの細粒度な有効/無効化、ツールごとのコンテナ/ネットワークアクセス設定、追加ツール(git clone・git diff・git log・guix build等)といった項目が、まだ実装されていない検討事項として列挙されていた。完成した製品というより、開発中のプロジェクトだと分かる書き方になっている。
開発者はArun Isaac氏、単独開発で今も活発にコミットが続いている
公式ページには開発者名の記載が無かったが、cgit(git.systemreboot.netが使うGitホスティングソフト)のコミットログを直接開くと、全コミットの作者が一貫して「Arun Isaac」であることが分かった。ドメインsystemreboot.net自体が本人の個人ブログで、自己紹介ページ(/about/me)には次のように書かれている。
I am Arun Isaac. I finished my PhD in Computational Science from the Indian Institute of Science. Software, lisp/scheme, electronics and amateur radio are among my interests.
(私はArun Isaacです。インド科学研究所(Indian Institute of Science)で計算科学の博士号を取得しました。ソフトウェア、lisp/scheme、電子工作、アマチュア無線が興味の対象です)
GitHubアカウント名も「arunisaac」と明記されており、コミットログ上の作者名と一致する。つまりkaagumは、組織やチームではなく個人開発者による単独プロジェクトだ。
コミットログを遡ると、2026年4月20日ごろから開発が続いており、v0.1.0タグは2026年5月24日に打たれている。この記事の確認時点(2026年8月31日)での最新コミットは9日前(2026年8月中旬)の「Simplify installation instructions to use Guix upstream」で、その直前の8月6〜7日には、Kagi検索/抽出ツールの追加、デフォルトモデルをanthropic/claude-opus-4.8に切り替える変更、HTTPエラー処理の改善など、1日に複数コミットが積まれる活発な期間があった。v0.1.0タグから3カ月以上経つが、次のタグ付きリリースはまだ出ていない。
| 時期 | 出来事(コミットログより) |
|---|---|
| 2026年4月20日ごろ | トークン使用量・セッションコストの計測機能を追加(この時点で既に開発が進んでいたことが確認できる最も古い記録) |
| 2026年5月24日 | v0.1.0タグ、READMEにContributing・Getting started節を追加 |
| 2026年7月22日 | トレーシング機能を追加 |
| 2026年8月6〜7日 | Kagi検索/抽出ツール追加、デフォルトモデルをanthropic/claude-opus-4.8に変更、エラー処理を改善 |
| 2026年8月中旬(9日前) | インストール手順をGuix upstream経由に簡略化(記事確認時点の最新コミット) |
名前の由来と、AI活用に対する開発者自身の距離感
公式ページの末尾には「Author's note on AI use(AI利用についての著者の note)」という項目があり、AIコーディングエージェントの開発者自身が、AIそのものに対してかなり距離を置いた立場を表明していた。
This program is not an endorsement of AI or its use. Please think for yourself, and use AI wisely (if at all). The societal, environmental and ethical consequences of AI are real, and I struggle with them myself. [...] Despite being an AI agent, all code in this project is lovingly hand-crafted. I wouldn't leave security to a stochastic machine like an LLM.
(このプログラムはAIやその利用を推奨するものではない。自分の頭で考え、賢く(そもそも使うとしても)AIを使ってほしい。AIがもたらす社会的・環境的・倫理的な帰結は現実のものであり、私自身もそれに苦悩している。〔中略〕AIエージェントでありながら、このプロジェクトの全コードは愛情を込めて手書きされている。セキュリティを、LLMのような確率的な機械任せにするつもりはない)
さらに「The Name(名前について)」という項目には、「kaagum」の由来も書かれていた。
kaagum (காகம்—pronounced kah-gum) means crow in Tamil. It also evokes kaa (கா), a verb that means to protect. Crows are intelligent birds, and kaagum protects you from reckless/malicious tool use by LLMs.
(kaagum(காகம், カーグムと発音)は、タミル語で「カラス」を意味する。「守る」という意味の動詞kaa(கா)も想起させる。カラスは知能の高い鳥であり、kaagumはLLMによる無謀・悪意のあるツール使用からユーザーを守る)
開発者の個人ブログsystemreboot.netには「Why I name my projects in Tamil(なぜ自分のプロジェクトにタミル語の名前を付けるのか)」という記事(2026年8月8日付)もあり、他のソフトウェアプロジェクトにも同様にタミル語由来の名前を付ける一貫した命名方針を持っていることがうかがえる。
GitHubではない場所で公開されている理由は書かれていない
公式ページのcontributingセクションによれば、issue報告やパッチの送付は「public inbox」宛てのメールで行う形式になっている。GitHub Issues・Pull Requestという今のエコシステムでは一般的な窓口を使わず、メーリングリスト形式のワークフローを採用している点も、Guile/GNUプロジェクトらしい選択だと感じた。なぜ開発者がGitHubではなくSourcehut系のセルフホストを選んだのか、その理由については公式ページに明示的な説明は見当たらなかった。
「スター数」に相当する指標はやはり無い
kaagumはGitHub上に無いため、GitHub的な「スター数」に相当する人気の定量指標は今回も見つけられなかった。git.systemreboot.netのcgitインターフェースからコミット履歴・タグ・作者名までは確認できたが、cgit自体にはウォッチャー数やイシュー数を示すダッシュボードが無く、issue報告が「public inbox」宛てのメール形式であることも影響してか、未解決issueの件数や議論の活発さを定量的に把握する手段は見当たらなかった。Guixパッケージとしての実際のダウンロード数、利用者コミュニティの規模も、公式ページ・開発者ブログの記述だけからは判断できない。
関連記事
出典・参照資料
AIニュースの解説を動画でも
YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →新しい記事をメールで受け取る
AIの新しい発表を、出典付きで整理して届けます。