AI Token Monitor: Linux 데스크탑에서 Claude, Gemini, Grok, Kimi 쿼터 실시간 추적

오픈소스 Linux 데스크탑 위젯으로 Conky 안에서 AI 토큰 쿼터를 HP 바 스타일 진행 막대로 실시간 표시. Claude, Gemini, Grok, Kimi 실제 API 폴링 및 리셋 카운트다운 지원.

  • Python
  • Conky
  • Linux
  • MIT
  • 업데이트 2026-06-06

📦 资源信息

🔧 最后维护6/6/26
🎯 版本1.0.0

문제: 여섯 개 AI 서비스를 동시에 관리하면서 어느 것이 소진됐는지 알 수 없다 #

현대 개발자는 동시에 4~8개의 AI 서비스를 사용합니다 — Claude는 복잡한 추론, Gemini는 긴 컨텍스트 분석, Grok은 실시간 웹 데이터, Kimi는 대용량 문서 처리. 각 서비스마다 독립적인 쿼터 대시보드, 리셋 일정, 청구 페이지가 있습니다.

결과는 이렇습니다: 작업 도중 레이트 리밋에 걸려 5분 동안 브라우저 탭을 전환하다가, Gemini 무료 쿼터가 UTC 자정(내 현지 자정이 아님)에 리셋된다는 걸 발견하고, Kimi가 왜 429를 반환하는지 디버깅하는 데 또 10분을 낭비하게 됩니다.

AI Token Monitor는 항상 보이는 데스크탑 위젯으로 이 문제를 해결합니다 — 편집기를 떠나지 않고도 모든 서비스 상태를 한눈에 확인할 수 있습니다.

● Claude  ░░░░░░░░░  무잔액
● Gemini  ░░░░░░░░░  쿼터소진
● Grok    ░░░░░░░░░  소진
● Kimi    █████████  22.4M 잔여
● Codex   ─────────  18:42:01
● Kilo    ─────────  18:42:01

작동 방식 #

모니터는 두 가지 컴포넌트로 구성됩니다:

api_fetcher.py — 백그라운드 스크립트(5분마다 cron 실행)로 각 서비스 API를 폴링하고 결과를 ~/token-monitor/api_cache.json에 씁니다.

conky_ai.py — 30초마다 캐시를 읽고 Conky 인라인 ${color} 태그가 포함된 텍스트를 출력합니다. Conky가 이를 데스크탑 위젯으로 렌더링합니다.

api_fetcher.py  →  api_cache.json  →  conky_ai.py  →  Conky 표시
  (cron/5분)        (JSON 캐시)        (30초 폴링)    (항상 표시)

이 아키텍처 덕분에 API 오류가 발생해도 데스크탑이 멈추지 않습니다. 캐시에는 항상 마지막으로 알려진 상태가 저장되어 있습니다.

HP 바 스타일 진행 막대 #

핵심 기능은 HP 바 스타일 쿼터 시각화 — 유니코드 블록 문자 행이 남은 쿼터를 직관적으로 표현합니다:

색상상태
█████████ 초록쿼터 50% 이상
████░░░░░ 주황20~50% 잔여
█░░░░░░░░ 빨강20% 미만
░░░░░░░░░ 빨강소진 / 잔액 없음
───────── 회색API 키 미설정

진행 막대는 9글자 너비입니다. 하나가 약 11% 쿼터를 나타냅니다.

설치 #

# 1. 클론
git clone https://github.com/luckybbjason1/ai-token-monitor
cd ai-token-monitor

# 2. 설치
bash install.sh

# 3. API 키 추가
nano ~/.config/.ai_monitor_keys

# 4. Conky 재시작
pkill conky && conky --daemonize --pause=1

설치 스크립트가 자동으로:

  • 스크립트를 ~/token-monitor/에 복사
  • Conky 설정에 ${execpi 30 python3 ~/token-monitor/conky_ai.py} 추가
  • api_fetcher.py의 cron 작업 설정

지원 서비스 및 API 방식 #

서비스API 엔드포인트감지 항목
Kimi (Moonshot)GET /v1/users/me정확한 잔여 토큰 쿼터
Claude (Anthropic)POST /v1/messages레이트 리밋 헤더
Gemini (Google)POST .../generateContent429 = 쿼터 소진
Grok (xAI)GET /v1/models403 = 잔액 소진
Codex / KiloUTC+8 자정까지 카운트다운

보안 설계 #

API 키는 ~/.config/.ai_monitor_keyschmod 600 권한으로 저장됩니다. .gitignore로 git에서 제외됩니다. 키는 터미널에 출력되거나 로그 파일에 기록되지 않습니다 — fetcher는 시작 시 한 번 읽고 HTTP 호출 동안만 메모리에 유지합니다.

커스텀 서비스 추가 #

api_fetcher.py에 블록을 추가하세요:

# ── 커스텀 서비스 ─────────────────────────────────
key = keys.get('yourservice')
if key:
    try:
        r = requests.get('https://api.yourservice.com/v1/usage',
                         headers={'Authorization': f'Bearer {key}'}, timeout=8)
        if r.status_code == 200:
            data = r.json()
            remain = data['quota_remaining']
            total  = data['quota_total']
            cache['YourService'] = {
                'ok': True,
                'label': f'{remain//1000}K 잔여',
                'pct': remain / total
            }
        else:
            cache['YourService'] = {'ok': False, 'label': 'API 오류'}
    except Exception:
        pass

그런 다음 conky_ai.pySERVICES 목록에 {'name': 'YourService', 'reset_h': 24}를 추가하세요.

dibi8 관련 도구 #

여러 AI API 비용을 관리하고 있다면 다음도 참고하세요:

코드 받기 #

MIT 라이선스 완전 오픈소스입니다.

GitHub: github.com/luckybbjason1/ai-token-monitor

작업 도중 레이트 리밋 기습을 피하는 데 도움이 됐다면 Star 부탁드립니다. Issue와 PR 환영합니다 — 특히 macOS 지원이나 새 서비스 통합에 기여해주시면 감사합니다.

📦 다음 컬렉션에 포함됨

💬 댓글 토론