nah: Claude Code向けの文脈を考慮した権限ガード

nahの機能
nahはPythonベースのパーミッションガードで、Claude Codeとツール実行の間に位置します。コンテキストを考慮した意思決定を追加することで、Claudeの許可・拒否の二択パーミッションシステムの限界に対処します。このツールは、実行前にすべてのツール呼び出しを傍受し、実際の動作に基づいて分類します。
動作原理
すべてのツール呼び出しは、まず決定論的構造分類器(LLM不要)に送られ、ミリ秒単位で実行されます。分類器はコマンドを以下のようなアクションタイプにマッピングします:
- filesystem_read
- filesystem_delete
- package_run
- db_write
- git_history_rewrite
- lang_exec
各アクションタイプに対して、nahは4つのポリシーのいずれかを適用します:許可、コンテキスト(ターゲット依存)、確認、ブロック。同じコマンドでもコンテキストによって異なる決定が下されます:
rm dist/bundle.js(プロジェクト内)→ 許可rm ~/.bashrc(プロジェクト外)→ 確認git push --force→ 確認(履歴書き換え)base64 -d | bash→ ブロック(デコード+実行パイプ)
保護対象
nahはツールに応じて異なる側面をチェックします:
- Bash:構造的コマンド分類 — アクションタイプ、パイプ構成、シェルアンラッピング
- Read:機密パス検出(~/.ssh、~/.aws、.envなど)
- Write:パスチェック+プロジェクト境界+コンテンツ検査(シークレット、外部流出、破壊的ペイロード)
- Edit:パスチェック+プロジェクト境界+置換文字列のコンテンツ検査
- Glob:機密場所のディレクトリスキャンガード
- Grep:プロジェクト外での認証情報検索パターンの捕捉
- MCPツール:サードパーティツールサーバー(mcp__*)の汎用分類
インストールと使用方法
インストール:pip install nah && nah install
アンインストール:nah uninstall && pip uninstall nah
このツールは設定不要で、すぐに使用可能な適切なデフォルトで動作します。Claude Code内でセキュリティデモを実行できます:/nah-demo — リモートコード実行、データ流出、難読化コマンドなど8つの脅威カテゴリーにわたる25の実際のケースを網羅します。
設定オプション
動作をカスタマイズする場合、以下の方法で設定できます:
~/.config/nah/config.yaml(グローバル).nah.yaml(プロジェクトごと、権限を厳格化のみ可能)
設定例:
actions:
filesystem_delete: ask # 削除は常に確認
git_history_rewrite: block # 強制プッシュは絶対に許可しない
lang_exec: allow # インラインスクリプトを信頼
sensitive_paths:
~/.kube: ask
~/Documents/taxes: block
オプションのLLMレイヤー
決定論的分類器で解決できないコマンドに対して、nahはオプションでLLMに問い合わせることができます。フローは:ツール呼び出し → nah(決定論的) → LLM(オプション) → Claude Codeパーミッション → 実行。決定論的レイヤーは常に最初に実行され、LLMは残った「確認」決定のみを解決します。LLMが設定されていないか利用できない場合、決定は「確認」のままとなり、ユーザーにプロンプトが表示されます。サポートプロバイダーにはOllama、OpenRouter、OpenAI、Anthropic、Snowflake Cortexが含まれます。
重要な注意点
開発者は特に、Claude Codeの--dangerously-skip-permissionsフラグの使用を警告しています。バイパスモードでは、フックは非同期で発火するため、nahがブロックする前にコマンドが実行されてしまいます。代わりに、Bash、Read、Glob、Grepなどのツールを許可し、nahに保護させることを推奨しています。
📖 Read the full source: HN AI Agents
👀 See Also

Vibeyard、Claude CodeにP2Pセッション共有機能を追加
Vibeyard、Claude Code用のオープンソースIDEが、ピアツーピアのセッション共有をサポートしました。ユーザーは、読み取り専用または読み書き可能なアクセスモードで、暗号化されたWebRTC接続を介してチームメイトとライブターミナルセッションを共有できます。

PACT:エージェント障害パターン後のクロードコードのためのプログラム的ガバナンスフレームワーク
ある開発者が、350以上のファイルからなるモバイルアプリで3ヶ月間にわたり繰り返し発生したClaude Codeの失敗を経て、PACT(Programmatic Agent Constraint Toolkit)を構築しました。このフレームワークは、強制不可能なルールを、ツール使用前のフックを通じて違反を物理的にブロックする機械的な制約に置き換えます。

MCPコンテクスト肥大化:Claude Codeユーザー向けの実質的なコストと実用的な修正方法
Claude Codeで9つのMCPサーバーを実行すると、コールドスタート時に38kトークン消費し、ツール定義のオーバーヘッドだけで月額約700ドルかかり、モデルのパフォーマンスが低下します。BM25ランキングを使用したゲートウェイパターンでコンテキストを4kに削減できます。

SmallClaw v1.0.2は、ローカルLLM向けのバックグラウンドタスクシステムを追加しました。
SmallClaw v1.0.2は、ステップ検証により小規模モデルの信頼性問題に対処する自律的なマルチステップワークフローを実行するバックグラウンドタスクエンジンを導入しました。このアップデートは、qwen3:4bなどの4Bクラスモデルを8GBマシンでテスト済みです。