pi-twelve-data
Twelve Data (공식 API) 클라이언트 for pi — 무료 키로 전 세계 주식·지수·외환·암호화폐 시세·차트·검색·환율 (직접 REST, 의존성 0).
Package details
Install pi-twelve-data from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-twelve-data- Package
pi-twelve-data- Version
0.2.0- Published
- Aug 26, 2026
- Downloads
- 255/mo · 20/wk
- Author
- preinpost
- License
- MIT
- Types
- extension
- Size
- 69.3 KB
- Dependencies
- 1 dependency · 2 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-twelve-data
Twelve Data 공식 API 클라이언트 pi 패키지 — 전 세계 주식·지수·외환·암호화폐의 현재가/차트/심볼 검색/환율 (직접 REST, 의존성 0).
twelvedata.com 무료 가입으로 발급받는 apikey로 바로 사용할 수 있습니다.
설치
pi install npm:pi-twelve-data
# pi 재시작
사용
# pi 안에서:
/twelve-key # apikey 등록 (twelvedata.com 무료 가입 → 발급) → 시크릿 스토어
# 그 다음 자연어로:
"AAPL 현재가" # twelve_price
"AAPL 일봉 지표" # twelve_chart (interval: 1day)
"애플 심볼 검색" # twelve_search
"USD/KRW 환율" # twelve_exchange_rate
키는 /twelve-key로 등록하거나 TWELVE_API_KEY 환경변수로 설정할 수 있습니다 (스토어 우선).
도구
| 도구 | 설명 |
|---|---|
twelve_price |
현재가 — 콤마 구분 최대 8개 (무료 8 req/min 고려, 하나씩 /quote 호출) |
twelve_chart |
차트·지표 — 1min~1month (기본 1day), 최대 5000봉, 공용 지표(pi-finance-core) |
twelve_search |
심볼 검색 — 전 세계 시장 (주식/지수/외환/암호화폐) |
twelve_exchange_rate |
환율 — USD/KRW, EUR/USD 등 |
한도 / 캐시
무료 티어는 8 req/min (API 키당 전역) — 호출 간격 7.6s 자동 스로틀 + TTL 캐시로 한도를 아껴 씁니다.
| 항목 | 값 |
|---|---|
| 호출 간격 | 7600ms (TWELVE_RATE_LIMIT_MULTIPLIER 배율 — 2.0이면 2배, 0이면 해제) |
| 캐시 | quote 15s / chart 60s / search 10m / exchange_rate 60s (TWELVE_DISABLE_CACHE=1로 해제) |
| 에러 | {"code","message","status":"error"} → 한글 메시지 Error (401 키 오류 / 404 심볼 없음 / 429 한도) |
아키텍처
index.ts — thin entry: export default registerExtension
src/
client.ts Twelve Data transport — apikey 쿼리 + 레이트리밋 + TTL 캐시
ratelimit.ts promise-chain 레이트리밋 (7600ms, TWELVE_RATE_LIMIT_MULTIPLIER)
cache.ts TTL 메모리 캐시 (TtlCache + cached 헬퍼)
secret.ts 공용 시크릿 스토어 위 Twelve 키 뷰 (namespace pi-twelve-data)
roles/
twelve.ts 현재가/차트/검색/환율 (compact 정규화 + Bar 변환)
agent/
extension.ts registerExtension
tools.ts twelve_* 4 툴 (execute는 roles 위임)
commands.ts /twelve-key, /twelve-status
시크릿 저장소
전용 네임스페이스(pi-twelve-data)를 사용합니다. 백엔드 우선순위: OS 키체인(@napi-rs/keyring) → 0600 파일 폴백(~/.pi/agent/pi-twelve-data-keys.json). 환경변수 KIS_SECRET_STORE/KIS_KEYS_FILE로 제어하며, 자세한 동작(적응형 폴백/마이그레이션)은 pi-finance-core 참고.
개발
이 패키지는 pi-finances 모노레포(pnpm workspace)의 일부입니다.
pnpm install # 루트에서
pnpm --filter pi-twelve-data typecheck
pnpm --filter pi-twelve-data exec node --experimental-transform-types scripts/smoke.mjs