Narzędzie CLI do przełączania profili Codex w bash
Przy pracy z wieloma kontami Codex — służbowym, osobistym, zapasowym — standardowy plik ~/.codex/auth.json staje się wąskim gardłem. Ręczne kopiowanie plików auth prowadzi do chaosu: nie wiadomo, który profil jest aktywny, ile limitu pozostało, ryzyko nadpisania potrzebnych danych. Prosty skrypt bash codex-auth rozwiązuje to, dodając komendy do zapisywania, przełączania profili i monitorowania użycia poprzez API.
Skrypt przechowuje profile osobno, buforuje użycie, wspiera proxy i wykrywa duplikaty kont na podstawie odcisku.
Lokalizacja auth.json i kwestie wieloplatformowe
Główny plik autoryzacji:
- Linux/macOS:
~/.codex/auth.json - Windows:
%USERPROFILE%\.codex\auth.json
Wewnątrz — access_token, id_token, account_id. Struktura może się zmienić, dlatego parsowanie przez jq z fallback'ami.
Problemy z cp:
- Brak wskazania aktywnego profilu
- Ryzyko utraty danych
- Brak informacji o limitach i czasie resetu
Komendy skryptu
Skrypt oferuje interfejs CLI:
codex-auth— lista profili z użyciemcodex-auth usage— limity bieżącego auth.jsoncodex-auth save <nazwa>— zapisać bieżący profilcodex-auth use <nazwa>— przełączyć się (lub krótkocodex-auth <nazwa>)codex-auth list-fast— lokalna lista bez APIcodex-auth backup— kopia zapasowa bieżącego
Proxy:
codex-auth proxy set <url>codex-auth proxy showcodex-auth proxy unset
Bufor:
codex-auth cache-time [sek](domyślnie 15s, 0 — bez bufora)
Przykład użycia
- Logowanie pod kontem służbowym:
codex-auth save work - Ponowne logowanie pod osobistym:
codex-auth save personal - Przełączanie:
codex-auth worklubcodex-auth personal - Wyświetlanie:
📊 5h: 100% ⏱5h 7️⃣ 15% ⏱4d 9h work <[email protected]>
📊 5h: 100% ⏱5h 7️⃣ 84% ⏱3d 18h *personal <[email protected]>
Monitorowanie użycia przez API
Zapytanie do https://chatgpt.com/backend-api/wham/usage z Authorization: Bearer $token i account_id w nagłówkach:
curl -s \
-H "Authorization: Bearer $token" \
-H "Accept: application/json" \
-H "User-Agent: CodexCLI" \
"https://chatgpt.com/backend-api/wham/usage" | jq
Parsowanie wyświetla:
- Email konta
- Typ planu
- Pozostałość w oknie (5h, weekly)
- Czas resetu
- Limit przeglądu kodu
Buforowanie dla prędkości
Bufor w ~/.codex-auth-profiles/.usage-cache, klucz z token + account_id + proxy. TTL konfigurowalny, zapobiega zbędnym wywołaniom API. Bez bufora (TTL=0) — świeże dane za każdym razem.
Wsparcie dla proxy
Dla sieci korporacyjnych lub firewall:
codex-auth proxy set http://127.0.0.1:8888
curl otrzymuje --proxy, stosowane do wszystkich zapytań. Przechowywane w ~/.codex-auth-profiles/proxy.
Wykrywanie duplikatów
Odciski profilu:
account_idsubzid_token- SHA256 całego pliku
Zapobiega duplikatom pod różnymi nazwami, sprawdza zgodność z aktywnym auth.json.
Adaptacje wieloplatformowe
- base64: Linux
base64 -d, macOSbase64 -D - stat: Linux
stat -c %Y, macOSstat -f %m - SHA256: Linux
sha256sum, macOSshasum -a 256
Zapis atomowy: mktemp + mv.
Profile w ~/.codex-auth-profiles: pliki JSON, bieżący profil, ustawienia, bufor.
Ograniczenia
- Zależne od struktury auth.json
- Backend API może się zmienić
- Tylko bash, nie dla złożonej logiki
Zależności: bash, jq, curl, awk, sort, base64, stat.
Co jest ważne
- Przełączanie profili bez ryzyka utraty auth.json
- Użycie z wizualizacją limitów i resetów
- Bufor TTL dla prędkości, proxy dla sieci
- Odciski przeciw duplikatom
- Zapis atomowy, wieloplatformowość
— Editorial Team
Brak komentarzy.