| name | k-skill-korean-ai-tools |
| description | AI 에이전트를 위한 한국 서비스 자동화 스킬 모음 — SRT/KTX 예매, KBO, 로또, 카카오톡, 지하철, HWP, 우편번호 등 |
| triggers | ["SRT 기차표 예매해줘","KBO 경기 결과 알려줘","로또 당첨번호 확인해줘","카카오톡 메시지 보내줘","서울 지하철 도착정보 조회해줘","HWP 파일 변환해줘","우편번호 검색해줘","한국 서비스 자동화 스킬 설치해줘"] |
k-skill
Skill by ara.so — Daily 2026 Skills collection.
한국인을 위한 AI 에이전트 스킬 모음집. Claude Code, Codex, Cursor 등 코딩 에이전트에서 SRT 예매, KBO 조회, 로또 확인, 카카오톡 전송, 서울 지하철 도착정보, HWP 변환, 우편번호 검색 등을 자동화할 수 있습니다.
설치
전체 스킬 설치 (권장)
npx k-skill install
npm install -g k-skill
k-skill install
선택 설치
npx k-skill install srt
npx k-skill install kbo lotto
설치 후 초기 설정
k-skill-setup
초기 설정 순서:
k-skill install 실행
k-skill-setup 실행 → sops + age 키 생성, 공통 secrets 파일 초기화
- secrets 값 로컬에 안전하게 등록 (채팅창에 붙여넣기 금지)
- 각 기능별 문서 확인
보안 및 시크릿 관리
절대 금지:
- 채팅 메시지에 비밀번호/API 키 직접 입력
.env 파일을 git에 커밋
- 코드 내 하드코딩
표준 환경변수 이름:
export SRT_USERNAME="your_id"
export SRT_PASSWORD="your_password"
export KORAIL_USERNAME="your_id"
export KORAIL_PASSWORD="your_password"
export SEOUL_METRO_API_KEY="your_api_key"
sops + age로 암호화 저장 (권장):
age-keygen -o ~/.config/sops/age/keys.txt
sops --age $(cat ~/.config/sops/age/keys.txt | grep "public key" | awk '{print $4}') \
--encrypt secrets.yaml > secrets.enc.yaml
sops --decrypt secrets.enc.yaml | k-skill env inject
기능별 사용법
1. SRT 예매
열차 조회, 예약, 예약 확인, 취소를 지원합니다.
const { SRTClient } = require('k-skill/srt');
const client = new SRTClient({
username: process.env.SRT_USERNAME,
password: process.env.SRT_PASSWORD,
});
await client.login();
const trains = await client.searchTrains({
departure: '수서',
arrival: '부산',
date: '20260401',
time: '080000',
passengers: 1,
});
console.log(trains);
const reservation = await client.reserve({
trainNo: trains[0].trainNo,
passengers: 1,
seatType: 'normal',
});
console.log(reservation.reservationId);
myReservations = client.();
.(myReservations);
client.(reservation.);
에이전트 프롬프트 예시:
"4월 1일 수서→부산 SRT 08시 이후 첫 열차 창가석으로 예약해줘"
2. KTX 예매
⚠️ 현재 작동하지 않습니다. 향후 지원 예정.
const { KTXClient } = require('k-skill/ktx');
3. 카카오톡 Mac CLI
macOS에서 kakaocli를 사용한 대화 조회, 검색, 메시지 전송. 인증 불필요.
const { KakaoTalkMac } = require('k-skill/kakaotalk-mac');
const kakao = new KakaoTalkMac();
const conversations = await kakao.listConversations();
console.log(conversations);
const results = await kakao.searchConversations('개발팀');
const preview = await kakao.previewSend({
to: '홍길동',
message: '안녕하세요!',
});
console.log(preview);
await kakao.send({
to: '홍길동',
message: '안녕하세요!',
confirmed: true,
});
중요: 에이전트는 사용자가 명시적으로 확인한 경우에만 confirmed: true로 실제 전송합니다.
CLI 직접 사용:
kakaocli list
kakaocli send --to "홍길동" --message "테스트 메시지"
kakaocli read --name "홍길동" --count 20
4. 서울 지하철 도착정보 조회
공공데이터포털 API 키 필요.
const { SeoulSubway } = require('k-skill/seoul-subway');
const subway = new SeoulSubway({
apiKey: process.env.SEOUL_METRO_API_KEY,
});
const arrivals = await subway.getArrivals('강남');
console.log(arrivals);
const line2 = await subway.getArrivals('강남', { line: '2호선' });
const byCode = await subway.getArrivalsByCode('0222');
에이전트 프롬프트 예시:
"지금 강남역 2호선 외선순환 다음 열차 언제 와?"
5. KBO 경기 결과 조회
인증 불필요.
const { KBOClient } = require('k-skill/kbo');
const kbo = new KBOClient();
const today = await kbo.getGames();
console.log(today);
const games = await kbo.getGames({ date: '20260401' });
const lgGames = await kbo.getGames({
date: '20260401',
team: 'LG',
});
console.log(lgGames);
const teams = kbo.getTeamList();
6. 로또 당첨 확인
인증 불필요.
const { LottoClient } = require('k-skill/lotto');
const lotto = new LottoClient();
const latest = await lotto.getLatestResult();
console.log(latest);
const specific = await lotto.getResult(1100);
const myNumbers = [3, 14, 22, 31, 40, 43];
const check = await lotto.checkNumbers(myNumbers);
console.log(check);
7. HWP 문서 처리
.hwp 파일을 JSON/Markdown/HTML로 변환, 이미지 추출, 배치 처리 지원. 인증 불필요.
const { HWPProcessor } = require('k-skill/hwp');
const hwp = new HWPProcessor();
const markdown = await hwp.toMarkdown('./document.hwp');
console.log(markdown);
const json = await hwp.toJSON('./document.hwp');
console.log(json.paragraphs);
const html = await hwp.toHTML('./document.hwp');
const images = await hwp.extractImages('./document.hwp', {
outputDir: './extracted-images',
});
console.log(images);
const results = await hwp.batchConvert('./hwp-files/', {
format: 'markdown',
outputDir: './converted/',
});
const winHwp = new ({ : });
nativeResult = winHwp.();
CLI 사용:
k-skill hwp convert document.hwp --format markdown
k-skill hwp batch ./hwp-folder/ --format json --output ./output/
k-skill hwp extract-images document.hwp --output ./images/
8. 우편번호 검색
공식 우체국 우편번호 API 사용. 인증 불필요.
const { ZipcodeClient } = require('k-skill/zipcode');
const zipcode = new ZipcodeClient();
const results = await zipcode.search('강남구 테헤란로');
console.log(results);
const exact = await zipcode.search('롯데월드타워');
const byZip = await zipcode.getByZipcode('05510');
공통 패턴
에러 핸들링
const { SRTClient, SRTError, SRTAuthError } = require('k-skill/srt');
try {
const client = new SRTClient({
username: process.env.SRT_USERNAME,
password: process.env.SRT_PASSWORD,
});
await client.login();
const trains = await client.searchTrains({ ... });
} catch (err) {
if (err instanceof SRTAuthError) {
console.error('로그인 실패. 아이디/비밀번호를 확인하세요.');
} else if (err instanceof SRTError) {
console.error('SRT 오류:', err.message, err.code);
} else {
throw err;
}
}
환경변수 로드 패턴
require('dotenv').config();
const { SRTClient } = require('k-skill/srt');
const client = new SRTClient({
username: process.env.SRT_USERNAME,
password: process.env.SRT_PASSWORD,
});
CLI 전체 명령어 요약
k-skill install
k-skill install srt kbo lotto
k-skill-setup
k-skill env inject
k-skill srt search --from 수서 --to 부산 --date 20260401 --time 080000
k-skill srt reserve --train SRT123 --passengers 1
k-skill srt list
k-skill srt cancel --id RES456
k-skill kbo today
k-skill kbo games --date 20260401
k-skill kbo games --team LG
k-skill lotto latest
k-skill lotto result --round 1100
k-skill lotto check --numbers 3,14,22,31,40,43
k-skill subway arrivals --station 강남
k-skill subway arrivals --station 강남 --line 2호선
k-skill hwp convert doc.hwp --format markdown
k-skill hwp batch ./folder/ --format json
k-skill hwp extract-images doc.hwp
k-skill zipcode search "강남구 테헤란로"
k-skill zipcode lookup 06236
k-skill kakao list
k-skill kakao send --to "홍길동" --message "메시지"
트러블슈팅
SRT_USERNAME 환경변수가 없다는 오류
echo $SRT_USERNAME
echo 'SRT_USERNAME=your_id' >> .env
echo 'SRT_PASSWORD=your_password' >> .env
k-skill-setup
HWP 변환 실패
npm install -g hwp.js
pip install python-hwp
k-skill hwp convert doc.hwp --use-native
카카오톡 CLI (macOS) 실행 안 됨
which kakaocli
brew install kakaocli
npm install -g kakaocli
서울 지하철 API 키 오류
export SEOUL_METRO_API_KEY="발급받은_키"
Node.js 버전 오류
node --version
nvm install 20
nvm use 20
로드맵
현재 포함:
- ✅ SRT 예매
- ⚠️ KTX 예매 (개발 중, 현재 미작동)
- ✅ 카카오톡 Mac CLI
- ✅ 서울 지하철 도착정보
- ✅ KBO 경기 결과
- ✅ 로또 당첨 확인
- ✅ HWP 문서 처리
- ✅ 우편번호 검색
다음 후보:
- 쿠팡 주문 조회
- 다나와 가격 비교
- 네이버 스토어 주문 확인
- 당근마켓 매물 조회
- 정부24 민원 조회
- 홈택스 세금 조회
참고 링크