나: Claude Code를 위한 컨텍스트 인식 권한 가드

nah가 하는 일
nah는 Claude Code와 도구 실행 사이에 위치하는 Python 기반 권한 가드입니다. 컨텍스트 인식 의사 결정을 추가하여 Claude의 이진 허용-거부 권한 시스템의 한계를 해결합니다. 이 도구는 모든 도구 호출이 실행되기 전에 가로채어 실제 수행하는 작업에 따라 분류합니다.
작동 방식
모든 도구 호출은 먼저 밀리초 단위로 실행되는 결정론적 구조 분류기(LLM 불필요)를 통과합니다. 분류기는 명령을 다음과 같은 동작 유형에 매핑합니다:
- filesystem_read
- filesystem_delete
- package_run
- db_write
- git_history_rewrite
- lang_exec
각 동작 유형에 대해 nah는 네 가지 정책 중 하나를 적용합니다: 허용, 컨텍스트(대상에 따라 다름), 질문, 또는 차단. 동일한 명령도 컨텍스트에 따라 다른 결정을 받습니다:
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가 이를 보호하도록 하는 것을 권장합니다.
📖 전체 소스 읽기: HN AI Agents
👀 See Also

OpenClaw Codex-GPT5.4 작업 검증 루프 문제
개발자가 OpenClaw를 통해 Codex-GPT5.4를 사용하여 자율 프로젝트 작업 중 작업 검증 루프에 갇히는 문제를 보고했습니다. 모델이 작업을 식별하고 확인만 반복하며 실제로 실행하지 않는 현상입니다. 이 문제를 해결하기 위해 TASKS.md, 하트비트 규칙, 페르소나 파일 등 작업 공간 제어 장치를 구현했습니다.

레딧 사용자가 금융 계좌 잔액 수집을 위한 AI 도구를 공유합니다
r/openclaw의 레딧 게시물은 Python을 사용하여 금융 계좌 잔액 수집을 간소화하도록 설계된 AI 에이전트를 소개합니다. 사용자들은 Plaid와 같은 API를 활용한 맞춤형 스크립트를 통한 자동화 가능성에 대해 논의합니다.

claude-powerline v1.20은 TUI 대시보드 모드, 컨텍스트 바 스타일, 환경 변수 표시 기능을 추가합니다.
claude-powerline v1.20은 단일 상태 표시줄을 모델 정보, 진행 막대가 포함된 컨텍스트 사용량, 비용, git 상태 등을 보여주는 전체 패널로 대체하는 TUI 대시보드 모드를 소개합니다. 이 업데이트는 컨텍스트 사용량을 위한 9가지 시각적 진행 막대 스타일과 환경 변수 표시 기능을 추가합니다.

CostClaw: OpenClaw 에이전트를 위한 무료 로컬 비용 추적 대시보드
CostClaw는 OpenClaw의 네이티브 훅을 통해 모든 LLM 호출을 캡처하고 모델 분석, 세션별 비용, 시간별 지출 차트를 보여주는 대시보드를 제공하는 무료 로컬 플러그인입니다. 개발자는 자신의 하트비트 에이전트가 3분마다 24시간 내내 Claude Sonnet을 실행하여 아무것도 하지 않는데도 월 60달러를 소모하고 있음을 발견했고, 이를 Haiku로 전환하여 약 65%의 비용을 절감했습니다.