Powrót do strony głównej

Bash CLI dla profili Codex: usage i proxy

Skrypt bash codex-auth ułatwia pracę z wieloma kontami Codex: zapisywanie/przełączanie profili, monitorowanie usage przez API, cache i proxy. Wsparcie wieloplatformowe z fallbackami dla base64/stat/sha256. Ograniczenia: zależność od struktury auth.json.

Zarządzanie profilami Codex: skrypt bash z usage
Advertisement 728x90

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:

Google AdInline article slot
  • 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:

Google AdInline article slot
  • codex-auth — lista profili z użyciem
  • codex-auth usage — limity bieżącego auth.json
  • codex-auth save <nazwa> — zapisać bieżący profil
  • codex-auth use <nazwa> — przełączyć się (lub krótko codex-auth <nazwa>)
  • codex-auth list-fast — lokalna lista bez API
  • codex-auth backup — kopia zapasowa bieżącego

Proxy:

  • codex-auth proxy set <url>
  • codex-auth proxy show
  • codex-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 work lub codex-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:

Google AdInline article slot
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_id
  • sub z id_token
  • Email
  • SHA256 całego pliku

Zapobiega duplikatom pod różnymi nazwami, sprawdza zgodność z aktywnym auth.json.

Adaptacje wieloplatformowe

  • base64: Linux base64 -d, macOS base64 -D
  • stat: Linux stat -c %Y, macOS stat -f %m
  • SHA256: Linux sha256sum, macOS shasum -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

Advertisement 728x90

Czytaj dalej