KittyClaw について
KittyClawは、AIエージェントによるソフトウェア作業を管理するローカル制御基盤です。ライブボード、確認可能な実行記録、人間によるリリース承認を備え、設定可能なパイプラインや複数のエージェントプロバイダーに対応しています。
主な機能
- 01設定可能なカンバンでチケットを管理
- 02エージェントの実行をストリーミング表示・確認
- 03検証の証拠を確認してリリースを承認
- 04プロセッサー、ルーティング、スケジュールタスクの設定
- 05プロジェクトと実行データのローカル保存
活用シーン
- 01ワークフローの各段階でチケットを追跡
- 02エージェントのコード変更と検証結果を確認
- 03外部リリース前に人間の承認を必須化
- 04MCPクライアントから実行やワークフローを管理
MCP 対応
オプションのStreamable HTTP MCPエンドポイント http://localhost:5230/mcp は、プロジェクト、チケット、受け入れ基準、ワークフロー、スケジュールタスク、エージェント実行、承認、worktree連携を管理するツールを公開します。既定では無効で、Settingsから有効にできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
KittyClaw
KittyClaw は、AI エージェントが実行するソフトウェア作業のためのローカルコントロールプレーンです。 ソフトウェアチケットを投入し、ライブボード上を移動する様子を眺め、コードを変更した実行を読み、その検証エビデンスを確認し、最終的なリリース判断を自分で下せます。
この製品は、1 つのジャーニーの中で 3 つのことを証明します。ライブボード、読める実行、そして外部リリース前の人間による検証です。新しいボードは Backlog、Todo、InProgress、Blocked、Scheduled、Review、Done から始まります(列は引き続きカスタマイズ可能です)。実行には Claude Code、OpenAI Codex、Grok Build、またはローカルの Ollama モデルを利用できます。
5 分間のガイド付きデモに従って、現実的なソフトウェアチケットでこのジャーニーを再現してみてください。併せて公開されているアクティベーションテストプロトコルは、条件を満たすトライアルユーザーが 10 分以内に最初の実行に到達できるかどうかを測定します。
プロジェクトは、名前を変更しても安定した同一性を保つ、独立して命名されたパイプラインに分割できます。列は、永続メモリを持つ汎用プロセッサ、再利用可能なプロジェクトスキル、順序付けられたチケット選択、耐久性のあるリトライ、および任意のパイプラインの列へのスイッチ的なルーティングを担うことができます。列を右クリックして Configure column を選択すると、ボードの視覚的なコンテキストを失うことなく、その名前、色、役割、位置、チケットガイダンス、プロセッサ、ルーティングを編集できます。Waiting または OwnerAction 列のチケットには、その説明とアクティビティの間に常に目立つコンテキストブロックが表示され、オーナーがコメントすべきか、チケットを特定の検証/拒否列へ移動すべきか、あるいは KittyClaw が自動的に再開するのかを説明します。列は、既存のレーンの間に挿入したり、カンバンから直接末尾に追加したりすることもできます。Workflows ページは引き続き、パイプラインとスキルの全体像を示す概要です。実行状態はビジネス上の列とは別であるため、InProgress 列は任意です。従来の AutomationEngine は、トリガーベースのルール、cron/インターバル作業、および後方互換性のために引き続き利用できます。エージェントは Claude Code、OpenAI Codex、Grok Build、Mistral Vibe、またはローカルの Ollama モデルを通じて実行され、その出力はアプリにストリーミングされます。
各プロセッサは、プロジェクトとともに
.agents/processors/column-<id>/processor.json でバージョン管理されます。この権威ある定義には、
そのミッション、明示的なプロンプト、モデル、スキル、チケットの順序、リトライポリシー、およびルーティングが含まれます。SQLite は
同期された実行時プロジェクションと実行状態のみを保持します。永続的なレッスンは、
.agents/processors/column-<id>/memory/MEMORY.md の定義の隣に存在します。
技術スタック
- .NET 10 / Blazor Server(インタラクティブ SSR)
- Entity Framework Core 経由の SQLite(プロジェクトごとに 1 つの DB)
- 自動生成された Markdown ドキュメント付きの OpenAPI
- エージェント実行: 少なくとも 1 つのサポート対象 CLI — Claude Code CLI、OpenAI Codex CLI、Grok Build、または Mistral Vibe。Ollama と DeepSeek V4 は Claude Code 経由でサポートされています。統合された エージェントプロバイダーインストールガイド を参照してください。
- リポジトリの初期化、Git を意識した自動化、およびエージェントのコミットには任意: Git
はじめに
前提条件
- .NET 10 SDK
PATH上に少なくとも 1 つのエージェント CLI: Claude Code (claude)、OpenAI Codex (codex)、Grok Build (grok)、または Mistral Vibe (vibe)。ローカルモデルおよび DeepSeek の実行は Claude Code をトランスポートとして使用します。DeepSeek はさらにプロジェクトのセキュアボールトにDEEPSEEK_API_KEYが必要です。- 任意: Git (
PATH上のgit)。リポジトリの初期化、Git を認識する自動化、およびエージェントによるコミットに使用します - 任意: Rust Token Killer (RTK) (
PATH上のrtk)。プロジェクトごとのシェル出力最適化を明示的に行うために使用します。KittyClaw はこれを自動的にインストールしたり設定したりすることはなく、オプトインした実行ではテレメトリを強制的に無効にします。
初回起動時、オンボーディングポップアップは、ディスパッチと同じ解決済み実行可能ファイルパスを使用して、Git とサポート対象の各プロバイダー CLI をチェックします: Claude Code (claude / KITTYCLAW_CLAUDE_BIN)、OpenAI Codex (codex / KITTYCLAW_CODEX_BIN)、Grok Build (grok、~/.grok/bin、または KITTYCLAW_GROK_BIN)、および Mistral Vibe (vibe / KITTYCLAW_MISTRAL_BIN)。また、任意の Ollama の可用性も報告します。エージェントプロバイダーは 1 つあれば十分で、失敗したプローブやタイムアウトしたプローブはブロックせず、Git に依存する機能には引き続き Git が必要です。
実行
リポジトリのルートから:
run.bat (Windows)
./run.sh (macOS / Linux)
どちらも dotnet watch --project KittyClaw.Web --non-interactive をラップし、ホットリロードを有効にして http://localhost:5230 でアプリを提供します。
プロジェクトの作成
ホームページから Create a project を選択し、名前を入力して、そのワークスペースを選択します。内蔵のフォルダーブラウザーは、ブラウザーの背後でネイティブのシステムダイアログを開くことなく、Windows、macOS、Linux で動作します。ホームディレクトリ、マウントされたドライブまたはファイルシステムのルート、パンくずリスト、親へのナビゲーション、および直接のパス入力が利用できます。絶対パスを入力して、フォルダーが存在しない場合に作成することもできます。
Initialize をクリックすると、次の処理が行われます:
- プロジェクトレジストリエントリ + プロジェクトごとの SQLite DB を作成します。
ProjectTemplate/からプロジェクトテンプレート (preamble.md、{agent}/SKILL.md、{agent}/memory/MEMORY.mdインデックス、memory-consolidation.md、automations.json、CLAUDE.md) をワークスペースにコピーします — エージェントファイルは<workspace>/.agents/配下に、CLAUDE.mdはワークスペースルートに配置されます。- ワークスペースがまだ git リポジトリでない場合、
git initを実行します (gitがインストールされていない場合はスキップされます)。 - テンプレートで見つかった各エージェントスラッグのメンバーを作成します。
- プロジェクトセットアップウィザードを開きます。
セットアップウィザードは既存のワークスペースを分析し、個別のパイプライン、カラム、人による引き継ぎ、プロセッサー、ルーティング、およびスケジュールを提案します。空のフォルダーの場合は、まずプロジェクトの目的、成果物、人による判断、および定期的な作業についていくつか質問します。提案はグラフィカルです: パイプラインを追加または削除し、各パイプラインのカラムを確認し、プロンプトでステップを調整し、承認前に戻ることができます。この準備中には何も作成されません。Create the workflow が承認された計画を適用して検証し、その後ボードを開きます。
この新規プロジェクトのセットアップは、レガシーボード移行ウィザードとは意図的に分離されています。移行の用語とレガシー自動化のクリーンアップは、既存の自動化ベースのボードを変換する必要がある場合にのみ表示されます。
ワークスペースフォルダー自体は、プロジェクトを削除しても KittyClaw によって削除されることはありません。
データストレージ
すべての KittyClaw データは %APPDATA%/KittyClaw/ にローカル保存されます:
registry.db— プロジェクトレジストリprojects/{slug}.db— プロジェクトごとのデータベース (チケット、コメント、ラベル、カラム、メンバー)uploads/— アップロードされた画像runs/{runId}.json— エージェント実行のスナップショット (イベント、ステータス、終了コード)settings.json— 言語 + オンボーディングフラグ
プロジェクトごとのエージェント状態は ワークスペース内 に存在します: <workspace>/.agents/{agent}/memory/ (スコア付き MEMORY.md インデックス + トピックごとのレッスンファイル)、<workspace>/.agents/channel/ (セッション状態) など。
プロジェクト構成
| パス | 説明 |
|---|---|
| KittyClaw.Core | ドメインモデル、EF Core コンテキスト、サービス、自動化エンジン、埋め込みプロジェクトテンプレート |
| KittyClaw.Core.Tests | xUnit テスト (条件、トリガー、シグナル、JSON ポリモーフィズム) |
| KittyClaw.Web | Blazor Server UI + REST API |
| KittyClaw.QaRunner | qa-tester エージェントが使用する分離テストインスタンスランチャー (Playwright + シナリオランナー) |
| KittyClaw.ClaudeMock | テストにおける閉鎖的なエージェントディスパッチのために KittyClaw.QaRunner が使用するモック claude CLI |
| ProjectTemplate/ | 新規プロジェクト初期化の信頼できる唯一の情報源。Agents/ 配下のファイルは <workspace>/.agents/ に書き込まれ、CLAUDE.md はワークスペースルートに書き込まれます。 |
| tools/ | リポジトリのヘルパー (例: 安定版チャネル向けに Web + QaRunner + ClaudeMock をバンドルする publish-stable.ps1) |
アーキテクチャ
機能ごとのアーキテクチャドキュメントは doc/ にあります。マルチパイプラインモデルについてはまず パイプラインとカラムの処理 を、アーキテクチャの全体像については doc/index.md を参照してください。
API
すべてのエンドポイントは /api 配下にあります。ドキュメントは稼働中の OpenAPI スペックから自動生成されます:
- 人間が読める Markdown:
GET http://localhost:5230/api/docs - 機械可読な JSON:
GET http://localhost:5230/openapi/v1.json
MCP サーバー
KittyClaw は http://localhost:5230/mcp (Streamable HTTP) に埋め込みの MCP エンドポイントを公開できるため、あらゆる MCP クライアントが REST API に触れることなくボードを操作できます — プロジェクトの一覧表示、チケットの作成と移動、コメント、ボードレイアウトの読み取りなどが可能です。ホームページから Settings を開いて MCP サーバーを有効にし、次のように Claude Code に接続します:
claude mcp add --transport http kittyclaw http://localhost:5230/mcp
v1 には 7 つのツールが同梱されています: list_projects、list_tickets、get_ticket、create_ticket、comment_ticket、move_ticket、board_overview。このエンドポイントはデフォルトで無効になっており、KittyClaw を再起動せずに切り替えられ、REST API と同じ localhost の信頼境界を使用します。詳細は doc/mcp.md にあります。
AI エージェント向け
このアプリは、AI エージェントが REST API を通じて操作することを前提に設計されています。はじめ方は次のとおりです:
- 稼働中の API ドキュメントを読む —
http://localhost:5230/api/docsには、すべてのエンドポイント、リクエスト/レスポンスの例、スキーマが常に稼働中のサーバーと同期した状態で掲載されています。 - 自分自身を識別する — すべての変更系エンドポイントで
authorが必須です。省略すると HTTP 400 が返されます。エージェント名をそのまま使用してください (例:"programmer"、"groomer")。人間のユーザーは"owner"です。 - ボードを把握する — まず
GET /api/projectsを呼び出し、次にGET /api/projects/{slug}/columnsでワークフローのステージを、GET /api/projects/{slug}/membersで割り当て可能なメンバーを確認します。 - 正しいステータスを使用する — チケットのステータスは既存のカラム名と一致している必要があります。チケットを移動する前にカラムを取得してください。
- 作業を記録する — チケットにコメントを追加して、何を行ったか、何が必要かを説明します。
@mentionsでメンバーに通知し、#idで同じプロジェクト内のチケットを参照し、#{slug}:{id}で別のプロジェクトのチケットを参照します。 - ラベルと優先度 —
GET /api/projects/{slug}/labelsで利用可能なラベルを確認し、優先度をIdea、NiceToHave、Required、Criticalのいずれかに設定します。 - メンションを確認する —
GET /api/projects/{slug}/mentions/{your-handle}を呼び出して、自分に言及しているチケットを探します。 - サブチケット — チケット作成時に
parentIdを設定すると子チケットになります。PUT /api/projects/{slug}/tickets/{id}/parentで親を変更し、DELETEで親から切り離します。サブチケットは?parentId={id}で一覧表示できます。 - プロジェクト間の転送 —
POST /api/projects/{slug}/tickets/{id}/transferは、転送先プロジェクトに互換性のあるカラム、担当者、ラベルがあることを確認してから使用してください。この操作はチケットツリーとその履歴を保持するか、どちらのプロジェクトも変更せずに転送を拒否します。詳しくは ロスレスなチケット転送 を参照してください。
規約
- 作成者形式: 人間のユーザーには
"owner"、AI エージェントにはプレーンなエージェント名(例:"programmer")を使用します - 優先度レベル:
Idea、NiceToHave、Required、Critical - デフォルト列:
Backlog
UI 機能
- 初回起動時のオンボーディングポップアップで、Git、Claude Code、OpenAI Codex、Grok Build、Mistral Vibe、Ollama をチェックします
- ルート、パンくずリスト、パスの直接入力、フォルダ作成を備えたクロスプラットフォームのアプリ内ワークスペースブラウザー
- ワークスペースを分析し、ワークフローを作成する前に編集可能なパイプラインと列を提案する、ガイド付きの新規プロジェクトセットアップ
- 完了したチケットを保持し、置き換えられた自動化を検証後にのみ廃止する、ガイド付きのレガシーボード移行
- プロジェクトカードとカンバンスイムレーンを備えた統合マルチプロジェクトホーム
- プロセッサのルーティングに基づいて許可されたドロップターゲットと禁止されたドロップターゲットを視覚的に区別するマルチパイプラインカンバン
- 構造、役割、担当者ガイダンス、プロセッサ、順序付きアクション、スケジュールタスク、ルーティングのためのコンテキスト依存の列エディター
- 自由にドラッグできるタイル(Markdown、KPI、グラフ、ヒートマップ、タイムラインなど)、AI チャットベースのタイル作成、LLM プロンプトによる自動更新を備えたカスタマイズ可能なダッシュボードビュー
- コメントとアクティビティタイムラインを備えたチケット詳細パネル
- ライブエージェント実行ドロワー(プロバイダー出力の SSE ストリーム、ステアリング+停止コントロール)
- エージェントにアドホックなプロンプトを送信するための新規指示チャットドロワー
@mention、#id、#{slug}:{id}のクロスプロジェクトチケット参照をサポートする Markdown レンダリング- 高度な検索構文:
#42、@owner、>date、priority:critical、label:bug、by:owner - 親子関係と進捗トラッキングを備えたサブチケット
- REST API を介したプロジェクト間のロスレスでアトミックなチケットツリートランスファー
- ボードから直接行う列管理(挿入、複製、並べ替え、設定、既読マーク)
- ラベルとメンバーの管理
- 説明とコメントへの画像アップロード
- ローカルモデルサポート(Ollama): プロジェクトごとのベース URL とモデルの自動検出、メンバーごとのデフォルトモデル、
.agents/automations.jsonでのアクションごとの設定 - Claude Code、OpenAI Codex、Grok Build、Mistral Vibe、または Ollama を介したプロバイダー対応のディスパッチ。会話の引き継ぎと利用不可モデルのフォールバックを備えています
- コンパクトなシェル出力のためのオプションのプロジェクトごとの RTK ガイダンス。範囲を限定した検出、テレメトリの強制オフ、生コマンドのフォールバックは変更なし
ダッシュボード
各プロジェクトには、カンバンボードと並んでカスタマイズ可能な ダッシュボード ビューがあります。タイルは自由にドラッグでき、スケジュールに従って自動更新され、アプリ内 AI チャットパネルから作成または編集できます — エージェントがタイルのフォルダーを代わりに作成します。
| テンプレート id | レンダリング内容 |
|---|---|
markdown | 自由形式の Markdown コンテンツ |
table | ヘッダーと行を持つ表形式データ |
kpi | ラベルと任意の増減値を伴う単一の大きな数値 |
kpi-grid | 複数の KPI カードのグリッド |
progress | 現在値 / 目標値を持つプログレスバー |
sparkline | コンパクトなインラインのトレンドライン |
bar-chart | 縦または横の棒グラフ |
donut | カテゴリ別構成比のドーナツ / 円グラフ |
gauge | 範囲が定められた値のためのラジアルゲージ |
status-grid | 色付きステータスピル(up/down/warn)のグリッド |
heatmap | 時間経過に伴う強度を表すカレンダー形式のヒートマップ |
leaderboard | スコア付きのランキングリスト |
timeline | イベントの時系列リスト |
image | 静的または更新される画像 |
mermaid | Mermaid ダイアグラム(フローチャート、シーケンスなど) |
フォルダレイアウト
各タイルは、プロジェクトワークスペース内の .dashboard/ 配下にある独自のフォルダに配置されます:
.dashboard/
<tile-slug>/
tile.yaml # template, title, refresh schedule, prompt
script.ps1 # optional refresh script (or script.sh, script.py, …)
output.json # last refresh output consumed by the template
tile.yaml の主要フィールド
template— 上記の表にある id のいずれか。title— タイルヘッダーに表示される表示名。refresh— 定期更新の間隔(例:5m、1h)。refreshAt— cron 形式の時刻指定更新(refreshの代替)。prompt—output.jsonを(再)生成するときにエージェントへ送信される指示。
タイルは、ダッシュボードの AI チャットパネルで希望する内容を説明することで作成できます — エージェントがテンプレートを選択し、tile.yaml を書き込み、更新スクリプトを生成し、初期の output.json を出力します。
コストレポート
Costs ページは、エージェントの使用状況をプロジェクトごとにキャッシュされたビューで提供するため、実行履歴が長い場合でもレポートをすぐに開くことができます。日付プリセットにより一般的な期間をすばやく選択でき、プロジェクト、パイプライン、モデルのフィルターは組み合わせて使用できます。パイプラインの選択肢は、選択されたプロジェクトに自動的に追従します。日次チャートでは、表示される凡例によって実測コストと推定コストを区別できます。
自動化モデル
- トリガー:
interval、ticketInColumn、statusChange、subTicketStatus、ticketCommentAdded、gitCommit、boardIdle、agentInactivity。 - 条件:
ticketInColumn、ticketCountInColumn、fieldLength、priority、labels、assignedTo、hasParent、allSubTicketsInStatus、ticketAge。 - アクション:
runAgent、moveTicketStatus、setLabels、assignTicket、addComment、consolidateAgentMemory、commitAgentMemory、executePowerShell、createTicket、httpRequest(アウトバウンド Webhook。allowLocalTargetsがない限り、ループバック / リンクローカルのターゲットはブロックされます)。 runAgent.agent/runAgent.concurrencyGroup内の{assignee}プレースホルダーは、発火したチケットのassignedToから解決されます。- 標準的な実行後のチェーン:
runAgent→consolidateAgentMemory(エージェントのmemory/インデックス + トピックファイルをキュレーションする集中的な claude パス)→commitAgentMemory(結果をコミット)。
テレメトリー
KittyClaw は、セルフホスト可能な分析サービス(Umami)に対して 1 日 1 回の匿名ハートビート を送信し、稼働中のインスタンス数と、実際に使われているバージョンを把握しています。ペイロードに含まれるフィールドはちょうど 3 つだけで、それ以外はありません。
- ランダムなインスタンス ID(初回起動時にローカルで生成される GUID — ユーザー、マシン、プロジェクトのデータとは一切結びついていません)
- KittyClaw のバージョン
- OS ファミリー(
Windows/macOS/Linux)
チケットの内容、プロジェクト名、ホスト名、利用状況の詳細が送信されることは一切ありません。送信に失敗しても通知はされず、アプリに影響を与えることもありません。開発中のインスタンスはテレメトリーを一切送信しません。
ライセンス
KittyClaw は AGPL-3.0-or-later の下でライセンスされています。セルフホストと個人利用は制限されません。変更版を配布したり、ネットワークサービスとして提供したりする場合は、同じライセンスの下でソースを公開する必要があります。
AGPL §7 に基づく追加条項(全文は NOTICE.md にあります): 派生作品は KittyClaw の帰属表示を維持 する必要があり(アプリ内の法的通知と、README における「based on KittyClaw」という記載)、その起源を偽って表示してはならず、KittyClaw の名称やロゴに関するいかなる権利も付与されません。
AGPL が 関与しない 2 つの事項(NOTICE.md を参照):
- あなたのプロジェクト: KittyClaw がワークスペースにコピーするテンプレートファイル(
.agents/、CLAUDE.mdなど)には、追加で MIT ライセンスが適用されます。また、アプリがあなたのために生成するすべてのもの(チケット、ログ、エージェントのコミットなど)はあなたのものであり、ライセンスはかかりません。KittyClaw でプロジェクトを管理しても、そのプロジェクトが AGPL の下に置かれることはありません。 - 過去のバージョン: v0.11 以前のバージョンは MIT の下でリリースされており、その条件の下で引き続き利用可能です。
その他のプロジェクトと連絡先
→ サイト + デモ: kittyclaw.dev
他のプロジェクトは ekioo.com でご覧ください。
X でもフォローできます: @DamienHOFFSCHIR
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。