Communityコーディング&開発github.com

Lavenderustilagomaydis9432/forgeterm

AIコーディングエージェントをリアルタイムで監視し、不正なファイルアクセス、ネットワーク接続、危険なコマンドをブロックするとともに、システムリソース制限を強制します。

forgeterm とは?

このスキルは、AIコーディングエージェント(Claude Code、Cursor、Codexなど)の実行中に、セキュリティとリソース管理を強化するための監視ツールです。リアルタイムでファイルアクセス、ネットワーク接続、シェルコマンドを検査し、事前に定義されたポリシーに違反する動作を自動的にブロックします。また、CPU、メモリ、ディスク使用量などのシステムリソース制限を強制することで、エージェントが過剰なリソースを消費するのを防ぎます。開発者は、設定ファイルや環境変数を使用して許可リストと拒否リストを柔軟に定義でき、安全な開発環境を維持しながらエージェントの自律性を制御できます。CLIツールやAPIとして統合可能で、AIエージェントの暴走や意図しない操作による被害を未然に防ぐのに役立ちます。

対応~Claude Code~Codex CLI~Cursor
npx skills add Lavenderustilagomaydis9432/forgeterm

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

forgeterm は何をしますか?

AIコーディングエージェントをリアルタイムで監視し、不正なファイルアクセス、ネットワーク接続、危険なコマンドをブロックするとともに、システムリソース制限を強制します。

概要

forgeterm は、AIエージェント(例:Claude Code、Cursor、Codex)が実行中のシステムに対して安全に動作するよう監視するツールです。ファイルシステム、ネットワーク、プロセス実行をフックし、ポリシーに基づいてアクションを許可または拒否します。

主な機能

  • ファイルアクセス制御: 読み取り/書き込み/実行の許可リスト・拒否リスト
  • ネットワーク監視: 許可されていないホストやポートへの接続をブロック
  • コマンドフィルタリング: 危険なシェルコマンド(例: rm -rf /)を検出し阻止
  • リソース制限: CPU、メモリ、ディスク使用量の上限を設定
  • リアルタイムログ: すべての監視イベントをログに記録

対応プラットフォーム

  • Claude Code
  • Cursor
  • Codex
  • その他のAIエージェント

インストール方法

pip install forgeterm

または、ソースからビルド:

git clone https://github.com/Lavenderustilagomaydis9432/forgeterm.git
cd forgeterm
pip install .

使用方法

基本コマンド

forgeterm --config config.yaml

設定例 (config.yaml)

filesystem:
  allow_paths:
    - /home/user/project
    - /tmp
  deny_paths:
    - /etc
    - /var/log
    - /root

network:
  allow_hosts:
    - localhost
    - 127.0.0.1
  deny_hosts:
    - 0.0.0.0
    - 192.168.1.0/24

resources:
  max_cpu_percent: 80
  max_memory_mb: 2048
  max_disk_gb: 10

commands:
  deny_patterns:
    - "rm -rf /"
    - "dd if=/dev/zero of=/dev/sda"
    - "chmod -R 777 /"

環境変数

変数名説明デフォルト値
FORGETERM_CONFIG設定ファイルのパス./config.yaml
FORGETERM_LOG_LEVELログレベルINFO
FORGETERM_ALLOW_NETWORKネットワーク許可リスト(カンマ区切り)なし
FORGETERM_DENY_FILESファイル拒否パス(カンマ区切り)なし

ポリシーファイルの詳細

ポリシーファイルはYAML形式で記述します。各セクションでは、許可リスト(allow_*)と拒否リスト(deny_*)を設定できます。許可リストが設定されている場合、明示的に許可された項目のみが許可され、それ以外は拒否されます。拒否リストは許可リストよりも優先されます。

開発者向け情報

アーキテクチャ

forgeterm は以下のコンポーネントで構成されています:

  • 監視デーモン: バックグラウンドで動作し、システムコールを傍受
  • ポリシーエンジン: YAML設定に基づいてアクションを評価
  • ロガー: イベントを構造化ログとして出力(JSON形式)
  • CLIインターフェース: ユーザーが設定や監視を制御

拡張方法

独自のポリシーモジュールを追加するには、forgeterm.policies パッケージに新しいクラスを作成し、PolicyBase クラスを継承します。

from forgeterm.policies import PolicyBase

class CustomPolicy(PolicyBase):
    def evaluate(self, event):
        # イベントを評価し、許可する場合はTrue、拒否する場合はFalseを返す
        return True

トラブルシューティング

よくある問題

  1. ポリシーが適用されない: 設定ファイルのパスが正しいか確認してください。
  2. リソース制限が効かない: OSのcgroupsなどを利用している場合、互換性に注意してください。
  3. ネットワークブロックが多すぎる: 許可リストの定義を確認し、必要に応じてホワイトリストを追加してください。

ライセンス

MIT License - 詳細はLICENSEファイルを参照してください。

関連スキル