kwcli 0.1.0__tar.gz → 1.0.0__tar.gz

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.
Files changed (67) hide show
  1. {kwcli-0.1.0 → kwcli-1.0.0}/LICENSE.md +0 -1
  2. {kwcli-0.1.0 → kwcli-1.0.0}/PKG-INFO +56 -12
  3. {kwcli-0.1.0 → kwcli-1.0.0}/README.md +55 -11
  4. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/_data/kiwoom_api_spec.json +43668 -2835
  5. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/auth.py +2 -2
  6. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/secrets.py +12 -6
  7. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/token_store.py +5 -3
  8. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/specs.py +26 -0
  9. kwcli-1.0.0/kiwoom_cli/README.md +762 -0
  10. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/argument_maps.py +90 -8
  11. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/arguments.py +45 -6
  12. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/auth.py +20 -8
  13. kwcli-1.0.0/kiwoom_cli/commands/exchange.py +91 -0
  14. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/groups.py +177 -0
  15. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/mapped.py +23 -2
  16. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/orders.py +41 -1
  17. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/stocks.py +6 -3
  18. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/streams.py +45 -0
  19. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/doctor.py +10 -10
  20. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/condition.py +9 -1
  21. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/main.py +22 -1
  22. kwcli-1.0.0/kiwoom_cli/maps/README.md +91 -0
  23. kwcli-1.0.0/kiwoom_cli/maps/api_commands.csv +338 -0
  24. kwcli-1.0.0/kiwoom_cli/maps/arguments.csv +1384 -0
  25. kwcli-1.0.0/kiwoom_cli/maps/coupled_arguments.csv +11 -0
  26. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_confirmation_commands.csv +5 -0
  27. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_confirmation_fields.csv +26 -0
  28. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_price_policies.csv +17 -0
  29. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/output.py +23 -1
  30. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/setup.py +10 -7
  31. {kwcli-0.1.0 → kwcli-1.0.0}/pyproject.toml +1 -1
  32. kwcli-0.1.0/kiwoom_cli/README.md +0 -671
  33. kwcli-0.1.0/kiwoom_cli/maps/README.md +0 -99
  34. kwcli-0.1.0/kiwoom_cli/maps/api_commands.csv +0 -209
  35. kwcli-0.1.0/kiwoom_cli/maps/arguments.csv +0 -731
  36. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/__init__.py +0 -0
  37. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/__init__.py +0 -0
  38. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/client.py +0 -0
  39. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/errors.py +0 -0
  40. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/platform_paths.py +0 -0
  41. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/profiles.py +0 -0
  42. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/runtime.py +0 -0
  43. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/settings.py +0 -0
  44. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/types.py +0 -0
  45. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/ws_client.py +0 -0
  46. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/__init__.py +0 -0
  47. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/decoders.py +0 -0
  48. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/events.py +0 -0
  49. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/packets.py +0 -0
  50. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/schemas.py +0 -0
  51. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/stream.py +0 -0
  52. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/__init__.py +0 -0
  53. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/__main__.py +0 -0
  54. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/auth_context.py +0 -0
  55. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/banner.py +0 -0
  56. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/__init__.py +0 -0
  57. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/spec.py +0 -0
  58. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/errors.py +0 -0
  59. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/__init__.py +0 -0
  60. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/rest.py +0 -0
  61. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/waits.py +0 -0
  62. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/websocket.py +0 -0
  63. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_value_labels.csv +0 -0
  64. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/positional_arguments.csv +0 -0
  65. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/order_confirmation.py +0 -0
  66. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/registry.py +0 -0
  67. {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/safety.py +0 -0
@@ -33,4 +33,3 @@ All rights reserved. (모든 권리 보유)
33
33
  본 라이선스는 대한민국 법률에 따라 해석되며, 분쟁 발생 시 회사 본점
34
34
  소재지를 관할하는 법원을 제1심 관할 법원으로 합니다.
35
35
 
36
- 문의: [키움증권 OpenAPI 담당 부서 / 연락처]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kwcli
3
- Version: 0.1.0
3
+ Version: 1.0.0
4
4
  Summary: Kiwoom OpenAPI toolkit
5
5
  License-File: LICENSE.md
6
6
  Requires-Python: >=3.13
@@ -18,16 +18,21 @@ Description-Content-Type: text/markdown
18
18
  작업을 수행해야 하는 사람과 AI 에이전트를 위한 **탐색(discovery) 중심**의 운영
19
19
  도구입니다.
20
20
 
21
- 설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
21
+ 배포 패키지 이름은 `kwcli` 이며, 설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
22
+
23
+ > **키움증권 공식 프로젝트**
24
+ > 본 프로젝트는 **키움증권(Kiwoom Securities)이 공식적으로 제공·관리**하는 도구입니다.
25
+ > PyPI 패키지 [`kwcli`](https://pypi.org/project/kwcli/)는 키움증권이 게시한 공식 배포본입니다.
26
+ > 키움 REST API 공식 포털: <https://openapi.kiwoom.com> (API 가이드: <https://openapi.kiwoom.com/guide/apiguide>)
22
27
 
23
28
  ## 설치
24
29
 
25
30
  ```sh
26
- uv tool install kiwoomcli
31
+ uv tool install kwcli
27
32
  # 또는
28
- pipx install kiwoomcli
33
+ pipx install kwcli
29
34
  # 또는
30
- pip install kiwoomcli
35
+ pip install kwcli
31
36
  ```
32
37
 
33
38
  설치한 뒤 계정과 자격 증명을 초기화합니다.
@@ -47,6 +52,7 @@ kiwoomcli setup # 온보딩: 별칭, demo/real
47
52
  kiwoomcli spec search "체결" # 필요한 API/명령 찾기
48
53
  kiwoomcli domestic stocks info --code 005930 -h # 매핑된 계약 확인
49
54
  kiwoomcli domestic stocks info --code 005930 --format json
55
+ kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL --format json
50
56
  kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type limit --confirm
51
57
  ```
52
58
 
@@ -64,8 +70,9 @@ kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type l
64
70
  현재 프로필), 프로필별 자격 증명/토큰 상태, 권장 조치를 보여줍니다.
65
71
  - `--profile NAME`은 저장된 계정 별칭(OS 자격 증명 저장소의 App Key / Secret)을
66
72
  사용합니다. `--mode demo|real`은 저장된 별칭을 쓰지 않으며, mode 단독 실행에는
67
- `APP_KEY` / `APP_SECRET` 환경변수가 필요합니다. 자격 증명이 없을 때는 진입
68
- 방식에 맞는 해결책을 함께 안내합니다.
73
+ 환경변수가 필요합니다. 이때 환경변수 이름은 모드별로 다릅니다 —
74
+ `real`은 `APP_KEY` / `APP_SECRET`, `demo`는 `APP_KEY_MOCK` / `APP_SECRET_MOCK`.
75
+ 자격 증명이 없을 때는 진입 방식에 맞는 해결책을 함께 안내합니다.
69
76
 
70
77
  자주 쓰는 인증 명령:
71
78
 
@@ -75,14 +82,19 @@ kiwoomcli auth list
75
82
  kiwoomcli auth switch <alias>
76
83
  kiwoomcli auth status [--profile NAME | --mode demo|real]
77
84
  kiwoomcli auth refresh [--profile NAME | --mode demo|real]
85
+ kiwoomcli auth revoke [--profile NAME | --mode demo|real]
78
86
  kiwoomcli auth clear [--profile NAME | --mode demo|real] [--all]
79
87
  kiwoomcli auth remove <alias>
88
+ kiwoomcli auth export [--profile NAME | --mode demo|real] [--dir DIR] [--yes]
80
89
  ```
81
90
 
82
91
  - `auth clear`는 비밀 정보만 삭제합니다(기본은 토큰 캐시, `--all`을 주면 OS에
83
92
  저장된 App Key / Secret까지). 별칭 등록 자체는 유지됩니다.
84
93
  - `auth remove <alias>`는 계정을 완전히 등록 해제합니다(프로필 항목, 토큰 캐시,
85
94
  저장된 자격 증명 모두).
95
+ - `auth revoke`는 서버에서 현재 토큰을 폐기하고 로컬 토큰 캐시도 삭제합니다.
96
+ - `auth export`는 저장된 App Key/Secret을 화면에 출력하지 않고 `.env` 파일로
97
+ 내보냅니다. 비대화형 환경에서는 `--yes`가 필요합니다.
86
98
 
87
99
  ## 명령 그룹
88
100
 
@@ -111,11 +123,35 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
111
123
  | `investors` | `kiwoomcli domestic investors by-stock --code 005930` |
112
124
  | `short-selling` | `kiwoomcli domestic short-selling trend --code 005930 --from 20260101 --to 20260529` |
113
125
  | `securities-lending` | `kiwoomcli domestic securities-lending by-stock --code 005930` |
114
- | `themes` | `kiwoomcli domestic themes by-stock --code 005930 --exchange KRX` |
126
+ | `themes` | `kiwoomcli domestic themes by-stock --code <테마그룹코드> --exchange KRX` |
115
127
  | `accounts` | `kiwoomcli domestic accounts holdings --basis total --exchange KRX` |
116
128
  | `orders` | `kiwoomcli domestic orders list-open --stock-scope all --side all --exchange ALL` |
117
129
  | `streams` | `kiwoomcli domestic streams trades --code 005930 --count 1` |
118
130
 
131
+ 미국주식 리소스는 `overseas` 아래에서 제공합니다.
132
+
133
+ | 그룹 | 예시 |
134
+ | --- | --- |
135
+ | `stocks` | `kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL` |
136
+ | `quotes` | `kiwoomcli overseas quotes info --exchange NASDAQ --code AAPL` |
137
+ | `orderbooks` | `kiwoomcli overseas orderbooks list --exchange NASDAQ --code AAPL` |
138
+ | `candles` | `kiwoomcli overseas candles stock-daily --exchange NASDAQ --code AAPL` |
139
+ | `rankings` | `kiwoomcli overseas rankings today-volume-top --exchange nasdaq` |
140
+ | `sectors` | `kiwoomcli overseas sectors period-returns --exchange NASDAQ` |
141
+ | `investment-info` | `kiwoomcli overseas investment-info research --kind stock` |
142
+ | `accounts` | `kiwoomcli overseas accounts balance --exchange NASDAQ` |
143
+ | `orders` | `kiwoomcli overseas orders orderable-quantity --exchange NASDAQ --code AAPL --price 150` |
144
+ | `exchange` | `kiwoomcli overseas exchange rate --direction krw-to-usd` |
145
+ | `streams` | `kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1` |
146
+
147
+ 전체 API 337개(OAuth 2, 국내주식 206, 미국주식 129)가 로컬 스펙과 CLI
148
+ 맵에 포함됩니다. 정확한 옵션은 각 명령의 `-h` 출력으로 확인하세요.
149
+
150
+ 미국주식 `--exchange` 값의 대소문자는 명령별 API 계약을 따릅니다. 종목·시세·
151
+ 호가·캔들·계좌·스트림은 `AMEX|NASDAQ|NYSE`, 순위는
152
+ `all|nyse|nasdaq|amex`, 업종의 `period-returns`는
153
+ `ALL|NYSE|AMEX|NASDAQ`을 사용합니다. 항상 해당 명령의 `-h`를 확인하세요.
154
+
119
155
  ## 출력 형식
120
156
 
121
157
  도메인 명령은 `--format`과 프로필/모드 선택자를 받습니다.
@@ -124,12 +160,16 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
124
160
  --format pretty|json|jsonl|yaml
125
161
  --profile NAME
126
162
  --mode demo|real
163
+ --pages N
127
164
  ```
128
165
 
129
166
  - `pretty`(기본값)는 사람이 읽기 좋은 들여쓰기 형식입니다.
130
167
  - `json`은 에이전트가 파싱하기 좋은 한 줄 압축 출력입니다.
131
168
  - `jsonl`은 한 줄에 JSON 레코드 하나씩 출력합니다(목록 행이나 스트림에 유용).
132
169
  - `yaml`은 YAML 형식으로 출력합니다.
170
+ - `--pages`는 REST 연속조회 페이지 수입니다. 기본값은 1이며, 0은 서버가
171
+ 제공하는 모든 페이지를 조회합니다. `spec` 명령에는 적용되지 않습니다.
172
+ - REST 명령의 `--named`는 응답 필드 코드를 스펙의 한글명으로 변환합니다.
133
173
 
134
174
  안전장치가 적용된 계좌/주문 조회와 스트림에서는 출력 계층이 계좌 식별자를
135
175
  마스킹합니다. 다만 주문번호(`ord_no`, `orig_ord_no` 등)는 `orders modify`/`cancel`
@@ -143,13 +183,14 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
143
183
 
144
184
  ```sh
145
185
  kiwoomcli domestic streams trades --code 005930 --count 1 --named --format json
186
+ kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1 --named --format json
146
187
  ```
147
188
 
148
189
  - `--count`는 `REAL` 데이터 메시지만 셉니다. `REG`/`REMOVE`/`SYSTEM`은 제어
149
190
  메시지입니다.
150
191
  - `--check`는 유한한 등록/수집을 수행하며, `REAL` 틱이 오지 않아도 정상 종료
151
192
  합니다.
152
- - `--named`는 패키지에 포함된 키움 스펙 기반 내장 스키마로 `REAL` 프레임을
193
+ - 스트림 명령의 `--named`는 키움 스펙 기반 내장 스키마로 `REAL` 프레임 FID를
153
194
  변환합니다. 알 수 없는 FID는 `unknown` 아래에 보존됩니다.
154
195
 
155
196
  장시간 구독을 저장하려면 파일로 출력하고 OS 도구로 프로세스를 백그라운드로
@@ -171,12 +212,15 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
171
212
 
172
213
  ## 주문 안전장치
173
214
 
174
- 주문 쓰기 명령(`orders buy/sell/modify/cancel`, `credit-*`, `gold-*`)에는
215
+ 국내·미국주식 주문 쓰기 명령(`orders buy/sell/modify/cancel`,
216
+ `credit-*`, `gold-*`)과 미국주식 환전 신청(`overseas exchange request`)에는
175
217
  안전장치가 적용됩니다.
176
218
 
177
219
  - `--confirm`이 없으면 짧은 미전송 주문 요약을 출력하고 주문 API를 호출하지
178
220
  않습니다.
179
221
  - `--confirm`이 있으면 실제 엔드포인트로 전송합니다.
222
+ - `overseas exchange request`도 `--confirm`이 없으면 미전송 환전 확인만
223
+ 출력하며, `--confirm`이 있어야 실제 환전 API를 호출합니다.
180
224
  - 주문 유형별 가격 규칙은 전송 경로 이전에 검증됩니다. 예를 들어
181
225
  `--order-type limit`에는 `--price`가 필요하고, `--order-type market`에는
182
226
  `--price`를 넣으면 안 됩니다. 잘못된 주문 식별자는 전송 전에 보고됩니다.
@@ -190,13 +234,13 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
190
234
 
191
235
  | 개념 | 옵션 | 예시 |
192
236
  | --- | --- | --- |
193
- | 종목/주식/업종/ETF/ELW 코드 | `--code`, `-c` | `--code 005930` |
237
+ | 종목/주식/업종/ETF/ELW 코드 | `--code` | `--code 005930` |
194
238
  | 인증 프로필 | `--profile` | `--profile demo-main` |
195
239
  | 실행 모드 | `--mode` | `--mode demo` |
196
240
  | 시장/거래소 선택 | `--market` | `--market kospi` |
197
241
  | 수량 | `--qty` | `--qty 10` |
198
242
  | 가격 | `--price` | `--price 70000` |
199
- | 매수/매도 구분 | `--side` | `--side buy` |
243
+ | 매수/매도 구분 | `--side` | 명령별 값은 `-h`에서 확인 |
200
244
  | 주문 유형 | `--order-type` | `--order-type limit` |
201
245
  | 주문 식별자 | `--order-id` | `--order-id 123` |
202
246
  | 시작 / 종료 일자 | `--from` / `--to` | `--from 20260101 --to 20260529` |
@@ -5,16 +5,21 @@
5
5
  작업을 수행해야 하는 사람과 AI 에이전트를 위한 **탐색(discovery) 중심**의 운영
6
6
  도구입니다.
7
7
 
8
- 설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
8
+ 배포 패키지 이름은 `kwcli` 이며, 설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
9
+
10
+ > **키움증권 공식 프로젝트**
11
+ > 본 프로젝트는 **키움증권(Kiwoom Securities)이 공식적으로 제공·관리**하는 도구입니다.
12
+ > PyPI 패키지 [`kwcli`](https://pypi.org/project/kwcli/)는 키움증권이 게시한 공식 배포본입니다.
13
+ > 키움 REST API 공식 포털: <https://openapi.kiwoom.com> (API 가이드: <https://openapi.kiwoom.com/guide/apiguide>)
9
14
 
10
15
  ## 설치
11
16
 
12
17
  ```sh
13
- uv tool install kiwoomcli
18
+ uv tool install kwcli
14
19
  # 또는
15
- pipx install kiwoomcli
20
+ pipx install kwcli
16
21
  # 또는
17
- pip install kiwoomcli
22
+ pip install kwcli
18
23
  ```
19
24
 
20
25
  설치한 뒤 계정과 자격 증명을 초기화합니다.
@@ -34,6 +39,7 @@ kiwoomcli setup # 온보딩: 별칭, demo/real
34
39
  kiwoomcli spec search "체결" # 필요한 API/명령 찾기
35
40
  kiwoomcli domestic stocks info --code 005930 -h # 매핑된 계약 확인
36
41
  kiwoomcli domestic stocks info --code 005930 --format json
42
+ kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL --format json
37
43
  kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type limit --confirm
38
44
  ```
39
45
 
@@ -51,8 +57,9 @@ kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type l
51
57
  현재 프로필), 프로필별 자격 증명/토큰 상태, 권장 조치를 보여줍니다.
52
58
  - `--profile NAME`은 저장된 계정 별칭(OS 자격 증명 저장소의 App Key / Secret)을
53
59
  사용합니다. `--mode demo|real`은 저장된 별칭을 쓰지 않으며, mode 단독 실행에는
54
- `APP_KEY` / `APP_SECRET` 환경변수가 필요합니다. 자격 증명이 없을 때는 진입
55
- 방식에 맞는 해결책을 함께 안내합니다.
60
+ 환경변수가 필요합니다. 이때 환경변수 이름은 모드별로 다릅니다 —
61
+ `real`은 `APP_KEY` / `APP_SECRET`, `demo`는 `APP_KEY_MOCK` / `APP_SECRET_MOCK`.
62
+ 자격 증명이 없을 때는 진입 방식에 맞는 해결책을 함께 안내합니다.
56
63
 
57
64
  자주 쓰는 인증 명령:
58
65
 
@@ -62,14 +69,19 @@ kiwoomcli auth list
62
69
  kiwoomcli auth switch <alias>
63
70
  kiwoomcli auth status [--profile NAME | --mode demo|real]
64
71
  kiwoomcli auth refresh [--profile NAME | --mode demo|real]
72
+ kiwoomcli auth revoke [--profile NAME | --mode demo|real]
65
73
  kiwoomcli auth clear [--profile NAME | --mode demo|real] [--all]
66
74
  kiwoomcli auth remove <alias>
75
+ kiwoomcli auth export [--profile NAME | --mode demo|real] [--dir DIR] [--yes]
67
76
  ```
68
77
 
69
78
  - `auth clear`는 비밀 정보만 삭제합니다(기본은 토큰 캐시, `--all`을 주면 OS에
70
79
  저장된 App Key / Secret까지). 별칭 등록 자체는 유지됩니다.
71
80
  - `auth remove <alias>`는 계정을 완전히 등록 해제합니다(프로필 항목, 토큰 캐시,
72
81
  저장된 자격 증명 모두).
82
+ - `auth revoke`는 서버에서 현재 토큰을 폐기하고 로컬 토큰 캐시도 삭제합니다.
83
+ - `auth export`는 저장된 App Key/Secret을 화면에 출력하지 않고 `.env` 파일로
84
+ 내보냅니다. 비대화형 환경에서는 `--yes`가 필요합니다.
73
85
 
74
86
  ## 명령 그룹
75
87
 
@@ -98,11 +110,35 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
98
110
  | `investors` | `kiwoomcli domestic investors by-stock --code 005930` |
99
111
  | `short-selling` | `kiwoomcli domestic short-selling trend --code 005930 --from 20260101 --to 20260529` |
100
112
  | `securities-lending` | `kiwoomcli domestic securities-lending by-stock --code 005930` |
101
- | `themes` | `kiwoomcli domestic themes by-stock --code 005930 --exchange KRX` |
113
+ | `themes` | `kiwoomcli domestic themes by-stock --code <테마그룹코드> --exchange KRX` |
102
114
  | `accounts` | `kiwoomcli domestic accounts holdings --basis total --exchange KRX` |
103
115
  | `orders` | `kiwoomcli domestic orders list-open --stock-scope all --side all --exchange ALL` |
104
116
  | `streams` | `kiwoomcli domestic streams trades --code 005930 --count 1` |
105
117
 
118
+ 미국주식 리소스는 `overseas` 아래에서 제공합니다.
119
+
120
+ | 그룹 | 예시 |
121
+ | --- | --- |
122
+ | `stocks` | `kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL` |
123
+ | `quotes` | `kiwoomcli overseas quotes info --exchange NASDAQ --code AAPL` |
124
+ | `orderbooks` | `kiwoomcli overseas orderbooks list --exchange NASDAQ --code AAPL` |
125
+ | `candles` | `kiwoomcli overseas candles stock-daily --exchange NASDAQ --code AAPL` |
126
+ | `rankings` | `kiwoomcli overseas rankings today-volume-top --exchange nasdaq` |
127
+ | `sectors` | `kiwoomcli overseas sectors period-returns --exchange NASDAQ` |
128
+ | `investment-info` | `kiwoomcli overseas investment-info research --kind stock` |
129
+ | `accounts` | `kiwoomcli overseas accounts balance --exchange NASDAQ` |
130
+ | `orders` | `kiwoomcli overseas orders orderable-quantity --exchange NASDAQ --code AAPL --price 150` |
131
+ | `exchange` | `kiwoomcli overseas exchange rate --direction krw-to-usd` |
132
+ | `streams` | `kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1` |
133
+
134
+ 전체 API 337개(OAuth 2, 국내주식 206, 미국주식 129)가 로컬 스펙과 CLI
135
+ 맵에 포함됩니다. 정확한 옵션은 각 명령의 `-h` 출력으로 확인하세요.
136
+
137
+ 미국주식 `--exchange` 값의 대소문자는 명령별 API 계약을 따릅니다. 종목·시세·
138
+ 호가·캔들·계좌·스트림은 `AMEX|NASDAQ|NYSE`, 순위는
139
+ `all|nyse|nasdaq|amex`, 업종의 `period-returns`는
140
+ `ALL|NYSE|AMEX|NASDAQ`을 사용합니다. 항상 해당 명령의 `-h`를 확인하세요.
141
+
106
142
  ## 출력 형식
107
143
 
108
144
  도메인 명령은 `--format`과 프로필/모드 선택자를 받습니다.
@@ -111,12 +147,16 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
111
147
  --format pretty|json|jsonl|yaml
112
148
  --profile NAME
113
149
  --mode demo|real
150
+ --pages N
114
151
  ```
115
152
 
116
153
  - `pretty`(기본값)는 사람이 읽기 좋은 들여쓰기 형식입니다.
117
154
  - `json`은 에이전트가 파싱하기 좋은 한 줄 압축 출력입니다.
118
155
  - `jsonl`은 한 줄에 JSON 레코드 하나씩 출력합니다(목록 행이나 스트림에 유용).
119
156
  - `yaml`은 YAML 형식으로 출력합니다.
157
+ - `--pages`는 REST 연속조회 페이지 수입니다. 기본값은 1이며, 0은 서버가
158
+ 제공하는 모든 페이지를 조회합니다. `spec` 명령에는 적용되지 않습니다.
159
+ - REST 명령의 `--named`는 응답 필드 코드를 스펙의 한글명으로 변환합니다.
120
160
 
121
161
  안전장치가 적용된 계좌/주문 조회와 스트림에서는 출력 계층이 계좌 식별자를
122
162
  마스킹합니다. 다만 주문번호(`ord_no`, `orig_ord_no` 등)는 `orders modify`/`cancel`
@@ -130,13 +170,14 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
130
170
 
131
171
  ```sh
132
172
  kiwoomcli domestic streams trades --code 005930 --count 1 --named --format json
173
+ kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1 --named --format json
133
174
  ```
134
175
 
135
176
  - `--count`는 `REAL` 데이터 메시지만 셉니다. `REG`/`REMOVE`/`SYSTEM`은 제어
136
177
  메시지입니다.
137
178
  - `--check`는 유한한 등록/수집을 수행하며, `REAL` 틱이 오지 않아도 정상 종료
138
179
  합니다.
139
- - `--named`는 패키지에 포함된 키움 스펙 기반 내장 스키마로 `REAL` 프레임을
180
+ - 스트림 명령의 `--named`는 키움 스펙 기반 내장 스키마로 `REAL` 프레임 FID를
140
181
  변환합니다. 알 수 없는 FID는 `unknown` 아래에 보존됩니다.
141
182
 
142
183
  장시간 구독을 저장하려면 파일로 출력하고 OS 도구로 프로세스를 백그라운드로
@@ -158,12 +199,15 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
158
199
 
159
200
  ## 주문 안전장치
160
201
 
161
- 주문 쓰기 명령(`orders buy/sell/modify/cancel`, `credit-*`, `gold-*`)에는
202
+ 국내·미국주식 주문 쓰기 명령(`orders buy/sell/modify/cancel`,
203
+ `credit-*`, `gold-*`)과 미국주식 환전 신청(`overseas exchange request`)에는
162
204
  안전장치가 적용됩니다.
163
205
 
164
206
  - `--confirm`이 없으면 짧은 미전송 주문 요약을 출력하고 주문 API를 호출하지
165
207
  않습니다.
166
208
  - `--confirm`이 있으면 실제 엔드포인트로 전송합니다.
209
+ - `overseas exchange request`도 `--confirm`이 없으면 미전송 환전 확인만
210
+ 출력하며, `--confirm`이 있어야 실제 환전 API를 호출합니다.
167
211
  - 주문 유형별 가격 규칙은 전송 경로 이전에 검증됩니다. 예를 들어
168
212
  `--order-type limit`에는 `--price`가 필요하고, `--order-type market`에는
169
213
  `--price`를 넣으면 안 됩니다. 잘못된 주문 식별자는 전송 전에 보고됩니다.
@@ -177,13 +221,13 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
177
221
 
178
222
  | 개념 | 옵션 | 예시 |
179
223
  | --- | --- | --- |
180
- | 종목/주식/업종/ETF/ELW 코드 | `--code`, `-c` | `--code 005930` |
224
+ | 종목/주식/업종/ETF/ELW 코드 | `--code` | `--code 005930` |
181
225
  | 인증 프로필 | `--profile` | `--profile demo-main` |
182
226
  | 실행 모드 | `--mode` | `--mode demo` |
183
227
  | 시장/거래소 선택 | `--market` | `--market kospi` |
184
228
  | 수량 | `--qty` | `--qty 10` |
185
229
  | 가격 | `--price` | `--price 70000` |
186
- | 매수/매도 구분 | `--side` | `--side buy` |
230
+ | 매수/매도 구분 | `--side` | 명령별 값은 `-h`에서 확인 |
187
231
  | 주문 유형 | `--order-type` | `--order-type limit` |
188
232
  | 주문 식별자 | `--order-id` | `--order-id 123` |
189
233
  | 시작 / 종료 일자 | `--from` / `--to` | `--from 20260101 --to 20260529` |