{"id":49345249,"url":"https://github.com/goki602/clawguard","last_synced_at":"2026-05-25T08:04:57.953Z","repository":{"id":341510570,"uuid":"1169356329","full_name":"Goki602/ClawGuard","owner":"Goki602","description":"AI Agent Memory — Fewer prompts, smarter decisions. Remembers your trust decisions across Claude Code, Codex \u0026 MCP. Free \u0026 open source.","archived":false,"fork":false,"pushed_at":"2026-03-25T14:46:02.000Z","size":465,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-26T13:59:10.227Z","etag":null,"topics":["ai-agent","ai-guardrails","ai-memory","ai-security","claude-code","codex","confirmation-fatigue","hooks","mcp","open-source","pretooluse","security","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@clawguard-sec/cli","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Goki602.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-28T15:08:31.000Z","updated_at":"2026-03-25T14:46:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Goki602/ClawGuard","commit_stats":null,"previous_names":["goki602/clawguard"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Goki602/ClawGuard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goki602%2FClawGuard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goki602%2FClawGuard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goki602%2FClawGuard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goki602%2FClawGuard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Goki602","download_url":"https://codeload.github.com/Goki602/ClawGuard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goki602%2FClawGuard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32326122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","ai-guardrails","ai-memory","ai-security","claude-code","codex","confirmation-fatigue","hooks","mcp","open-source","pretooluse","security","typescript"],"created_at":"2026-04-27T07:01:47.658Z","updated_at":"2026-05-18T08:01:06.284Z","avatar_url":"https://github.com/Goki602.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ClawGuard\n\n\u003e AIエージェントの記憶 — 確認を減らして、判断を賢く\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Tests](https://img.shields.io/badge/tests-380%20passing-brightgreen)]()\n[![Node](https://img.shields.io/badge/node-%3E%3D20-green)]()\n\n[English version](README.md)\n\n## ClawGuardとは？\n\nAIエージェント、確認が多すぎませんか？ `npm install`のたびに確認、`git push`のたびに確認。5分前に「いいよ」って言ったのに、また同じことを聞いてくる。\n\nClawGuardが覚えておきます。一度OKした操作は記録して、次からは自動で通す。セッションをまたいでも、別のエージェントでも、別のツールでも。Claude Codeをはじめ、フック対応のエージェントならどれでも使えます。\n\n危ない操作（`rm -rf`、`git push --force`、`curl|bash`）はもちろん止めます。でもインストールする本当の理由は、エージェントが静かに・速くなるから。\n\n## クイックスタート\n\n```bash\n# インストール\nnpm install -g @clawguard-sec/cli\n\n# 初期設定（AIエージェント用フックを自動構成）\nclaw-guard init\n\n# 動作確認\nclaw-guard test\n```\n\n## しくみ\n\n```\n初回:       Agent → npm install foo → ClawGuard が確認 → 許可 → 記憶 ✓\n\n2回目:      Agent → npm install foo → 自動許可（中断なし） ✓\n\n危険な操作:  Agent → rm -rf / → 検知して理由を説明＋あなたの確認が必要 ✗\n```\n\n## 静かさレベルを選ぶ\n\nどれくらい静かにするかは自分で決められます。全部見せるモードから、ほぼ無音まで:\n\n| プリセット | スタイル | 低リスク | 中リスク | 高リスク |\n|---|---|---|---|---|\n| `observer` | 見るだけ | log | log | log |\n| `guardian` | よく確認 | allow | confirm | deny |\n| `balanced` | **おすすめ** | allow | confirm | confirm |\n| `expert` | ほぼ無音 | allow | allow | confirm |\n\n最小構成 — `clawguard.yaml` に1行書くだけ:\n\n```yaml\nprofile: balanced\n```\n\n### 優先順位\n\nCLI引数 \u003e プロジェクト（`.clawguard.yaml`） \u003e グローバル（`~/.config/clawguard/`） \u003e デフォルト（`balanced`）\n\n## アーキテクチャ\n\n### 2層設計\n\n**層1 — スマート承認**（フックベース、Docker不要）\n- 一度OKした操作を覚えて、次から自動で通す（SQLite）\n- 確認時に「他の開発者はどうしたか」をコミュニティデータで表示（準備中）\n- Adapter → Policy Engine → allow/confirm/deny（100ms以内）\n- セキュリティパスポート（継続監視の証明書）\n\n**層2 — インフラ隔離**（Docker、オプション・参考実装）\n- `claw-guard docker init` で docker-compose テンプレートを取得\n- 3コンテナ構成: gateway / fetcher / agent\n- ネットワーク分離（agentから外部へ直接通信できない）\n\n## 組み込みの安全網\n\n危険な操作は自動でキャッチします。設定は不要で、最初から12のルールが入っています。\n\n### コアルール（12件）\n\n| ID | ツール | リスク | 説明 |\n|---|---|---|---|\n| `BASH.RM_RISK` | bash | high | `rm -rf` 再帰的強制削除 |\n| `BASH.GIT_RESET_HARD` | bash | high | `git reset --hard` |\n| `BASH.GIT_CLEAN_FDX` | bash | high | `git clean -fdx` |\n| `BASH.GIT_PUSH_FORCE` | bash | high | `git push --force` |\n| `BASH.CHMOD_777` | bash | medium | `chmod 777` 全権限付与 |\n| `BASH.ROOT_PATH_OP` | bash | high | `/`（ルート）への操作 |\n| `BASH.PIPE_EXEC_001` | bash | high | `curl \\| bash` パイプ実行 |\n| `BASH.PIPE_EXEC_002` | bash | high | `wget \\| sh` パイプ実行 |\n| `BASH.SSH_KEY_READ` | bash | high | SSH鍵ファイルへのアクセス |\n| `BASH.ENV_FILE_READ` | bash | medium | `.env`ファイルへのアクセス |\n| `BASH.NPM_INSTALL` | bash | medium | `npm install \u003cパッケージ\u003e` |\n| `BASH.PIP_INSTALL` | bash | medium | `pip install \u003cパッケージ\u003e` |\n\n### いつ聞いてくる？\n\n| 条件 | 動作 | 例 |\n|---|---|---|\n| 前にOKした操作 | **何も聞かず自動で通す** | `npm install express`（以前OKしたもの） |\n| どのルールにもひっかからない | **何も聞かずそのまま実行** | `git status`, `ls`, `npm test` |\n| ルールにひっかかる + confirm設定 | データ付きで確認を出す | `npm install unknown-pkg` |\n| ルールにひっかかる + deny設定 | 理由を説明してブロック | `guardian`モードでの`rm -rf /` |\n\n### 動かないケース\n\n| 状況 | 理由 |\n|---|---|\n| AIエージェント自身がコマンドを断った | エージェントがツールを呼ばないので、ClawGuardの出番がない。これは多層防御（何重にも守る仕組み）として正常な動作です。 |\n| `bypassPermissions` / `dontAsk` モードで実行中 | この権限モードではClawGuardの判定をスキップします。 |\n| フックが入っていない | `claw-guard init` でフックを登録してください。 |\n\n\u003e **動作確認:** `claw-guard test` を実行するか、JSONを `claw-guard evaluate --json` にパイプすると、ルール照合を直接テストできます。\n\n## CLIコマンド\n\n| コマンド | 説明 |\n|---|---|\n| `claw-guard init` | AIエージェント環境のセットアップ |\n| `claw-guard evaluate --json` | ツールリクエストの評価（フックエントリポイント） |\n| `claw-guard test` | ルール・エンジン・設定の検証 |\n| `claw-guard stats` | 自動許可カウント＆判断サマリーの表示 |\n| `claw-guard serve` | HTTPフックサーバー（低レイテンシ） |\n| `claw-guard log` | 監査ログの閲覧 |\n| `claw-guard dashboard` | Webダッシュボードを起動 |\n| `claw-guard feed` | 脅威フィードの管理（`--update`, `--status`） |\n| `claw-guard marketplace` | ルールパックの管理（`installed`, `install`, `remove`） |\n| `claw-guard passport` | セキュリティパスポート＆GitHubバッジ |\n| `claw-guard replay` | インシデントリプレイ＆因果分析 |\n| `claw-guard report` | 週次安全レポート |\n| `claw-guard monitor` | 誤検知モニタリング |\n| `claw-guard docker` | Dockerデプロイ（`init`, `up`, `down`） |\n| `claw-guard skills` | Skills AVスキャン |\n| `claw-guard team` | チーム管理（serve/add/list/remove/policy） |\n\n### ルール形式（YAML）\n\n```yaml\n- id: BASH.RM_RISK\n  match:\n    tool: bash\n    command_regex: '(?:^|\\s|;|\u0026\u0026|\\|\\|)rm\\s+.*(-rf|-fr)\\b'\n  risk: high\n  explain:\n    title: \"大量削除の可能性\"\n    what: \"ファイルやフォルダをまとめて削除します。\"\n    why:\n      - \"削除対象を間違えると、プロジェクト全体が消えます。\"\n    check:\n      - \"削除対象のパスは本当に正しい？\"\n      - \"バックアップ/コミットはある？\"\n    alternatives:\n      - \"先に `ls` で対象を確認する\"\n  meta:\n    author: \"clawguard\"\n    pack: \"core\"\n    version: \"1.0.0\"\n    tags: [\"destructive\"]\n    phase: 0\n```\n\n## なぜClawGuard？\n\n| | 手動hooks | mcp-scan | ClawGuard |\n|---|---|---|---|\n| エージェント間の記憶 | - | - | **あり** — 一度OKすれば、どこでも自動許可 |\n| Claude Code / Codex / MCP対応 | - | MCPのみ | **3つとも対応** |\n| コミュニティの知恵 | - | - | **あり** — 他の開発者の判断が見える |\n| セットアップ | 自分で書く | インストール+スキャン | `claw-guard init`（1コマンド） |\n| 料金 | 無料（自作） | 無料 | **無料（MIT、全機能）** |\n\nClawGuardはブロッカーではなく、便利ツールです。あなたの判断を覚えて確認回数を減らし、コミュニティの知恵を共有します。セキュリティは副産物であり、売りではありません。\n\n## 料金\n\n完全無料のオープンソース（MIT）。全機能が制限なく使えます。ライセンスキーも課金もありません。\n\n## テレメトリ（匿名統計）\n\nClawGuardは匿名の利用統計を収集し、コミュニティの知恵として還元しています。確認ダイアログで「他の開発者の85%がこの操作を許可しています」のように表示されます。\n\n### 送信するもの（6時間ごと）\n\n- ルールIDごとの集計（許可/拒否/合計の件数のみ）\n\n### 送信しないもの\n\n- コマンド内容、ファイルパス、引数\n- ユーザーの身元、IPアドレス、セッション情報\n- プロジェクト名やリポジトリの情報\n\n### 無効にするには\n\n`clawguard.yaml` に以下を追加:\n\n```yaml\nreputation:\n  opt_in: false\n```\n\n## プロジェクト構成\n\n```\npackages/\n├── core/           ポリシーエンジン、ルールローダー、プリセット、型定義\n├── cli/            CLIツール（claw-guardコマンド）\n├── audit/          OCSF v1.1.0 監査ロガー\n├── adapter-claude/ Claude Code PreToolUseフック\n├── adapter-codex/  Codex承認ポリシー拡張\n├── adapter-mcp/    MCP JSON-RPCプロキシ\n├── billing/        機能設定（全機能が無制限で利用可能）\n├── feed/           署名付き日次フィードクライアント\n├── enrichment/     npmレジストリ、CVE検索\n├── memory/         SQLite判断ストア\n├── reputation/     コミュニティ評判アグリゲーター\n├── passport/       セキュリティパスポート＆バッジ生成\n├── replay/         インシデントリプレイ＆因果分析\n├── skills-av/      ハッシュマニフェスト、静的解析\n├── team/           組織ポリシー＆メンバー管理\n├── web-ui/         Reactダッシュボード\n├── lp/             ランディングページ（英語＋日本語）\n├── webhook/        Webhookハンドラー（Cloudflare Worker）\n├── docker/         3コンテナ参考実装\n├── api/            REST APIサーバー\n├── sdk/            組み込み用SDK\n└── siem/           SIEMコネクター\nrules/\n├── core/           12コアルール（Phase 0-1）\n└── phase2/         15追加ルール\n```\n\n## 開発\n\n```bash\n# 依存関係のインストール\nnpm install\n\n# 全パッケージをビルド\nnpm run build\n\n# テスト実行（380テスト）\nnpm test\n\n# リント\nnpm run lint\n```\n\n## コントリビュート\n\n1. リポジトリをフォーク\n2. フィーチャーブランチを作成（`git checkout -b feature/my-feature`）\n3. 変更に対するテストを記述\n4. 全テストがパスすること（`npm test`）、lintがクリーンなこと（`npm run lint`）を確認\n5. プルリクエストを送信\n\n## ライセンス\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoki602%2Fclawguard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoki602%2Fclawguard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoki602%2Fclawguard/lists"}