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 +21 -0
- package/README.md +161 -0
- package/SKILL.md +173 -0
- package/dist/cli.js +1269 -0
- package/dist/cli.js.map +1 -0
- package/package.json +58 -0
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
|