krx-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Daniel Jung
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,161 @@
1
+ # krx-cli
2
+
3
+ AI 에이전트를 위한 KRX(한국거래소) Open API CLI 도구입니다.
4
+
5
+ Claude Code, GPT, Cursor 등의 AI 에이전트가 Bash tool을 통해 한국 주식시장 데이터를 조회할 수 있습니다.
6
+
7
+ ## 특징
8
+
9
+ - **Agent-Native**: JSON 출력 기본, 시맨틱 exit code, 스키마 인트로스펙션
10
+ - **전체 시장 커버리지**: 지수, 주식, ETF/ETN/ELW, 채권, 파생상품, 일반상품, ESG (31개 엔드포인트)
11
+ - **안전한 사용**: 입력 검증, rate limit 추적, dry-run 지원
12
+ - **서비스 승인 관리**: API별 승인 상태 자동 확인
13
+
14
+ ## 설치
15
+
16
+ ```bash
17
+ npm install -g krx-cli
18
+ ```
19
+
20
+ ## 설정
21
+
22
+ ### 1. API 키 발급
23
+
24
+ [KRX Open API 포털](https://openapi.krx.co.kr/)에서 회원가입 후 API 키를 발급받습니다.
25
+
26
+ ### 2. API 키 등록
27
+
28
+ ```bash
29
+ krx auth set <your-api-key>
30
+
31
+ # 또는 환경변수 사용
32
+ export KRX_API_KEY=<your-api-key>
33
+ ```
34
+
35
+ ### 3. 서비스 승인 확인
36
+
37
+ KRX Open API는 카테고리별로 별도 승인이 필요합니다.
38
+
39
+ ```bash
40
+ krx auth status
41
+ ```
42
+
43
+ ```json
44
+ {
45
+ "api_key_set": true,
46
+ "services": {
47
+ "index": { "approved": true },
48
+ "stock": { "approved": true },
49
+ "etp": { "approved": true },
50
+ "bond": { "approved": true },
51
+ "derivative": { "approved": true },
52
+ "commodity": { "approved": true },
53
+ "esg": { "approved": false, "error": "Unauthorized API Call" }
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## 사용법
59
+
60
+ ### 지수 조회
61
+
62
+ ```bash
63
+ krx index list --date 20250307 --market kospi
64
+ krx index list --date 20250307 --market kosdaq
65
+ ```
66
+
67
+ ### 주식 조회
68
+
69
+ ```bash
70
+ krx stock list --date 20250307 --market kospi
71
+ krx stock list --date 20250307 --market kosdaq
72
+ krx stock info --market kospi
73
+ ```
74
+
75
+ ### ETF/ETN/ELW 조회
76
+
77
+ ```bash
78
+ krx etp list --date 20250307 --type etf
79
+ krx etp list --date 20250307 --type etn
80
+ ```
81
+
82
+ ### 채권 조회
83
+
84
+ ```bash
85
+ krx bond list --date 20250307 --market kts
86
+ krx bond list --date 20250307 --market general
87
+ ```
88
+
89
+ ### 파생상품 조회
90
+
91
+ ```bash
92
+ krx derivative list --date 20250307 --type futures
93
+ krx derivative list --date 20250307 --type options
94
+ ```
95
+
96
+ ### 일반상품 조회
97
+
98
+ ```bash
99
+ krx commodity list --date 20250307 --type gold
100
+ krx commodity list --date 20250307 --type oil
101
+ ```
102
+
103
+ ### ESG 조회
104
+
105
+ ```bash
106
+ krx esg list --date 20250307 --type index
107
+ krx esg list --date 20250307 --type sri-bond
108
+ ```
109
+
110
+ ### 스키마 조회
111
+
112
+ ```bash
113
+ krx schema --all
114
+ krx schema stock.stk_bydd_trd
115
+ ```
116
+
117
+ ## 글로벌 옵션
118
+
119
+ | 옵션 | 설명 | 기본값 |
120
+ |------|------|--------|
121
+ | `-o, --output <format>` | 출력 형식: json, table, ndjson | json (파이프) / table (터미널) |
122
+ | `-f, --fields <fields>` | 출력 필드 필터 (쉼표 구분) | 전체 |
123
+ | `--dry-run` | API 호출 없이 요청 내용 출력 | - |
124
+ | `-v, --verbose` | 상세 로그 (stderr) | - |
125
+
126
+ ## Exit Codes
127
+
128
+ | 코드 | 의미 |
129
+ |------|------|
130
+ | 0 | 성공 |
131
+ | 1 | 일반 오류 |
132
+ | 2 | 사용법 오류 (잘못된 인자) |
133
+ | 3 | 데이터 없음 |
134
+ | 4 | 인증 실패 |
135
+ | 5 | Rate limit 초과 (일 10,000건) |
136
+ | 6 | 서비스 미승인 |
137
+
138
+ ## AI 에이전트 연동
139
+
140
+ ### Claude Code
141
+
142
+ SKILL.md 파일을 프로젝트에 포함하면 Claude Code가 자동으로 사용법을 인식합니다.
143
+
144
+ ```bash
145
+ # Claude Code에서 바로 사용 가능
146
+ krx stock list --date 20250307 --market kospi --fields ISU_NM,TDD_CLSPRC,FLUC_RT -o json
147
+ ```
148
+
149
+ ## 개발
150
+
151
+ ```bash
152
+ pnpm install
153
+ pnpm build
154
+ pnpm test
155
+ pnpm typecheck
156
+ pnpm lint
157
+ ```
158
+
159
+ ## 라이선스
160
+
161
+ MIT
package/SKILL.md ADDED
@@ -0,0 +1,173 @@
1
+ ---
2
+ name: krx-cli
3
+ description: Query KRX (Korea Exchange) market data via CLI
4
+ required_env:
5
+ - KRX_API_KEY
6
+ install: npm install -g krx-cli
7
+ binary: krx
8
+ invariants:
9
+ - Always use YYYYMMDD format for --date (e.g., 20250307)
10
+ - Data is T-1 (previous trading day), available from 2010 onwards
11
+ - Default output is JSON to stdout, errors go to stderr
12
+ - Rate limit is 10,000 API calls per day
13
+ - Each API category requires separate approval from KRX
14
+ - All response field values are strings (including numbers)
15
+ ---
16
+
17
+ # krx-cli
18
+
19
+ Agent-native CLI for querying KRX (Korea Exchange) Open API data.
20
+
21
+ ## Setup
22
+
23
+ ```bash
24
+ # Install
25
+ npm install -g krx-cli
26
+
27
+ # Set API key (get from https://openapi.krx.co.kr/)
28
+ krx auth set <your-api-key>
29
+
30
+ # Check which services are approved
31
+ krx auth status
32
+ ```
33
+
34
+ ## Commands
35
+
36
+ ### Authentication
37
+
38
+ ```bash
39
+ krx auth set <api-key> # Save API key
40
+ krx auth status # Check all service approvals (JSON)
41
+ krx auth check <category> # Check specific category: index, stock, etp, bond, derivative, commodity, esg
42
+ ```
43
+
44
+ ### Index (지수)
45
+
46
+ ```bash
47
+ krx index list --date 20250307 --market kospi # KOSPI index
48
+ krx index list --date 20250307 --market kosdaq # KOSDAQ index
49
+ krx index list --date 20250307 --market krx # KRX index
50
+ krx index list --date 20250307 --market bond # Bond index
51
+ krx index list --date 20250307 --market derivative # Derivative index
52
+ ```
53
+
54
+ ### Stock (주식)
55
+
56
+ ```bash
57
+ krx stock list --date 20250307 --market kospi # KOSPI stocks
58
+ krx stock list --date 20250307 --market kosdaq # KOSDAQ stocks
59
+ krx stock list --date 20250307 --market konex # KONEX stocks
60
+ krx stock info --market kospi # Stock base info
61
+ ```
62
+
63
+ ### ETP (ETF/ETN/ELW)
64
+
65
+ ```bash
66
+ krx etp list --date 20250307 --type etf # ETF
67
+ krx etp list --date 20250307 --type etn # ETN
68
+ krx etp list --date 20250307 --type elw # ELW
69
+ ```
70
+
71
+ ### Bond (채권)
72
+
73
+ ```bash
74
+ krx bond list --date 20250307 --market kts # Government bonds
75
+ krx bond list --date 20250307 --market general # General bonds
76
+ krx bond list --date 20250307 --market small # Small bonds
77
+ ```
78
+
79
+ ### Derivative (파생상품)
80
+
81
+ ```bash
82
+ krx derivative list --date 20250307 --type futures # Futures
83
+ krx derivative list --date 20250307 --type options # Options
84
+ krx derivative list --date 20250307 --type futures-kospi # KOSPI stock futures
85
+ krx derivative list --date 20250307 --type futures-kosdaq # KOSDAQ stock futures
86
+ krx derivative list --date 20250307 --type options-kospi # KOSPI stock options
87
+ krx derivative list --date 20250307 --type options-kosdaq # KOSDAQ stock options
88
+ ```
89
+
90
+ ### Commodity (일반상품)
91
+
92
+ ```bash
93
+ krx commodity list --date 20250307 --type gold # Gold
94
+ krx commodity list --date 20250307 --type oil # Oil
95
+ krx commodity list --date 20250307 --type emission # Emission trading
96
+ ```
97
+
98
+ ### ESG
99
+
100
+ ```bash
101
+ krx esg list --date 20250307 --type index # ESG index
102
+ krx esg list --date 20250307 --type etp # ESG ETP
103
+ krx esg list --date 20250307 --type sri-bond # SRI bonds
104
+ ```
105
+
106
+ ### Schema (introspection)
107
+
108
+ ```bash
109
+ krx schema --all # All 31 endpoint schemas (JSON)
110
+ krx schema index.kospi_dd_trd # Specific endpoint schema
111
+ ```
112
+
113
+ ## Global Flags
114
+
115
+ ```
116
+ --output, -o <format> json (default) | table | ndjson
117
+ --fields, -f <fields> Filter output fields: --fields ISU_NM,TDD_CLSPRC,FLUC_RT
118
+ --dry-run Show request details without calling API
119
+ --verbose, -v Verbose logging to stderr
120
+ ```
121
+
122
+ ## Exit Codes
123
+
124
+ ```
125
+ 0 = Success
126
+ 1 = General error
127
+ 2 = Usage error (bad arguments)
128
+ 3 = No data found
129
+ 4 = Auth failure (no/invalid API key)
130
+ 5 = Rate limit exceeded (10,000/day)
131
+ 6 = Service not approved (category not activated)
132
+ ```
133
+
134
+ ## Common Patterns
135
+
136
+ ### Get KOSPI closing price for a specific date
137
+
138
+ ```bash
139
+ krx index list --date 20250307 --market kospi --fields IDX_NM,CLSPRC_IDX,FLUC_RT
140
+ ```
141
+
142
+ ### Get Samsung Electronics stock price
143
+
144
+ ```bash
145
+ krx stock list --date 20250307 --market kospi --fields ISU_NM,TDD_CLSPRC,FLUC_RT | jq '.[] | select(.ISU_NM == "삼성전자")'
146
+ ```
147
+
148
+ ### Check API availability before querying
149
+
150
+ ```bash
151
+ krx auth status -o json
152
+ ```
153
+
154
+ ### Dry run to verify request
155
+
156
+ ```bash
157
+ krx stock list --date 20250307 --market kospi --dry-run
158
+ ```
159
+
160
+ ## Key Response Fields
161
+
162
+ ### Stock / Index common fields
163
+ - `BAS_DD` - Date (YYYYMMDD)
164
+ - `ISU_NM` / `IDX_NM` - Name
165
+ - `TDD_CLSPRC` / `CLSPRC_IDX` - Closing price
166
+ - `CMPPREVDD_PRC` / `CMPPREVDD_IDX` - Change from previous day
167
+ - `FLUC_RT` - Change rate (%)
168
+ - `TDD_OPNPRC` / `OPNPRC_IDX` - Opening price
169
+ - `TDD_HGPRC` / `HGPRC_IDX` - High price
170
+ - `TDD_LWPRC` / `LWPRC_IDX` - Low price
171
+ - `ACC_TRDVOL` - Trading volume
172
+ - `ACC_TRDVAL` - Trading value
173
+ - `MKTCAP` - Market capitalization