Imported from fivetaku/tikeytaka (
skills/use/SKILL.md). Install upstream withnpx skills add fivetaku/tikeytaka --skill use. Copyright stays with the author.
tikeytaka:use — 볼트 우선 키 연결 (묻기 전에 확인)
코어 CLI: bash "${CLAUDE_PLUGIN_ROOT}/bin/tkt" (이하 tkt)
원칙
이미 볼트에 있는 키를 사용자에게 다시 묻는 것은 실패다. 키가 필요해지는 순간의 순서는 항상: 볼트 조회 → 있으면 연결 → 없을 때만 사용자에게.
절차
-
볼트 조회:
tkt list(이름만 나옴, 값 아님). exit code로 상태를 구분한다 — 0=목록, 2=볼트 없음(init 미실행), 그 외=복호화 실패(사용자에게 "키 0개"가 아니라 "볼트를 열 수 없음"으로 보고). -
매칭: 필요한 서비스와 목록을 대조한다. 이름은
<provider>-api-key컨벤션(예:openai-api-key). 비슷한 이름(gemini-api-keyvsgoogle-api-key)이 애매하면 그때만 사용자에게 선택지로 확인. -
정확한 세팅 정보 확인: 프로젝트에 꽂기 전에 환경변수 이름·SDK 초기화·최신 모델명은 기억으로 쓰지 말고 docs-guide 스킬(
/docs-guide:docs-guide)로 해당 라이브러리 공식 문서를 확인한다. docs-guide가 없거나 실패하면 WebSearch → WebFetch로 공식 문서를 직접 확인하는 폴백. (예:ANTHROPIC_API_KEY인지CLAUDE_API_KEY인지, 최신 모델 id가 뭔지 — 구식 하드코딩 금지) -
연결·전파:
tkt map-add '<프로젝트/.env>' <변수명> <서비스명> tkt sync --check # 드라이런 확인 tkt sync.env가 없으면 만들고
chmod 600..gitignore에.env가 있는지 확인하고 없으면 추가한다. -
실측 테스트: 연결 직후 해당 API의 최소 호출(무료 검증 엔드포인트 우선)로 키가 살아있는지 확인하고 결과만 보고한다. 값은 채팅에 출력하지 않는다. 죽은 키면 재발급을 권하고 add 절차로.
-
볼트에 없을 때만: add 스킬 절차로 전환 — 발급 페이지 안내 후 별도 터미널에서
tkt setp <서비스명>(채팅에 키를 받지 않는다). 등록 확인 후 4번부터 재개.
예시 흐름
사용자: "Gemini로 이미지 분석 스크립트 만들어줘"
→ (키 얘기 없이) tkt list → gemini-api-key 발견 → docs-guide로 최신 SDK·모델명 확인
→ .env 배선 + sync → 검증 호출 200 확인 → 코드 작성 진행. 사용자는 키 존재를 의식할 필요가 없다.