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

✍️ OpenClawRadar📅 게시일: March 12, 2026🔗 Source
나: Claude Code를 위한 컨텍스트 인식 권한 가드
Ad

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__*)
Ad

설치 및 사용법

설치: 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

Ad

👀 See Also

Flue: 자율 코딩 에이전트 구축을 위한 TypeScript 프레임워크
Tools

Flue: 자율 코딩 에이전트 구축을 위한 TypeScript 프레임워크

Flue는 자율 에이전트 구축을 위한 프로그래머블 하네스를 제공하는 TypeScript 프레임워크로, 스킬, 세션, 샌드박스 셸 실행 및 내장 가상 샌드박스를 갖추고 있습니다. Dosu, Greptile, CodeRabbit, Devin, Claude Code 같은 도구를 사용자 정의 에이전트 로직으로 대체할 수 있습니다.

OpenClawRadar
클로드 코드 아키텍처를 로컬 9B 모델에 적용: 주요 발견과 최적화
Tools

클로드 코드 아키텍처를 로컬 9B 모델에 적용: 주요 발견과 최적화

한 개발자가 Claude Code의 유출된 소스 코드에서 아키텍처 패턴을 추출하여 RTX 5070 Ti에서 로컬로 실행 중인 qwen3.5:9b에 10가지 최적화를 적용했습니다. 핵심 발견은 qwen3.5:9b가 기본적으로 구조화된 tool_calls를 지원하며, 9B 모델의 가장 큰 한계는 탐색을 멈추고 출력을 시작할 시점을 아는 자기 절제력이라는 점이었습니다.

OpenClawRadar
ReasonDB: 벡터 검색 대신 LLM 기반 트리 내비게이션을 사용하는 오픈소스 문서 데이터베이스
Tools

ReasonDB: 벡터 검색 대신 LLM 기반 트리 내비게이션을 사용하는 오픈소스 문서 데이터베이스

ReasonDB는 계층 구조로 문서 구조를 보존하고 검색을 위해 벡터 검색 대신 LLM 기반 트리 탐색을 사용하는 오픈소스 문서 데이터베이스입니다. 초기 검색에는 BM25를, 구조 필터링에는 tree-grep을, 그리고 LLM이 수백만 개의 노드 중 약 25개 노드를 방문하는 빔 서치 탐색을 사용합니다.

OpenClawRadar
Cowork Context Management Kit, Claude의 파일 과부하 문제 해결
Tools

Cowork Context Management Kit, Claude의 파일 과부하 문제 해결

Claude AI가 프로젝트 폴더 내 462개 파일을 모두 읽어 성능 문제와 모순을 일으키자, 한 개발자가 Cowork용 컨텍스트 관리 키트를 구축했습니다. 이 솔루션에는 글로벌 지침, 매니페스트 파일 시스템 및 관련 문서를 우선시하는 Cowork 스킬이 포함됩니다.

OpenClawRadar