Skip to main content
Glama

KittyClaw

KittyClaw は、AI エージェントが行うソフトウェア作業のためのローカルコントロールプレーンです。 ソフトウェアのチケットを提出し、ライブボード上を移動する様子を確認し、コードを変更した実行記録を読み、その検証エビデンスを検査し、最終的なリリース判断を自分で下します。

この製品は、1つのジャーニーで3つのことを実証します: ライブボード読み取り可能な実行記録外部リリース前の人間による検証です。新しいボードは、BacklogTodoInProgressBlockedScheduledReviewDone から始まります(列はカスタマイズ可能なままです)。実行には Claude Code、OpenAI Codex、Grok Build、またはローカルの Ollama モデルを使用できます。

ガイド付き 5分デモ に従って、実際のソフトウェアチケットでそのジャーニーを再現してください。付属の アクティベーションテストプロトコル は、資格のあるトライアルユーザーが10分以内に最初の実行に到達できるかどうかを測定します。

プロジェクトは、名前の変更後も安定した ID を維持する、独立した名前付きパイプラインに分割できます。列は、永続メモリ、再利用可能なプロジェクトスキル、順序付けられたチケット選択、耐久性のあるリトライ、任意のパイプライン内の列へのスイッチのようなルーティングを備えた汎用プロセッサを所有できます。列を右クリックして 列の構成 を選択すると、ボードの視覚的なコンテキストを失うことなく、名前、色、ロール、位置、チケットガイダンス、プロセッサ、ルーティングを編集できます。Waiting または OwnerAction の列のチケットには、説明とアクティビティの間に常に目立つコンテキストブロックが表示され、オーナーがコメントするか、チケットを特定の検証/拒否列に移動する必要があるか、KittyClaw が自動的に再開するかを説明します。列は、既存のレーン間に挿入したり、かんばんボードから直接末尾に追加したりすることもできます。ワークフローページは、グローバルなパイプラインとスキルの概要のままです。実行状態はビジネス列から分離されているため、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)

  • SQLite (Entity Framework Core 経由、プロジェクトごとに1つの DB)

  • OpenAPI (自動生成の Markdown ドキュメント付き)

  • エージェント実行: サポートされている CLI が少なくとも1つ必要です — Claude Code CLIOpenAI Codex CLIGrok Build、または Mistral Vibe。ローカルモデルについては、Ollama も Claude Code CLI 経由でサポートされています (ローカルモデルのセットアップ)。

  • リポジトリの初期化、Git 対応の自動化、エージェントのコミットにオプションで必要: Git

はじめに

前提条件

  • .NET 10 SDK

  • PATH 上に少なくとも1つのエージェント CLI: Claude Code (claude)、OpenAI Codex (codex)、Grok Build (grok)、または Mistral Vibe (vibe)。ローカルモデルの実行には、Claude Code CLI と到達可能な Ollama サーバーの両方が必要です。

  • オプション: Git (PATH 上の git) — リポジトリの初期化、Git 対応の自動化、エージェントのコミット用

初回起動時に、オンボーディングポップアップは、ディスパッチと同じ解決済み実行可能パスを使用して、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 でアプリを提供します。

プロジェクトの作成

ホームページから プロジェクトを作成 を選択し、名前を入力して、ワークスペースを選択します。組み込みのフォルダーブラウザーは、ブラウザーの背後でネイティブのシステムダイアログを開くことなく、Windows、macOS、Linux で動作します。ホームディレクトリ、マウントされたドライブまたはファイルシステムのルート、パンくずリスト、親ナビゲーション、直接パス入力が利用できます。絶対パスを入力して、フォルダーが存在しない場合は作成することもできます。

初期化 をクリックすると、以下の処理が実行されます:

  1. プロジェクトレジストリエントリ + プロジェクトごとの SQLite DB を作成します。

  2. ProjectTemplate/ からプロジェクトテンプレート (preamble.md{agent}/SKILL.md{agent}/memory/MEMORY.md インデックス、memory-consolidation.mdautomations.jsonCLAUDE.md) をワークスペースにコピーします — エージェントファイルは <workspace>/.agents/ に、CLAUDE.md はワークスペースのルートに配置されます。

  3. ワークスペースがまだ git リポジトリでない場合は git init を実行します (git がインストールされていない場合はスキップされます)。

  4. テンプレートで見つかった各エージェントスラッグのメンバーを作成します。

  5. プロジェクトセットアップウィザードを開きます。

セットアップウィザードは、既存のワークスペースを分析し、個別のパイプライン、列、人間のハンドオフ、プロセッサ、ルーティング、スケジュールを提案します。空のフォルダーの場合は、最初にプロジェクトの目的、成果物、人間の判断、定期的な作業についていくつか質問します。提案はグラフィカルです。パイプラインを追加または削除したり、各パイプラインの列を確認したり、プロンプトでステップを調整したり、承認前に戻ったりできます。この準備中には何も作成されません。ワークフローを作成 は承認された計画を適用して検証し、その後ボードを開きます。

この新規プロジェクトのセットアップは、レガシーボード移行ウィザードとは意図的に分離されています。移行の用語とレガシーオートメーションのクリーンアップは、既存のオートメーションベースのボードを変換する必要がある場合にのみ表示されます。

ワークスペースフォルダー自体は、プロジェクトを削除した場合でも、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 は、埋め込み MCP エンドポイントを http://localhost:5230/mcp (Streamable HTTP) で公開できます。これにより、任意の MCP クライアントが REST API に触れることなくボードを操作できます — プロジェクトの一覧表示、チケットの作成と移動、コメント、ボードレイアウトの読み取り。KittyClaw を起動する前に KITTYCLAW_MCP_ENABLED=1 を設定し、次のように Claude Code に接続します:

claude mcp add --transport http kittyclaw http://localhost:5230/mcp

v1 には7つのツールが含まれています: list_projectslist_ticketsget_ticketcreate_ticketcomment_ticketmove_ticketboard_overview。エンドポイントはデフォルトで無効になっており、REST API と同じ localhost トラスト境界を使用します。詳細は doc/mcp.md にあります。

AI エージェント向け

このアプリは、AI エージェントが REST API を通じて操作できるように設計されています。開始方法は次のとおりです:

  1. ライブ API ドキュメントを読むhttp://localhost:5230/api/docs にあります。すべてのエンドポイント、リクエスト/レスポンスの例、スキーマが、実行中のサーバーと常に最新の状態で提供されています。

  2. 自分を特定するauthor はすべての変更エンドポイントで 必須 です。省略すると HTTP 400 が返されます。プレーンなエージェント名 (例: "programmer""groomer") を使用してください。人間のユーザーは "owner" です。

  3. ボードを探索する — 最初に GET /api/projects を呼び出し、次に GET /api/projects/{slug}/columns でワークフローステージを確認し、GET /api/projects/{slug}/members で割り当て可能なメンバーを確認します。

  4. 正しいステータスを使用する — チケットのステータスは既存の列名と一致している必要があります。チケットを移動する前に列を取得してください。

  5. 作業を追跡する — チケットにコメントを追加して、自分が行ったことや必要なことを説明します。@mentions を使用してメンバーに通知し、#id で同じプロジェクト内のチケットを参照し、#{slug}:{id} で別のプロジェクトのチケットを参照します。

  6. ラベルと優先度GET /api/projects/{slug}/labels を使用して利用可能なラベルを確認し、優先度を IdeaNiceToHaveRequired、または Critical に設定します。

  7. メンションを確認するGET /api/projects/{slug}/mentions/{your-handle} を呼び出して、自分に言及しているチケットを見つけます。

  8. サブチケット — チケット作成時に parentId を設定すると子チケットになります。PUT /api/projects/{slug}/tickets/{id}/parent で親を変更し、DELETE で切り離します。サブチケットを一覧表示するには ?parentId={id} を使用します。

  9. プロジェクト間の転送 — ターゲットプロジェクトに互換性のある列、担当者、ラベルがあることを確認した後でのみ、POST /api/projects/{slug}/tickets/{id}/transfer を使用してください。この操作は、チケットツリーとその履歴を保持するか、いずれのプロジェクトも変更せずに転送を拒否します。ロスのないチケット転送 を参照してください。

規約

  • 著者形式:人間のユーザーは"owner"、AIエージェントはプレーンなエージェント名(例:"programmer"

  • 優先度レベルIdeaNiceToHaveRequiredCritical

  • デフォルトのカラムBacklog

UI機能

  • 初回起動時にGit、Claude Code、OpenAI Codex、Grok Build、Mistral Vibe、Ollamaをチェックするオンボーディングポップアップ

  • ルート、パンくずリスト、直接パス入力、フォルダー作成を備えたクロスプラットフォームのアプリ内ワークスペースブラウザ

  • ワークスペースを分析し、ワークフロー作成前に編集可能なパイプラインとカラムを提案するガイド付き新規プロジェクトセットアップ

  • 完了済みチケットを保持し、検証後にのみ置き換えられた自動化を廃止するガイド付きレガシーボード移行

  • プロジェクトカードとかんばんスイムレーンを備えた統合マルチプロジェクトホーム

  • プロセッサールーティングに基づいて許可/禁止のドロップターゲットを視覚的に区別するマルチパイプラインかんばん

  • 構造、役割、オーナーガイダンス、プロセッサー、順序付きアクション、スケジュール済みタスク、ルーティングのためのコンテキスト対応カラムエディタ

  • 自由ドラッグタイル(Markdown、KPI、チャート、ヒートマップ、タイムライン、…)、AIチャットベースのタイル作成、LLMプロンプトによる自動更新を備えたカスタマイズ可能なダッシュボードビュー

  • コメントとアクティビティタイムラインを備えたチケット詳細パネル

  • ライブエージェント実行ドロワー(プロバイダー出力のSSEストリーム、ステア+停止コントロール)

  • エージェントにアドホックなプロンプトを送信する新規指示チャットドロワー

  • @mention#id#{slug}:{id}のクロスプロジェクトチケット参照をサポートするMarkdownレンダリング

  • 高度な検索構文:#42@owner>datepriority:criticallabel:bugby:owner

  • 親子関係と進捗追跡を備えたサブチケット

  • REST APIによるプロジェクト間のロスレスでアトミックなチケットツリー転送

  • ボードから直接行うカラム管理(挿入、複製、並べ替え、設定、既読マーク)

  • ラベルとメンバー管理

  • 説明とコメントでの画像アップロード

  • ローカルモデルサポート(Ollama):モデルの自動検出を備えたプロジェクトごとのベースURL、メンバーごとのデフォルトモデル、.agents/automations.jsonでのアクションごとの設定

  • Claude Code、OpenAI CodexGrok BuildMistral Vibe、またはOllamaを通じたプロバイダー対応ディスパッチ。会話の引き継ぎと利用不可モデルのフォールバックを備えています。

ダッシュボード

各プロジェクトには、かんばんボードと並んでカスタマイズ可能なダッシュボードビューがあります。タイルは自由にドラッグでき、スケジュールで自動更新され、アプリ内AIチャットパネルから作成・編集できます。エージェントがタイルのフォルダーを代わりに作成します。

タイルタイプ

Template 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 — 定期更新の間隔(例:5m1h)。

  • refreshAt — cron形式の時刻指定更新(refreshの代替)。

  • promptoutput.jsonを(再)生成するときにエージェントに送信される指示。

タイルは、ダッシュボードのAIチャットパネルで希望を説明するだけで作成できます。エージェントがテンプレートを選び、tile.yamlを作成し、更新スクリプトを生成して、初期のoutput.jsonを作成します。

コストレポート

コストページは、エージェント使用状況のキャッシュされたプロジェクト別ビューを提供するため、実行履歴が長くてもレポートを即座に開けます。日付プリセットで一般的な期間をすばやく選択でき、プロジェクト、パイプライン、モデルのフィルターは組み合わせ可能です。パイプラインの選択肢は選択したプロジェクトに自動的に追従します。日次チャートでは、凡例によって実測コストと推定コストが区別されます。

自動化モデル

  • トリガーintervalticketInColumnstatusChangesubTicketStatusticketCommentAddedgitCommitboardIdleagentInactivity

  • 条件ticketInColumnticketCountInColumnfieldLengthprioritylabelsassignedTohasParentallSubTicketsInStatusticketAge

  • アクションrunAgentmoveTicketStatussetLabelsassignTicketaddCommentconsolidateAgentMemorycommitAgentMemoryexecutePowerShellcreateTickethttpRequest(送信Webhook。allowLocalTargetsが設定されていない限り、ループバック/リンクローカルターゲットはブロックされます)。

  • runAgent.agent / runAgent.concurrencyGroup内の{assignee}プレースホルダーは、発火したチケットのassignedToから解決されます。

  • 標準的な実行後チェーン:runAgentconsolidateAgentMemory(エージェントの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

-
license - not tested
-
quality - not tested
-
maintenance - not tested

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.

  • Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ekioo/KittyClaw'

If you have feedback or need assistance with the MCP directory API, please join our Discord server