Skip to content

kyungw00k/upbit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

60 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

upbit โ€” AI ์นœํ™”์  Upbit ๊ฑฐ๋ž˜์†Œ CLI

English

์‚ฌ๋žŒ๊ณผ AI ์—์ด์ „ํŠธ ๋ชจ๋‘๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ ์œ ์ผํ•œ Upbit CLI.

Go Go Reference License Release

๋ฐ๋ชจ

demo

์„ค์น˜

curl -sSL https://kyungw00k.dev/upbit/install.sh | sh    # ๋น ๋ฅธ ์„ค์น˜
brew install kyungw00k/cli/upbit                          # Homebrew

Go ๋ชจ๋“ˆ

Go ํ”„๋กœ์ ํŠธ์—์„œ Upbit API ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

go get github.com/kyungw00k/upbit
package main

import (
	"context"
	"fmt"

	"github.com/kyungw00k/upbit/api"
	"github.com/kyungw00k/upbit/api/quotation"
	"github.com/kyungw00k/upbit/api/exchange"
)

func main() {
	// ๊ณต๊ฐœ API (์ธ์ฆ ๋ถˆํ•„์š”)
	client := api.NewClient("", "")
	q := quotation.NewQuotationClient(client)

	tickers, _ := q.GetTickers(context.Background(), []string{"KRW-BTC", "KRW-ETH"})
	for _, t := range tickers {
		fmt.Printf("%s: %v\n", t.Market, t.TradePrice)
	}

	// ์ธ์ฆ API
	authClient := api.NewClient("your-access-key", "your-secret-key")
	e := exchange.NewExchangeClient(authClient)

	accounts, _ := e.GetAccounts(context.Background())
	for _, a := range accounts {
		fmt.Printf("%s: %s\n", a.Currency, a.Balance)
	}
}

ํŒจํ‚ค์ง€

ํŒจํ‚ค์ง€ Import ๊ฒฝ๋กœ ์„ค๋ช…
API ํด๋ผ์ด์–ธํŠธ github.com/kyungw00k/upbit/api JWT ์ธ์ฆ, Rate Limit, ์ž๋™ ์žฌ์‹œ๋„ HTTP ํด๋ผ์ด์–ธํŠธ
์‹œ์„ธ ์กฐํšŒ github.com/kyungw00k/upbit/api/quotation ์‹œ์„ธ ๋ฐ์ดํ„ฐ (ํ˜„์žฌ๊ฐ€, ์บ”๋“ค, ํ˜ธ๊ฐ€, ์ฒด๊ฒฐ)
๊ฑฐ๋ž˜ github.com/kyungw00k/upbit/api/exchange ๊ฑฐ๋ž˜ (์ž”๊ณ , ์ฃผ๋ฌธ)
์ž…์ถœ๊ธˆ github.com/kyungw00k/upbit/api/wallet ์ž…๊ธˆ ๋ฐ ์ถœ๊ธˆ
WebSocket github.com/kyungw00k/upbit/api/websocket ์ž๋™ ์žฌ์—ฐ๊ฒฐ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ
ํƒ€์ž… github.com/kyungw00k/upbit/types ๋ฐ์ดํ„ฐ ๋ชจ๋ธ (Ticker, Candle, Order ๋“ฑ)

๋น ๋ฅธ ์‹œ์ž‘

upbit ticker KRW-BTC                           # ํ˜„์žฌ๊ฐ€ ์กฐํšŒ
upbit candle KRW-BTC -i 1d --from 2025-01-01   # ๊ณผ๊ฑฐ ์บ”๋“ค (์บ์‹œ ์ง€์›)
upbit watch candle KRW-BTC -i 1m               # ์‹ค์‹œ๊ฐ„ ์บ”๋“ค์Šคํ‹ฑ ์ฐจํŠธ (TUI)

export UPBIT_ACCESS_KEY=... UPBIT_SECRET_KEY=...
upbit buy KRW-BTC -p 100000000 -V 0.001        # ์ง€์ •๊ฐ€ ๋งค์ˆ˜
upbit buy KRW-BTC -p now -V 50%                # ํ˜„์žฌ๊ฐ€๋กœ ์ž”๊ณ  50% ๋งค์ˆ˜
upbit sell KRW-BTC -V 100%                     # ์ „๋Ÿ‰ ์‹œ์žฅ๊ฐ€ ๋งค๋„
upbit balance                                   # ํฌํŠธํด๋ฆฌ์˜ค (KRW ํ‰๊ฐ€์•ก)

์ฃผ์š” ๊ธฐ๋Šฅ

AI ํผ์ŠคํŠธ โ€” upbit tool-schema๋กœ LLM/MCP ๋„๊ตฌ ํ˜ธ์ถœ์šฉ JSON Schema ๋‚ด๋ณด๋‚ด๊ธฐ. Non-TTY ํ™˜๊ฒฝ์—์„œ ์ž๋™ JSON ์ถœ๋ ฅ์œผ๋กœ AI ์—์ด์ „ํŠธ ํŒŒ์ดํ”„๋ผ์ธ์— ์ตœ์ .

์‹ค์‹œ๊ฐ„ TUI โ€” watch ticker/orderbook/trade/candle์„ Bubble Tea ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ณต. Tab ํ‚ค๋กœ ๋ณต์ˆ˜ ๋งˆ์ผ“ ์ „ํ™˜. ASCII ์บ”๋“ค์Šคํ‹ฑ ์ฐจํŠธ์™€ ๊ฑฐ๋ž˜๋Ÿ‰ ํŒจ๋„.

์Šค๋งˆํŠธ ํŠธ๋ ˆ์ด๋”ฉ โ€” ํ˜ธ๊ฐ€ ๋‹จ์œ„ ์ž๋™ ๋ณด์ •, ํผ์„ผํŠธ ์ฃผ๋ฌธ(-V 50%, -t 100%), ๊ฐ€๊ฒฉ ํ‚ค์›Œ๋“œ(-p now/open/low/high), ์ตœ์œ ๋ฆฌ ์ง€์ •๊ฐ€(--best), ์˜ˆ์•ฝ ์ฃผ๋ฌธ(--watch). ๋งค์ˆ˜/๋งค๋„ ์ƒ์„ธ ๊ฐ€์ด๋“œ

์บ”๋“ค ์บ์‹œ โ€” SQLite ์บ์‹œ์™€ --from ์ž๋™ ํŽ˜์ด์ง€๋„ค์ด์…˜์œผ๋กœ ์ „์ฒด ์ด๋ ฅ ์กฐํšŒ. upbit cache๋กœ ํ™•์ธ, --clear๋กœ ์‚ญ์ œ.

๋‹ค๊ตญ์–ด โ€” LANG=ko_KR โ†’ ํ•œ๊ตญ์–ด, ๊ธฐ๋ณธ๊ฐ’ โ†’ ์˜์–ด. POSIX ๋กœ์ผ€์ผ ํ‘œ์ค€ (LC_ALL > LC_MESSAGES > LANG).

์ž์ฒด ์—…๋ฐ์ดํŠธ โ€” upbit update๋กœ GitHub Releases์—์„œ ์ตœ์‹  ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ (SHA256 ๊ฒ€์ฆ). --check๋กœ ๋ฏธ๋ฆฌ๋ณด๊ธฐ.

๋ช…๋ น์–ด

์ „์ฒด ๋ชฉ๋ก์€ upbit --help๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”. ์ฃผ์š” ๋ช…๋ น์–ด:

์นดํ…Œ๊ณ ๋ฆฌ ๋ช…๋ น์–ด
์‹œ์„ธ ticker, candle, orderbook, trades, market, tick-size
๊ฑฐ๋ž˜ buy, sell, balance, order list/show/cancel/replace
์ž…์ถœ๊ธˆ wallet, deposit list/show/address, withdraw list/show/request
์‹ค์‹œ๊ฐ„ watch ticker/orderbook/trade/candle/my-order/my-asset
์œ ํ‹ธ๋ฆฌํ‹ฐ tool-schema, api-keys, cache, update

์ถœ๋ ฅ

upbit ticker KRW-BTC              # ํ…Œ์ด๋ธ” (ํ„ฐ๋ฏธ๋„)
upbit ticker KRW-BTC | jq .       # JSON (ํŒŒ์ดํ”„, ์ž๋™)
upbit ticker KRW-BTC -o csv       # CSV
upbit ticker KRW-BTC --json price # ํ•„๋“œ ์„ ํƒ
์ปจํ…์ŠคํŠธ ๊ธฐ๋ณธ๊ฐ’ ๋ณ€๊ฒฝ
ํ„ฐ๋ฏธ๋„ (TTY) ์ •๋ ฌ๋œ ํ…Œ์ด๋ธ” -o json, -o csv
ํŒŒ์ดํ”„ (Non-TTY) ์••์ถ• JSON -o table, -o jsonl

์ธ์ฆ

API ํ‚ค๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜์—์„œ๋งŒ ์ฝ์œผ๋ฉฐ, ๋””์Šคํฌ์— ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

export UPBIT_ACCESS_KEY=your_access_key
export UPBIT_SECRET_KEY=your_secret_key

์‹œ์„ธ ์กฐํšŒ ๋ช…๋ น์–ด๋Š” ์ธ์ฆ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ž˜, ์ž…์ถœ๊ธˆ, ์‹ค์‹œ๊ฐ„ ๊ฐœ์ธ ์ŠคํŠธ๋ฆผ(watch my-order, watch my-asset)์€ ์ธ์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„ TUI

Watch ๋ช…๋ น์€ Bubble Tea ๊ธฐ๋ฐ˜ ์ „์ฒด ํ™”๋ฉด ํ„ฐ๋ฏธ๋„ UI๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • watch ticker โ€” ์‹ค์‹œ๊ฐ„ ๊ฐ€๊ฒฉ ํ…Œ์ด๋ธ” (์ƒ์Šน=์ดˆ๋ก, ํ•˜๋ฝ=๋นจ๊ฐ•)
  • watch orderbook โ€” ์Šคํ”„๋ ˆ๋“œ ์ค‘์‹ฌ ๋งค์ˆ˜/๋งค๋„ ํ˜ธ๊ฐ€ ์ฐจํŠธ
  • watch trade โ€” ์ฒด๊ฒฐ ์ŠคํŠธ๋ฆผ ์Šคํฌ๋กค
  • watch candle โ€” ASCII ์บ”๋“ค์Šคํ‹ฑ ์ฐจํŠธ + ๊ฑฐ๋ž˜๋Ÿ‰ ๋ฐ”

๋ณต์ˆ˜ ๋งˆ์ผ“: Tab ๋˜๋Š” โ†/โ†’๋กœ ์ „ํ™˜

upbit watch ticker KRW-BTC KRW-ETH KRW-XRP
upbit watch orderbook KRW-BTC
upbit watch candle KRW-BTC -i 1m

์บ”๋“ค ์บ์‹œ

upbit candle KRW-BTC --from 2025-01-01   # ์ž๋™ ํŽ˜์ด์ง€๋„ค์ด์…˜ (SQLite ์บ์‹œ)
upbit candle KRW-BTC --from 2025-01-01 --no-cache
upbit cache                               # ์บ์‹œ ์ •๋ณด
upbit cache --clear                       # ์บ์‹œ ์‚ญ์ œ

AI ์—์ด์ „ํŠธ ์—ฐ๋™

AI ์—์ด์ „ํŠธ์šฉ upbit ์Šคํ‚ฌ ์„ค์น˜:

curl -sSL https://kyungw00k.dev/upbit/install-skill.sh | sh

~/.agents/skills/upbit/ (agentskills.io)๊ณผ .claude/skills/upbit/ (Claude Code) ์–‘์ชฝ์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

LLM ๋„๊ตฌ ํ˜ธ์ถœ์šฉ ์Šคํ‚ค๋งˆ

upbit tool-schema          # ์ „์ฒด ๋ช…๋ น JSON Schema
upbit tool-schema buy      # ํŠน์ • ๋ช…๋ น (์‘๋‹ต ์Šคํ‚ค๋งˆ ํฌํ•จ)

์ž์ฒด ์—…๋ฐ์ดํŠธ

upbit update          # ์ตœ์‹  ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜
upbit update --check  # ํ™•์ธ๋งŒ ํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š์Œ

๋‹จ์ผ ์ •์  ๋ฐ”์ด๋„ˆ๋ฆฌ, ๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ ์—†์Œ. ํฌ๋กœ์Šค ํ”Œ๋žซํผ: Linux, macOS, Windows (amd64, arm64).

Claude Code Skill

AI ์—์ด์ „ํŠธ๊ฐ€ upbit๋ฅผ ์ž๋™์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Claude Code ์Šคํ‚ฌ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

/plugin marketplace add kyungw00k/skills
/plugin install cli-tools@kyungw00k-skills

๊ฐ์‚ฌ์˜ ๊ธ€

  • ์บ”๋“ค์Šคํ‹ฑ ์ฐจํŠธ๋Š” cli-candlestick-chart์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค

๋ผ์ด์„ ์Šค

MIT

About

๐Ÿ“ˆ AI-native CLI for Upbit cryptocurrency exchange โ€” market data, trading, real-time TUI, candle cache, i18n (ko/en)

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors