나: 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

EsoLang-Bench: LLM 추론 능력을 테스트하기 위한 난해한 프로그래밍 언어를 활용한 코딩 벤치마크
연구진은 브레인퍽(Brainfuck)과 화이트스페이스(Whitespace) 같은 난해한 프로그래밍 언어를 사용해 LLM이 진짜로 추론하는지 아니면 단순히 패턴 매칭을 하는지 테스트하는 코딩 벤치마크인 EsoLang-Bench를 만들었습니다. GPT-5.2, O4-mini, Gemini, Qwen, Kimi 중 가장 좋은 결과는 11.2%였습니다.

Loom: 복잡한 AI 작업을 위한 로컬 실행 하네스
Loom은 복잡한 작업을 관리하기 위해 설계된 오픈소스 로컬 실행 하네스로, 약 50개의 도구, 반복 가능한 워크플로우를 위한 커스텀 패키지 플러그인 시스템, CLI 및 MCP 서버 인터페이스를 제공하는 구조화된 프로세스를 제공합니다.

카패시 코딩 스킬, 프리 플랜으로 재탄생…프로 없이 클로드 코딩 훈련 해제
Reddit 사용자가 Karpathy의 코딩 규율 가이드라인을 Claude의 무료 플랜용으로 다시 작성하여 터미널 및 하위 에이전트 의존성을 제거했습니다. 시스템 프롬프트는 코딩 요청 시 자동으로 트리거되고 검증 우선 사고를 강제합니다.

설치 없이 MCP 서버를 테스트할 수 있는 오픈 소스 브라우저 도구
MCP Playground라는 오픈 소스 웹 도구는 개발자가 WebContainers(WASM Node.js 런타임)를 사용하여 브라우저에서 직접 MCP 서버를 테스트할 수 있게 해줍니다. 이 도구는 백엔드 설치 없이 로컬에서 npm 기반 MCP 서버를 실행하고 URL을 통해 원격 서버에 연결할 수 있습니다.