2천.
Tokenova는 단일 세션에서 누적 토큰이 2천만 개에 도달할 때마다 강제로 행성을 생성하는 트리거를 작동시킨다.
이는 단순한 수치 기록을 넘어, 방대한 양의 코딩 작업을 하나의 천체라는 시각적 보상으로 치환하는 방식이다.
그런데 실무자에게 중요한 것은 이러한 시각적 유희보다, 파편화된 AI 코딩 도구들의 사용량을 어떻게 통합적으로 추적하고 관리하느냐는 점이다.
현재 많은 개발자가 Claude Code, Codex CLI(명령줄 인터페이스 기반 코딩 도구), OpenCode 같은 도구를 병행 사용한다. 그러나 각 도구의 사용량을 확인하려면 무거운 대시보드를 띄우거나 흐름을 끊고 빌링 페이지에 접속해야 하는 번거로움이 있다. Tokenova는 이 지점을 공략해 macOS 메뉴바나 Windows 시스템 트레이에 상주하며 백그라운드에서 사용량을 추적한다. 사용자는 별도의 조작 없이도 자신이 오늘 얼마나 많은 토큰을 소모했는지, 그리고 그 결과가 어떤 형태의 우주로 구현되었는지를 실시간으로 확인할 수 있다.
20만 개 별과 0.1% 확률의 Mythic 행성
Tokenova는 AI 코딩 도구의 토큰 사용량을 정량적 수치가 아닌 시각적 자산으로 변환하여 표시한다. 사용자가 누적 20만 개의 토큰을 소비할 때마다 별이 하나씩 생성되는 구조를 취한다. 생성되는 별의 형태는 총 12종의 모양 중 시드 값에 의해 무작위로 결정된다. 기존의 AI 서비스들이 빌링 페이지의 숫자나 텍스트 기반의 대시보드로 사용량을 고지하는 것과 대조적이다. 사용자는 숫자의 증감을 확인하는 대신 자신의 작업량이 별이라는 구체적인 형상으로 쌓이는 과정을 관찰하게 된다. 이는 데이터의 단순 나열보다 인지적 부담이 적으면서도 성취감을 주는 정성적 지표로 기능한다.
행성 생성 조건은 별보다 훨씬 엄격한 기준을 적용하여 희소성을 높였다. 단일 세션에서 100만 토큰을 초과하여 종료하거나, 전체 누적 토큰 사용량이 2천만 개에 도달하는 시점에 행성 생성이 트리거된다. 생성된 행성은 31종의 카탈로그 내에서 정해진 등급 확률에 따라 배정된다. 구체적인 확률 분포는 Common 70%, Rare 20%, Epic 8%, Legendary 1.9%, Mythic 0.1%로 설계되었다. 특히 0.1%의 확률을 가진 Mythic 등급은 극히 낮은 획득 가능성을 통해 사용자에게 강력한 정성적 보상 체계를 제공한다. 단순한 사용량 기록을 넘어 확률 기반의 수집 요소를 도입함으로써 작업의 반복성을 보상으로 치환하는 구조다.
은하의 전체적인 레이아웃 역시 고정되지 않고 매일 변화하는 특성을 갖는다. 나선, 타원, 불규칙, 쌍성단, 산개, 핵중심의 6종 레이아웃 중 하나가 당일의 시드에 따라 결정된다. 동일한 시드에서는 동일한 모양이 재현되므로 과거의 기록을 갤러리에서 다시 확인해도 당시의 배치를 그대로 유지한다. 반면 사용자가 능동적으로 개입할 수 있는 영역도 존재한다. 생성된 별들을 클릭하여 직접 연결하고 이름을 지정함으로써 자신만의 별자리를 구축하는 기능이 그것이다. 주목할 점은 토큰을 전혀 사용하지 않은 날에 대한 처리 방식이다. 사용량이 전무한 날에는 별 캔버스 대신 달과 별이 표시되며 잠든 우주라는 별도의 업적이 부여된다. 해당 시스템은 macOS와 Windows, Linux 등 주요 OS 환경을 모두 지원하며 로컬 로그를 기반으로 작동하여 데이터의 외부 유출 없이 시각화를 수행한다.
JSONL 로그 감시와 SQLite 기반 정규화
Claude Code는 `~/.claude/projects/*.jsonl` 경로에, Codex CLI는 `~/.codex/sessions/YYYY/MM/DD/*.jsonl` 경로에 각각 로그를 기록한다. Tokenova는 이 경로들을 notify(파일 시스템 변경 알림 서비스)로 감시하여 파일에 새로운 로그가 추가되는 즉시 이를 감지하고 수집한다. 반면 OpenCode(오픈소스 기반 AI 코딩 도구)의 경우 파일 시스템의 텍스트 로그가 아닌 `opencode.db`라는 SQLite(파일 기반 경량 관계형 데이터베이스) 내부에 데이터를 저장한다. 이 때문에 OpenCode 채널은 notify 방식으로는 추적이 불가능하며, 대신 5초 간격으로 데이터베이스를 직접 조회하는 폴링(특정 시간마다 상태를 확인하는 방식) 메커니즘을 적용했다. 결과적으로 도구별 저장 매체와 기록 방식의 차이를 서로 다른 수집 전략으로 대응한 셈이다.
주목할 점은 이렇게 서로 다른 세 채널에서 수집된 파편화된 데이터를 TokenEvent라는 단일 이벤트 구조로 정규화한다는 점이다. 각 도구가 정의하는 토큰 사용량의 기준과 로그 포맷이 다르지만, 이를 공통된 스키마로 변환하여 로컬 SQLite에 통합 저장한다. 이러한 정규화 과정이 선행되어야만 서로 다른 AI 도구의 사용량을 하나의 통합된 시각화 캔버스에 투영할 수 있다. 데이터 처리의 전 과정은 사용자 로컬 환경에서 수행되며, 외부 서버로 토큰 사용량이나 개인 코딩 로그를 전송하는 프로세스는 설계 단계부터 배제되었다. 인터넷 연결은 오직 GitHub Releases(깃허브의 소프트웨어 배포 페이지)를 통해 최신 버전의 매니페스트를 조회하고 자동 업데이트를 수행할 때만 제한적으로 사용된다.
시스템 아키텍처는 Tauri 2(Rust 기반 크로스 플랫폼 프레임워크)와 Rust(메모리 안전성을 강조한 시스템 프로그래밍 언어)를 중심으로 구축되었다. 특히 Rust를 통해 로그 감시와 데이터 정규화라는 백엔드 로직의 안정성을 확보했으며, 프론트엔드에서는 별도의 무거운 프레임워크 없이 Vanilla TypeScript(순수 타입스크립트)와 Canvas API만을 사용하여 렌더링 효율을 극대화했다. 이는 실시간으로 수많은 토큰 데이터를 별과 행성으로 그려내야 하는 시각화 도구의 특성을 고려한 선택이다. 이러한 최적화의 결과로 트레이 popover(시스템 트레이에서 확장되는 작은 창) 기준 메모리 사용량은 약 80MB 수준으로 억제되었다. 저사양 환경에서도 백그라운드 실행 시 시스템 부하를 최소화하려는 의도가 반영된 수치다. 상세한 구현 방식과 소스 코드는 https://github.com/jkapa0417/tokenova 저장소에 공개되어 있다.
로컬 우선주의와 FSL 라이선스의 실무적 의미
개발자가 가장 먼저 확인하게 되는 지점은 데이터의 저장 경로다. Tokenova는 모든 데이터를 `~/Library/Application Support/com.tokenova.app/`와 같은 로컬 경로의 SQLite 데이터베이스에 저장한다. 반면 일반적인 SaaS(Software as a Service, 서비스형 소프트웨어) 기반의 분석 도구들이 데이터를 클라우드 서버로 전송해 처리하는 방식과 정면으로 대조된다. 주목할 점은 외부 서버를 완전히 배제한 프라이버시 중심 설계다. 인터넷 연결은 오직 GitHub Releases를 통해 최신 버전의 업데이트 여부를 확인하는 시점에만 제한적으로 이루어진다. 이는 기업 내부 보안 정책이 엄격하여 외부망 전송이 금지된 환경에서도 개발자가 심리적 저항 없이 도구를 도입할 수 있는 실무적 근거가 된다. 데이터 소유권을 사용자에게 완전히 귀속시킴으로써 보안 리스크를 원천적으로 차단한 결과다.
라이선스 정책 역시 일반적인 오픈소스 방식과는 궤를 달리한다. 이 도구는 FSL-1.1-ALv2(Functional Source License, 기능적 소스 라이선스)를 채택했다. 이는 초기에는 소스 코드를 공개하여 투명성을 확보하되, 특정 조건의 상업적 이용을 제한하고 일정 기간이 지나면 완전히 개방하는 하이브리드 방식이다. 구체적으로는 출시 2년 뒤 Apache 2.0 라이선스로 자동 전환되는 구조를 가진다. 그러나 개인 사용자와 사내 도입의 경우에는 현재도 제약 없이 자유로운 사용이 가능하다. 이러한 전략은 초기 개발자가 프로젝트의 주도권을 유지하며 상업적 악용을 방지하는 동시에, 장기적으로는 커뮤니티의 기여를 유도해 소프트웨어의 생명력을 연장하려는 계산된 유연함으로 분석된다. 관련 소스 코드는 GitHub 저장소에서 확인할 수 있다.
배포 방식과 사용자 인터페이스(UI)에서는 플랫폼 범용성과 즉각적인 접근성에 집중했다. macOS DMG, Windows NSIS, Linux AppImage 및 deb 파일을 모두 제공하여 운영체제 제약 없이 설치가 가능하다. 반면 내부적으로는 한국어와 영어 UI의 즉시 전환 기능을 지원해 언어 장벽을 제거하고 글로벌 사용성을 확보했다. 실무적으로 유의미한 지점은 365일 히트맵 기반의 코딩 리듬 시각화 기능이다. 단순한 토큰 사용량의 수치 나열에 그치지 않고, 일 년간의 활동량을 시각적으로 누적함으로써 개발자가 자신의 작업 패턴과 집중도를 객관적으로 복기할 수 있는 장치를 마련했다. 이는 단순한 유틸리티를 넘어 개발자의 작업 습관을 데이터화하고 이를 다시 시각적 보상으로 연결하는 설계적 장치로 작동한다. 결과적으로 로컬 우선주의와 유연한 라이선스는 개발자 커뮤니티가 가장 민감하게 반응하는 보안과 자유도라는 두 가지 핵심 가치를 동시에 충족시킨다.




