# k-skill Features for Transportation Services in Korea: Complete CLI Skill Reference

> Explore k-skill features for Korean transportation. This CLI skill reference details how to query schedules, reserve tickets, and check real-time status for rail, bus, subway, and more.

- Repository: [NomaDamas/k-skill](https://github.com/NomaDamas/k-skill)
- Tags: api-reference
- Published: 2026-08-03

---

**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 in [`scripts/ktx_booking.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/ktx_booking.py) with configuration at [`packages/k-skill-cli/skills/ktx-booking/skill.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-cli/skills/ktx-booking/skill.json).

- **SRT booking** (`srt-booking`): Identical capabilities for Seoul-Rex-Trains (SRT), implemented in [`scripts/srt_booking.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/srt_booking.py).

### Bus Networks

- **Express-bus booking** (`express-bus-booking`): Query KOBUS high-speed bus routes and seat availability via [`scripts/express_bus_search.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/express_bus_search.py).

- **Intercity-bus booking** (`intercity-bus-booking`): Access T-Money intercity timetables and fare information through [`scripts/intercity_bus_search.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/intercity_bus_search.py).

### Urban Transit and Routing

- **Seoul subway arrival** (`seoul-subway-arrival`): Retrieve real-time arrival predictions for Seoul Metro lines using [`scripts/subway_arrival.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/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 via [`scripts/transit_route.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/transit_route.py).

### Micro-Mobility and Road Data

- **Seoul bike** (`seoul-bike`): Locate nearby bike-sharing stations and check dock availability through [`scripts/bike_nearby.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/bike_nearby.py).

- **Highway traffic status** (`highway-traffic-status`): Current congestion and incident reports for Korean expressways via [`scripts/traffic_status.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/traffic_status.py).

### Infrastructure and Amenities

- **Parking-lot search** (`parking-lot-search`): Find public parking facilities with pricing and vacancy data through [`scripts/parking_search.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/parking_search.py).

- **EV charger nearby** (`ev-charger-nearby`): Locate electric vehicle charging stations within a specified radius using [`scripts/ev_charger_search.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/ev_charger_search.py).

- **Public restroom nearby** (`public-restroom-nearby`): Query nearest public restroom facilities for travelers via [`scripts/restroom_search.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/restroom_search.py).

## Skill Architecture and File Structure

Each transportation skill follows a consistent three-file pattern according to the source code:

1. **Skill definition**: `packages/k-skill-cli/skills/<skill-name>/skill.json` declares the CLI interface, input parameters, and output schema.

2. **Documentation**: `<skill-name>/SKILL.md` provides human-readable instructions, flow diagrams, and environment variable requirements.

3. **Implementation**: `scripts/<skill_file>.py` (or `.js` for 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`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-cli/skills/ktx-booking/skill.json) for its interface contract, while the executable logic lives in [`scripts/ktx_booking.py`](https://github.com/NomaDamas/k-skill/blob/main/scripts/ktx_booking.py) alongside its [`ktx-booking/SKILL.md`](https://github.com/NomaDamas/k-skill/blob/main/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`:

```bash

# 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.json`](https://github.com/NomaDamas/k-skill/blob/main/skill.json) for interface definition, [`SKILL.md`](https://github.com/NomaDamas/k-skill/blob/main/SKILL.md) for documentation, and `scripts/<name>.py` for implementation.
- Authentication leverages environment variables (e.g., `KSKILL_KTX_ID`) and the `k-skill-proxy` service 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-skill` npm package using the `exec` command 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`](https://github.com/NomaDamas/k-skill/blob/main/scripts/ktx_booking.py) and [`scripts/srt_booking.py`](https://github.com/NomaDamas/k-skill/blob/main/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`](https://github.com/NomaDamas/k-skill/blob/main/express_bus_search.py) for KOBUS and [`intercity_bus_search.py`](https://github.com/NomaDamas/k-skill/blob/main/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.