heldkeys는 현재 프로세스가 접근할 수 있는 자격 증명을 비밀값 자체를 출력하지 않고 목록화하는 Linux·macOS용 도구다. 개발자 컴퓨터뿐 아니라 CI 작업과 샌드박스 안에서 실행해, AI 코딩 에이전트가 프롬프트 인젝션으로 명령을 실행할 경우 무엇을 사용할 수 있는지 살펴볼 수 있다. GitHub 저장소

환경 변수, 클라우드·AI 도구 로그인, Git·패키지 토큰, .env 파일과 편집기 기록, SSH 키, MCP 설정을 확인한다. GitHub Actions에서는 에이전트 단계의 실행 트리거와 권한, 전달된 비밀값, 체크아웃 대상, 셸 명령 허용 여부 등을 분석한다. CI 작업 안에서 실행하면 해당 작업의 토큰과 OIDC 접근 여부도 살핀다.

Homebrew로 설치한 뒤 에이전트가 사용하는 터미널에서 실행하면 된다.

sh
brew install hugomn/tap/heldkeys
heldkeys

상세 결과는 heldkeys --details로 확인할 수 있고, CI에서는 heldkeys ci를 사용한다. 샌드박스 시작 전에 검사하는 heldkeys preflight도 제공한다. 기본 scan은 결과만으로 명령을 실패시키지 않지만, ci와 preflight는 기본적으로 High 등급 발견 항목이 있으면 종료 코드 1을 반환한다. 설정에 따라 다른 등급을 기준으로 삼거나, JSON·Markdown·SARIF 형식으로 결과를 내보낼 수도 있다. 설치 방법과 위협 모델에서 이용 조건과 검사 범위를 확인할 수 있다.

제작자는 비밀값을 출력하지 않으며 원격 전송·텔레메트리·업데이트 확인도 하지 않는다고 설명한다. 다만 검사를 위해 파일을 읽고, 결과에는 알려진 토큰 형식의 일부 지문이 표시될 수 있다. 비밀번호와 형식을 알 수 없는 토큰에는 지문을 붙이지 않는다. --deep은 향후 자격 증명 발급처에 확인을 요청하는 기능을 위한 옵션으로, 현재는 아무 작업도 하지 않는다.

검사 결과가 깨끗해도 에이전트가 접근할 수 있는 모든 자격 증명이 없다는 뜻은 아니다. 브라우저 세션, IDE 토큰, 운영체제 키체인 내부 값 등은 확인하지 못할 수 있고, 토큰이 실제로 어떤 권한을 갖는지도 발급처에 묻지 않으므로 대부분 접근 수준이 ‘알 수 없음’으로 표시된다. Windows는 아직 지원하지 않는다.