k-skill Features for Transportation Services in Korea: Complete CLI Skill Reference
The k-skill repository exposes eleven command-line transportation skills that enable developers to query schedules, reserve tickets, and check real-time status across Korean rail, bus, subway, bike-sharing, and road networks.
The open-source NomaDamas/k-skill project provides a standardized framework for Korean transit automation. These k-skill features for transportation services in Korea wrap official APIs and web interfaces into executable JSON-defined skills, allowing integration into chatbots and DevOps pipelines without managing low-level API contracts or authentication flows.
Available Transportation Skills by Mode
The repository organizes transportation capabilities by travel mode, each implemented as a standalone skill with dedicated documentation and scripts.
High-Speed Rail Reservations
-
KTX booking (
ktx-booking): Search Korail trains, view seat maps, reserve tickets, and manage cancellations. Implementation resides inscripts/ktx_booking.pywith configuration atpackages/k-skill-cli/skills/ktx-booking/skill.json. -
SRT booking (
srt-booking): Identical capabilities for Seoul-Rex-Trains (SRT), implemented inscripts/srt_booking.py.
Bus Networks
-
Express-bus booking (
express-bus-booking): Query KOBUS high-speed bus routes and seat availability viascripts/express_bus_search.py. -
Intercity-bus booking (
intercity-bus-booking): Access T-Money intercity timetables and fare information throughscripts/intercity_bus_search.py.
Urban Transit and Routing
-
Seoul subway arrival (
seoul-subway-arrival): Retrieve real-time arrival predictions for Seoul Metro lines usingscripts/subway_arrival.py. -
Korean transit route (
korean-transit-route): Multi-modal journey planning across subway, bus, and walking modes, returning total time, cost, and transfer counts viascripts/transit_route.py.
Micro-Mobility and Road Data
-
Seoul bike (
seoul-bike): Locate nearby bike-sharing stations and check dock availability throughscripts/bike_nearby.py. -
Highway traffic status (
highway-traffic-status): Current congestion and incident reports for Korean expressways viascripts/traffic_status.py.
Infrastructure and Amenities
-
Parking-lot search (
parking-lot-search): Find public parking facilities with pricing and vacancy data throughscripts/parking_search.py. -
EV charger nearby (
ev-charger-nearby): Locate electric vehicle charging stations within a specified radius usingscripts/ev_charger_search.py. -
Public restroom nearby (
public-restroom-nearby): Query nearest public restroom facilities for travelers viascripts/restroom_search.py.
Skill Architecture and File Structure
Each transportation skill follows a consistent three-file pattern according to the source code:
-
Skill definition:
packages/k-skill-cli/skills/<skill-name>/skill.jsondeclares the CLI interface, input parameters, and output schema. -
Documentation:
<skill-name>/SKILL.mdprovides human-readable instructions, flow diagrams, and environment variable requirements. -
Implementation:
scripts/<skill_file>.py(or.jsfor Node-based skills) contains the operational logic that calls public APIs or official websites.
For example, the KTX booking skill references packages/k-skill-cli/skills/ktx-booking/skill.json for its interface contract, while the executable logic lives in scripts/ktx_booking.py alongside its ktx-booking/SKILL.md documentation.
Authentication and Proxy Configuration
Transportation skills requiring credentials use a hierarchical secret resolution system. High-speed rail bookings require KSKILL_KTX_ID and KSKILL_KTX_PASSWORD (or SRT equivalents), while public API skills utilize the k-skill-proxy service.
The repository ships a template at ~/.config/k-skill/secrets.env for local development. For public data APIs (e.g., transit Open APIs), requests route through k-skill-proxy, which injects DATA_GO_KR_API_KEY server-side to keep keys out of client code.
When official APIs are unavailable or require session-based interaction, skills fall back to the k-skill-browser-runtime (or CloakBrowser in "Dolshoi" mode) to safely drive official web UIs.
CLI Usage Examples
Invoke any transportation skill using the @nomadamas/k-skill CLI wrapper. All examples assume execution via npx:
# KTX: Search trains from Seoul to Busan on 2026-03-28 at 09:00
npx -y @nomadamas/k-skill@0 exec ktx-booking scripts/ktx_booking.py -- search 서울 부산 20260328 090000 --limit 5
# SRT: Display seat map for a specific train
npx -y @nomadamas/k-skill@0 exec srt-booking scripts/srt_booking.py -- seats 서울 부산 20260328 090000 --train-id <train_id>
# Express bus: KOBUS routes between Gyeongju and Busan
npx -y @nomadamas/k-skill@0 exec express-bus-booking scripts/express_bus_search.py -- search 경주 부산 20260401 070000
# Intercity bus: T-Money timetable from Daejeon to Gwangju
npx -y @nomadamas/k-skill@0 exec intercity-bus-booking scripts/intercity_bus_search.py -- search 대전 광주 20260515 080000
# Seoul subway: Real-time arrivals for Line 2 at Gangnam Station
npx -y @nomadamas/k-skill@0 exec seoul-subway-arrival scripts/subway_arrival.py -- line 2 -- station 강남
# Multi-modal route: Gangnam Station to Incheon Airport
npx -y @nomadamas/k-skill@0 exec korean-transit-route scripts/transit_route.py -- from 강남역 -- to 인천공항
# Seoul bike: Nearby docks from GPS coordinates
npx -y @nomadamas/k-skill@0 exec seoul-bike scripts/bike_nearby.py -- lat 37.517236 -- lng 127.047324
# Highway traffic: Congestion on Gyeongbu Expressway
npx -y @nomadamas/k-skill@0 exec highway-traffic-status scripts/traffic_status.py -- highway 경부고속도로
# Parking: Public lots near Myeongdong under 5,000 KRW
npx -y @nomadamas/k-skill@0 exec parking-lot-search scripts/parking_search.py -- location 명동 -- max-price 5000
# EV charging: Fast chargers within 2km
npx -y @nomadamas/k-skill@0 exec ev-charger-nearby scripts/ev_charger_search.py -- lat 37.564212 -- lng 126.977969 -- radius 2000
Summary
- k-skill features for transportation services in Korea provide CLI access to eleven distinct transit modes including rail, bus, subway, and EV infrastructure.
- Each skill follows a standardized architecture:
skill.jsonfor interface definition,SKILL.mdfor documentation, andscripts/<name>.pyfor implementation. - Authentication leverages environment variables (e.g.,
KSKILL_KTX_ID) and thek-skill-proxyservice for secure API key management. - Browser fallback mechanisms handle web-only reservation flows via
k-skill-browser-runtime. - All skills are invocable through the
@nomadamas/k-skillnpm package using theexeccommand pattern.
Frequently Asked Questions
How do I authenticate with Korean rail services using k-skill?
Set environment variables KSKILL_KTX_ID and KSKILL_KTX_PASSWORD for Korail services, or their SRT equivalents, in your ~/.config/k-skill/secrets.env file. The scripts/ktx_booking.py and scripts/srt_booking.py implementations read these credentials at runtime to execute reservation flows.
What is the difference between express-bus-booking and intercity-bus-booking?
Express-bus-booking targets KOBUS high-speed express buses operating on major trunk routes, while intercity-bus-booking queries the T-Money system for standard intercity services with different pricing structures and stop patterns. Each skill uses distinct endpoints: express_bus_search.py for KOBUS and intercity_bus_search.py for T-Money.
How does k-skill handle APIs that require browser interaction?
When an official API surface is unavailable or requires session-based authentication, the skill delegates to k-skill-browser-runtime or CloakBrowser in "Dolshoi" mode. This runtime safely automates the official web UI, extracting data or completing reservations while keeping the automation logic separate from the API wrappers in scripts/.
Can I use these transportation skills in automated production pipelines?
Yes. The skills are designed for automation via the npx -y @nomadamas/k-skill@0 exec interface. Ensure you configure the ~/.config/k-skill/secrets.env template with production credentials and verify that k-skill-proxy is accessible for any public data API calls requiring DATA_GO_KR_API_KEY injection.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →