https://github.com/yangtaeyoung/claude-switch
π Switch between multiple Claude Code subscription accounts with one command β Keychain-native, with per-account usage limit visibility (macOS)
https://github.com/yangtaeyoung/claude-switch
account-switcher anthropic claude claude-code cli developer-tools golang keychain macos rate-limit
Last synced: 2 days ago
JSON representation
π Switch between multiple Claude Code subscription accounts with one command β Keychain-native, with per-account usage limit visibility (macOS)
- Host: GitHub
- URL: https://github.com/yangtaeyoung/claude-switch
- Owner: YangTaeyoung
- License: mit
- Created: 2026-06-12T07:09:59.000Z (13 days ago)
- Default Branch: main
- Last Pushed: 2026-06-12T16:02:12.000Z (12 days ago)
- Last Synced: 2026-06-12T18:08:05.570Z (12 days ago)
- Topics: account-switcher, anthropic, claude, claude-code, cli, developer-tools, golang, keychain, macos, rate-limit
- Language: Go
- Size: 326 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.ko.md
- License: LICENSE
Awesome Lists containing this project
README
# π claude-switch
**Claude Code ν ν° λ¦¬λ°μ΄ μ°Όλ€λ©΄? λͺ
λ Ή νλλ‘ λ€μ ꡬλ
κ³μ μΌλ‘ μ ννμΈμ.**
[](https://github.com/YangTaeyoung/claude-switch/actions/workflows/ci.yml)
[](https://github.com/YangTaeyoung/claude-switch/releases/latest)
[](https://go.dev/)
[](https://github.com/YangTaeyoung/claude-switch/releases/latest)
[](LICENSE)
[English](README.md) Β· [νκ΅μ΄](README.ko.md)
---

```console
$ claude-switch next
Switched to profile "personal" (personal@example.com)
Takes effect for new claude sessions. Restart any running session.
$ claude-switch status
Active profile: personal
work work@example.com limit: allowed | 5h 80% (resets 06-12 16:00) | 7d 12% (resets 06-19 14:00)
* personal personal@example.com limit: allowed | 5h 3% (resets 06-12 18:00) | 7d 40% (resets 06-15 09:00)
```
## β¨ μ£Όμ κΈ°λ₯
- **π₯οΈ μΈν°λν°λΈ TUI** β μΈμ μμ΄ `claude-switch`λ₯Ό μ€ννλ©΄ νμ€ν¬λ¦° ν λ©λ΄: νλ‘ν κ΄λ¦¬(μ νΒ·μ΄λ¦λ³κ²½Β·μμ + μ€μκ° μ¬μ©λ), νμ¬ κ³μ μ μ₯, μ€μ . [Bubble Tea v2](https://github.com/charmbracelet/bubbletea) κΈ°λ°.
- **π English / νκ΅μ΄** β μ€μ νλ©΄ λλ `claude-switch lang ko`λ‘ νμ μΈμ΄ μ ν.
- **π νμ μ΅μ λ²μ ** β TUIκ° ν루 ν λ² μ‘°μ©ν GitHub 릴리μ¦λ₯Ό νμΈν΄ μ λ²μ μ΄ μμΌλ©΄ μλ €μ€λλ€. μΈμ λ `claude-switch update`λ‘ μ§μ μ
λ°μ΄νΈνκ±°λ, μ€μ μμ **μμ μ μλ μ
λ°μ΄νΈ**λ₯Ό μΌλ©΄ μλμΌλ‘ μ΅μ λ²μ μΌλ‘ μ¬λΌκ°λλ€.
- **β‘ λͺ
λ Ή νλλ‘ μ ν** β `claude-switch next` ν λ²μ΄λ©΄ λ€μ λ±λ‘ κ³μ μΌλ‘ μν. μ
Έ λνΌλ, νκ²½λ³μλ, μ¬λ‘κ·ΈμΈλ νμ μμ΅λλ€.
- **π κ³μ λ³ μ¬μ©λ νλμ** β `status`κ° Anthropicμ `anthropic-ratelimit-unified-*` ν€λμμ μ½μ΄μ¨ **μ€μ 5μκ°/7μΌ μ¬μ©λ₯ κ³Ό 리μ
μκ°**μ κ³μ λ³λ‘ 보μ¬μ€λλ€. μ΄λ κ³μ μ μ¬μ κ° μλμ§ μ ν *μ μ* μ μ μμ΅λλ€.
- **π Claude Codeμ λμΌν λ°©μμΌλ‘ μ μ₯** β macOSμμλ ν€μ²΄μΈ(νλ¬Έ μ μ₯ μμ), Linux/Windowsμμλ Claude Code μ체μ `.credentials.json` μμ `0600` κΆν νμΌλ‘ μ μ₯ν©λλ€. OSκ° μ°λ λ°©μμ κ·Έλλ‘ λ°λ¦
λλ€.
- **π ν ν° νμ λμ** β Claude Codeλ μ¬μ© μ€ refresh tokenμ νμ μν΅λλ€. claude-switchλ μ ν μ§μ μ΄μμλ μ격μ¦λͺ
μ νμ± νλ‘νμ *sync-back* νλ―λ‘, μ§λμ£Όμ μ μ₯ν νλ‘νλ μ€λ κ·Έλλ‘ λμν©λλ€.
- **πͺΆ μ΅μ μμ‘΄μ±** β Go νμ€ λΌμ΄λΈλ¬λ¦¬ + Charm μ€ν(Bubble Tea v2, Lip Gloss v2). μμ λ°μ΄λ리 νλ.
## π¦ μ€μΉ
[μ΅μ 릴리μ¦](https://github.com/YangTaeyoung/claude-switch/releases/latest)μμ **λΉλλ λ°μ΄λ리**(macOS μ λλ²μ€, Linux amd64/arm64, Windows amd64/arm64)λ₯Ό λ°κ±°λ:
```shell
go install github.com/YangTaeyoung/claude-switch@latest
```
μμ€μμ λΉλ:
```shell
git clone https://github.com/YangTaeyoung/claude-switch.git
cd claude-switch && go build -o claude-switch .
```
## π λΉ λ₯Έ μμ
**1. κ³μ λ§λ€ ν λ²μ© λ±λ‘** β Claude Codeλ‘ λ‘κ·ΈμΈν λ€ μ€λ
μ·:
```shell
claude # Aκ³μ μΌλ‘ /login ν μ’
λ£
claude-switch save work
claude # Bκ³μ μΌλ‘ /login ν μ’
λ£
claude-switch save personal
```
**2. 리λ°μ΄ μ°¨λ©΄:**
```shell
claude-switch next
```
λ. μλ‘ μμνλ `claude` μΈμ
λΆν° λ€μ κ³μ μ΄ μ μ©λ©λλ€.
### μ 체 λͺ
λ Ή
| λͺ
λ Ή | λμ |
|---|---|
| `claude-switch` | μΈν°λν°λΈ λμ보λ(TUI) β μ νΒ·μμ Β·μ€μκ° μ¬μ©λ |
| `claude-switch save ` | νμ¬ λ‘κ·ΈμΈλ κ³μ μ νλ‘νλ‘ μ μ₯ |
| `claude-switch use ` | μ§μ νλ‘νλ‘ μ ν |
| `claude-switch next` | λ€μ νλ‘νλ‘ μν μ ν |
| `claude-switch list` | νλ‘ν λͺ©λ‘ (`*` = νμ±) |
| `claude-switch status` | κ³μ λ³ μ¬μ©λ(5h/7d)κ³Ό 리μ
μκ° |
| `claude-switch rename ` | νλ‘ν μ΄λ¦ λ³κ²½ |
| `claude-switch delete ` | νλ‘ν μμ (νμ± νλ‘νμ 보νΈ) |
| `claude-switch lang ` | νμ μΈμ΄ μ€μ |
| `claude-switch update` | μ΅μ 릴리μ¦λ₯Ό λ΄λ €λ°μ μ€μΉ |
| `claude-switch version` | λ²μ μΆλ ₯ |
### μλ μ
λ°μ΄νΈ
claude-switchλ [GitHub 릴리μ¦](https://github.com/YangTaeyoung/claude-switch/releases)μμ μ λ²μ μ νμΈν©λλ€. κΈ°λ³Έκ°μ **μλ¦Όλ§** β μ λ²μ μ΄ μμΌλ©΄ TUIμ λ°°λκ° λΉλλ€(μ΅λ 24μκ°μ ν λ² νμΈνλ©°, `go install`λ‘ λΉλν dev λ°μ΄λ리μμλ νμΈνμ§ μμ΅λλ€). μ
λ°μ΄νΈ μμ μ `claude-switch update`λ‘ μ§μ μ νμΈμ.
TUI μμ μ μλμΌλ‘ μ¬λ¦¬λ €λ©΄ μ€μ μμ **μμ μ μλ μ
λ°μ΄νΈ**λ₯Ό μΌκ±°λ, `~/.config/claude-switch/config.json`μ μ§μ μ€μ νμΈμ:
```json
{ "autoUpdate": true }
```
> μκ° μ
λ°μ΄νΈλ μ€ν μ€μΈ λ°μ΄λ리λ₯Ό μ μ리μμ κ΅μ²΄νλ―λ‘, μ€μΉλ μμΉμ μ°κΈ° κΆνμ΄ νμν©λλ€(`go install` κ²½λ‘μ μ§μ λ€μ΄λ‘λλ λ¬Έμ μμ). μΆν ν¨ν€μ§ λ§€λμ λ‘ μ€μΉνλ€λ©΄ μλ μ
λ°μ΄νΈλ λκ³ λ§€λμ λ‘ μ
κ·Έλ μ΄λνλ κ²μ κΆμ₯ν©λλ€.
## βοΈ λμ μ리
Claude Codeλ OSκ° λΉλ°κ°μ 보κ΄νλ κ³³μ OAuth μ격μ¦λͺ
μ μ μ₯ν©λλ€ ([곡μ λ¬Έμ](https://code.claude.com/docs/en/authentication)). macOSμμλ **ν€μ²΄μΈ νλͺ©** `Claude Code-credentials`, Linux/Windowsμμλ νμΌ `~/.claude/.credentials.json`(κΆν `0600`)μ
λλ€. claude-switchλ OSμ λ§λ λ°©μμΌλ‘ μ΄ μ격μ¦λͺ
μ νλ‘ν λ¨μλ‘ κ΅μ²΄ν©λλ€:
```mermaid
flowchart LR
subgraph Store["π μ격μ¦λͺ
μ μ₯μ (macOSλ ν€μ²΄μΈ Β· Linux/Windowsλ 0600 νμΌ)"]
CC["Claude Code-credentials
(λΌμ΄λΈ)"]
P1["profile: work"]
P2["profile: personal"]
end
next["claude-switch next"] -- "β sync-back
(νμ λ ν ν° λ°μ)" --> P2
CC -. "β " .-> P2
P1 -- "①볡μ" --> CC
next -- "β’ ~/.claude.jsonμ
oauthAccount κ΅μ²΄" --> CJ["~/.claude.json"]
```
1. **Sync-back** β μ΄μμλ(νμ λμ μ μλ) μ격μ¦λͺ
μ νμ¬ νμ± νλ‘νμ λ¨Όμ λ°μ
2. **볡μ** β λμ νλ‘νμ μ격μ¦λͺ
μ λΌμ΄λΈ `Claude Code-credentials` νλͺ©μ κΈ°λ‘
3. **κ³μ μ 보 κ΅μ²΄** β `~/.claude.json`μ `oauthAccount`λ₯Ό κ΅μ²΄ν΄ `/status`μ μ¬λ°λ₯Έ κ³μ μ΄ νμλκ² ν¨
`~/.config/claude-switch/config.json`μλ λΉλ°κ°μ΄ μλ λ©νλ°μ΄ν°(νλ‘νλͺ
, μμ, μ΄λ©μΌ)λ§ μ μ₯λ©λλ€.
## β οΈ νκ³
- **ν¬λ‘μ€ νλ«νΌ.** macOSλ ν€μ²΄μΈμ, Linux/Windowsλ Claude Code μ체μ `~/.claude/.credentials.json`(`0600`)μ μ§μ μ½κ³ μλλ€. Linux/Windowsμμλ μ격μ¦λͺ
μ΄ νλ¬Έ νμΌλ‘ μ μ₯λλ©° β Claude Code μ체μ λμΌν λ°©μ β μ¬μ©μ κ³μ μ νμΌ κΆν μμ€λ§νΌλ§ 보νΈλ©λλ€.
- **μ€ν μ€μΈ μΈμ
μ κΈ°μ‘΄ κ³μ μ μ§** β μ νμ μ `claude` μΈμ
λΆν° μ μ©λ©λλ€.
- **`status`λ νλ‘νλΉ μ΅μ inference μμ² 1νλ₯Ό 보λ
λλ€** (haiku 1ν ν°) β λ¬΄κ³ΌκΈ μλν¬μΈνΈλ λ¦¬λ° ν€λλ₯Ό λ°ννμ§ μλ κ²μ μ€μΈ‘μΌλ‘ νμΈνμ΅λλ€. λΉμ©μ κ·Ήλ―Ένμ§λ§ 0μ μλλλ€.
- macOSμμλ 첫 ν€μ²΄μΈ μ κ·Ό μ νμ© ν둬ννΈκ° λ° μ μμ΅λλ€ β "νμ νμ©"μ μ ννμΈμ.
## π λΌμ΄μ μ€
[MIT](LICENSE)
---
Goλ‘ μ μ Β· Anthropicκ³Ό 무κ΄ν κ°μΈ νλ‘μ νΈ