공통 설정 가이드

August 18, 2026 · View on GitHub

k-skill 전체 스킬을 설치한 뒤, 인증 정보가 필요한 기능(자연휴양림 빈 객실 조회, KOSIS bigdata/--direct 조회용 KSKILL_KOSIS_API_KEY (https://kosis.kr/openapi/ 에서 무료 발급), 한국 법령 검색의 로컬 CLI/MCP 경로용 LAW_OC, 한국 특허 정보 검색의 KIPRIS Plus 경로용 KIPRIS_PLUS_API_KEY, self-host 프록시 운영용 서울 지하철/한국 날씨/미세먼지/한강홍수통제소/식약처/KOSIS/Kakao upstream key, 또는 배포 확인이 끝난 proxy URL 공유)이 있으면 이 절차를 진행하면 된다. KTX는 코레일이 공개한 공식 운행계획 XLSX를 읽고, SRT는 익명 live search client를 사용하므로 둘 다 철도 회원 credential이 필요하지 않다. 미세먼지, 한강 수위, 주유소 가격, 부동산 실거래가, 한국 주식 정보 조회, 생활쓰레기 배출정보 조회, 학교 급식 식단 조회, 의약품 안전 체크, 식품 안전 체크는 기본 hosted proxy를 쓰므로 사용자 쪽 키가 불필요하다. KOSIS 일반 조회와 Kakao Local geocoding도 기본 hosted proxy를 쓰므로 사용자 쪽 키가 불필요하다(단, hosted 프록시 운영 측에서 DATA_GO_KR_API_KEY·KEDU_INFO_KEY·DATA4LIBRARY_AUTH_KEY·FOODSAFETYKOREA_API_KEY·KOSIS_API_KEY·KAKAO_REST_API_KEY 등은 서버에 설정되어 있어야 한다).

Credential resolution order

모든 credential-bearing 스킬은 먼저 실행 capability를 감지한다.

  1. Dolshoi credential mode: DOLSHOI_ACTION_BROKER_URL이 설정되고 vault-run이 실행 가능하면 provisioned capability를 사용한다.
  2. Dolshoi missing credential: capability가 없으면 평문을 묻지 말고 request_vault_credential로 앱 vault 입력 UI를 호출한다.
  3. Generic injected secret: 이미 환경변수 또는 host vault injection이 있으면 그대로 사용한다.
  4. Generic fallback: host vault → ~/.config/k-skill/secrets.env (0600) 순서로 사용한다.
  5. Generic missing secret: 호스트가 제공하는 가장 안전한 입력 표면으로 받아 vault 또는 dotenv에 저장한다.

돌쇠 또는 다른 host vault를 사용 중이라면 기본 경로 설정을 건너뛴다.

기본 경로로 설정하기

에이전트가 별도 vault를 쓰지 않는 경우, 기본 fallback 파일을 만든다.

mkdir -p ~/.config/k-skill
cat > ~/.config/k-skill/secrets.env <<'EOF'
KSKILL_FORESTTRIP_ID=replace-me
KSKILL_FORESTTRIP_PASSWORD=replace-me
# KOSIS 일반 조회는 hosted proxy 사용. bigdata/--direct 때만 채운다.
KSKILL_KOSIS_API_KEY=replace-me
# 창업진흥원 K-Startup 일반 조회는 hosted proxy 사용. --direct 때만 채운다.
KSKILL_KSTARTUP_API_KEY=replace-me
# EV 충전소 일반 조회는 hosted proxy 사용. --direct 때만 채운다.
KSKILL_EV_CHARGER_API_KEY=replace-me
# 건축물대장 일반 조회는 hosted proxy 사용. --direct 때만 채운다.
KSKILL_BUILDING_REGISTER_API_KEY=replace-me
# RISS 학술자료 검색은 사용자 본인의 RISS 검색 API 키로 직접 호출한다(비영리 기관/대학 발급).
KSKILL_RISS_API_KEY=replace-me
LAW_OC=replace-me
KIPRIS_PLUS_API_KEY=replace-me
AIR_KOREA_OPEN_API_KEY=replace-me
# Kakao Local geocoding은 hosted proxy 사용. self-host proxy 운영 때만 채운다.
KAKAO_REST_API_KEY=replace-me
# Popbill은 사용자별 과금/권한 API이므로 BYOK 로컬 호출 때만 채운다.
KSKILL_POPBILL_LINK_ID=replace-me
KSKILL_POPBILL_SECRET_KEY=replace-me
KSKILL_POPBILL_CORP_NUM=replace-me
KSKILL_POPBILL_USER_ID=
KSKILL_PROXY_BASE_URL=
EOF
chmod 0600 ~/.config/k-skill/secrets.env

실제 값을 채운다.

서울 지하철 도착정보, 서울 실시간 혼잡도 조회, 서울 따릉이 실시간 대여소 조회, 한국 날씨, 미세먼지, 한강 수위, 주유소 가격, 생활쓰레기 배출정보 조회, 학교 급식 식단 조회, 의약품 안전 체크, 식품 안전 체크는 KSKILL_PROXY_BASE_URL 을 비워 두면 기본 hosted path(k-skill-proxy.nomadamas.org)를 그대로 쓴다. 전기차 충전소와 건축물대장 표제부 조회도 같은 기본 hosted path를 쓴다. KOSIS 일반 조회와 Kakao Local geocoding도 같은 기본 hosted path를 쓴다. 별도 self-host proxy를 쓸 때만 KSKILL_PROXY_BASE_URL 을 채운다.

전기차 충전소 일반 조회는 hosted proxy를 사용하므로 사용자 키가 필요 없다. --direct에서만 KSKILL_EV_CHARGER_API_KEY 또는 DATA_GO_KR_API_KEY를 사용하며, 기존 키가 있어도 데이터셋 15076352 활용신청은 별도로 해야 한다(자동승인).

건축물대장 표제부 일반 조회는 hosted proxy를 사용하므로 사용자 키가 필요 없다. 주소 입력도 hosted Kakao geocode를 사용한다. --direct에서는 주소를 받지 않고 KSKILL_BUILDING_REGISTER_API_KEY 또는 DATA_GO_KR_API_KEY를 사용하며, 데이터셋 15134735 활용신청은 별도로 해야 한다(자동승인).

KERIS/RISS 학술자료 검색은 RISS 검색 API가 기관 전용 키를 요구하므로 hosted proxy를 사용하지 않고, 사용자가 직접 발급받은 KSKILL_RISS_API_KEY(호환 RISS_API_KEY)로 상류를 호출한다. RISS 키는 비영리 기관/대학에만 발급되며 RISS 검색에는 DATA_GO_KR_API_KEY를 사용하지 않는다.

ASK 서울 기상 위험 시간대 조회는 기본 hosted proxy를 사용하므로 사용자 API Key가 필요 없다. proxy 운영자만 ASK_SEOUL_SKILL_API_BASE_URL과 회수 가능한 전용 ASK_SEOUL_KSKILL_API_KEYproxy 서버 환경에 설정한다. 이 키는 k-skill-proxy:seoul-weather-risk principal의 skill:seoul-weather-risk:read scope로 발급하며, 사용자 secrets 파일, URL, CLI 인자, 로그에 넣지 않는다.

한국 법령 검색은 기본 hosted proxy(k-skill-proxy.nomadamas.org)의 /v1/korean-law/... endpoint를 경유하므로 사용자 쪽 LAW_OC 가 불필요하다. self-host proxy 운영자만 서버 환경변수 LAW_OC 를 채운다(무료 발급: https://open.law.go.kr).

한국 부동산 실거래가 조회는 기본 hosted proxy(k-skill-proxy.nomadamas.org)를 경유하므로 사용자 쪽 DATA_GO_KR_API_KEY 가 불필요하다.

한국 주식 정보 조회는 기본 hosted proxy(k-skill-proxy.nomadamas.org)를 경유하므로 사용자 쪽 KRX_API_KEY 가 불필요하다. self-host proxy 운영자만 서버 환경변수 KRX_API_KEY 를 사용한다.

도서관 도서 조회는 기본 hosted proxy(k-skill-proxy.nomadamas.org)를 경유하므로 사용자 쪽 DATA4LIBRARY_AUTH_KEY 가 불필요하다. self-host proxy 운영자만 서버 환경변수 DATA4LIBRARY_AUTH_KEY 를 사용한다.

근처 가장 싼 주유소 찾기는 기본 hosted proxy(k-skill-proxy.nomadamas.org)를 경유하므로 사용자 쪽 OPINET_API_KEY 가 불필요하다.

한국 특허 정보 검색의 KIPRIS Plus 경로용 KIPRIS_PLUS_API_KEY 는 helper가 읽는 표준 변수명이다. 실제 HTTP 요청에서는 같은 값을 ServiceKey 쿼리 파라미터로 보낸다. 공공데이터포털에서 복사한 percent-encoded key도 helper가 한 번 정규화해서 그대로 쓸 수 있다.

브라우저 런타임

돌쇠에서는 내장 browser tool의 CloakBrowser를 최우선으로 쓴다. 내장 tool이 CloakBrowser를 제공하거나 CLOAKBROWSER_PEEK_TOKEN이 있으면 k-skill-browser-runtime보다 먼저 사용한다.

돌쇠가 아니거나 CloakBrowser를 사용할 수 없을 때는 k-skill-browser-runtime을 portable fallback으로 쓴다. 기본 auto 순서는 macOS에서 Aside Browser REPL → BrowserOS CDP → Chrome/Chromium CDP, 기타 플랫폼에서 BrowserOS CDP → Aside Browser REPL → Chrome/Chromium CDP다. 런타임은 BrowserOS를 launch하거나 headless로 띄우지 않고, Aside는 공개 aside repl 표면만 쓴다. 자세한 작성 가이드는 브라우저 런타임 문서, 돌쇠 런타임 계약, 새 스킬 추가 가이드를 참고.

변수기본값설명
KSKILL_BROWSER_PROVIDERautoauto(macOS: Aside → BrowserOS → Chrome, 기타: BrowserOS → Aside → Chrome), browseros, aside, chrome-cdp
KSKILL_BROWSEROS_CDP_URLhttp://127.0.0.1:9100BrowserOS CDP 엔드포인트
KSKILL_CHROME_CDP_URLhttp://127.0.0.1:9222Chrome/Chromium CDP 엔드포인트
KSKILL_ASIDE_COMMANDasideAside CLI 명령 이름 또는 경로

돌쇠에서는 vault-backed login으로 인증을 재개하고, 결제·전송·최종 제출 직전에 clarify 승인을 받은 뒤 공식 표면에서 계속 진행한다. CAPTCHA, 본인인증, 전자서명, 법률상 금지 경계는 우회하지 않는다. generic runtime은 typed stop rule과 수동 handoff를 유지한다. 공개 데이터 조회는 직접 HTTP를 먼저 쓴다.

확인

npx -y @nomadamas/k-skill@0 exec k-skill-setup scripts/check-setup.sh --
bash scripts/check-setup.sh

원본 helper는 k-skill-setup/scripts/check-setup.sh다. 루트 scripts/check-setup.sh는 저장소 체크아웃용 shim이다.

시크릿이 없을 때의 기본 응답

인증이 필요한 스킬에서 값이 비어 있으면 credential resolution order에 따라 확보한다.

  • 돌쇠에서는 request_vault_credential로 필요한 service/field 입력 UI를 호출하고 평문 값을 채팅으로 요구하지 않기
  • generic runtime에서는 어떤 값이 필요한지 정확한 변수 이름으로 알려주고 안전한 host input/vault/dotenv 순서 안내하기

기능별로 필요한 값

기능필요한 값
고속버스 예매사용자 시크릿 불필요 (조회·좌석 단계는 공식 KOBUS HTTP 흐름, 돌쇠는 clarify 승인 후 공식 결제까지, generic은 수동 handoff)
시외버스 예매사용자 시크릿 불필요 (조회·좌석 단계는 공식 티머니 HTTP 흐름, 돌쇠는 clarify 승인 후 공식 결제까지, generic은 수동 handoff)
자연휴양림 빈 객실 조회KSKILL_FORESTTRIP_ID, KSKILL_FORESTTRIP_PASSWORD
한국 법령 검색사용자 시크릿 불필요 (기본 hosted proxy 사용, 운영자만 LAW_OC)
한국 부동산 실거래가 조회사용자 시크릿 불필요 (기본 hosted proxy 사용)
한국 특허 정보 검색KIPRIS_PLUS_API_KEY
ASK 서울 기상 위험 시간대 조회사용자 시크릿 불필요 (기본 hosted proxy 사용, 운영자만 ASK_SEOUL_SKILL_API_BASE_URL·ASK_SEOUL_KSKILL_API_KEY)
팝빌 업무 APIKSKILL_POPBILL_LINK_ID, KSKILL_POPBILL_SECRET_KEY, KSKILL_POPBILL_CORP_NUM, 선택 KSKILL_POPBILL_USER_ID
한국 주식 정보 조회사용자 시크릿 불필요 (기본 hosted proxy 사용, 운영자만 KRX_API_KEY)
근처 가장 싼 주유소 찾기사용자 시크릿 불필요 (기본 hosted proxy 사용)
서울 지하철 도착정보 조회사용자 시크릿 불필요 (기본 hosted proxy 사용, 운영자만 SEOUL_OPEN_API_KEY)
서울 실시간 혼잡도 조회사용자 시크릿 불필요 (기본 hosted proxy 사용, 운영자만 SEOUL_OPEN_API_KEY)
서울 따릉이 실시간 대여소 조회사용자 시크릿 불필요 (기본 hosted proxy 사용, 운영자만 SEOUL_OPEN_API_KEY)
한국 날씨 조회사용자 시크릿 불필요 (기본 hosted proxy 사용, 운영자만 KMA_OPEN_API_KEY)
사용자 위치 미세먼지 조회KSKILL_PROXY_BASE_URL 또는 AIR_KOREA_OPEN_API_KEY
한강 수위 정보 조회사용자 시크릿 불필요 (기본 hosted proxy 사용)
생활쓰레기 배출정보 조회사용자 시크릿 불필요 (프록시에 DATA_GO_KR_API_KEY가 설정된 hosted/self-host; API 호출 시 pageNo=1, numOfRows=100 필수)
학교 급식 식단 조회사용자 시크릿 불필요 (프록시에 KEDU_INFO_KEY가 설정된 hosted/self-host 사용)
도서관 도서 조회사용자 시크릿 불필요 (프록시에 DATA4LIBRARY_AUTH_KEY가 설정된 hosted/self-host 사용)
의약품 안전 체크사용자 시크릿 불필요 (프록시에 DATA_GO_KR_API_KEY가 설정된 hosted/self-host 사용)
식품 안전 체크사용자 시크릿 불필요 (프록시에 DATA_GO_KR_API_KEY와 선택적 FOODSAFETYKOREA_API_KEY가 설정된 hosted/self-host 사용)
창업진흥원 K-Startup 조회사용자 시크릿 불필요 (프록시에 DATA_GO_KR_API_KEY가 설정된 hosted/self-host 사용; --direct 호출 때만 KSKILL_KSTARTUP_API_KEY)
전기차 충전소 위치·상태 조회사용자 시크릿 불필요 (기본 hosted proxy 사용; --direct 때만 KSKILL_EV_CHARGER_API_KEY 또는 DATA_GO_KR_API_KEY, 데이터셋 15076352 별도 활용신청)
건축물대장 표제부 조회사용자 시크릿 불필요 (기본 hosted proxy 사용; --direct 때만 KSKILL_BUILDING_REGISTER_API_KEY 또는 DATA_GO_KR_API_KEY, 데이터셋 15134735 별도 활용신청)
KERIS/RISS 학술자료 검색사용자 본인 KSKILL_RISS_API_KEY(호환 RISS_API_KEY) 필요; RISS 검색 API는 비영리 기관/대학 전용 키로 직접 호출, proxy 미사용

다음에 볼 문서

설치 기본 흐름은 "전체 스킬 설치 → 개별 기능 사용" 이다.