# Show GN: Tokenova — AI 코딩으로 쓴 토큰이 매일 하나의 우주가 되는 트레이 앱

> Clean Markdown view of GeekNews topic #29619. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29619](https://news.hada.io/topic?id=29619)
- GeekNews Markdown: [https://news.hada.io/topic/29619.md](https://news.hada.io/topic/29619.md)
- Type: show
- Author: [jkapa0417](https://news.hada.io/@jkapa0417)
- Published: 2026-05-18T15:25:31+09:00
- Updated: 2026-05-18T15:25:31+09:00
- Original source: [github.com/jkapa0417](https://github.com/jkapa0417/tokenova)
- Points: 1
- Comments: 0

## Topic Body

### Tokenova — AI 코딩으로 쓴 토큰이 매일 하나의 우주가 되는 트레이 앱  
  
요즘 Claude Code, Codex CLI, OpenCode 같은 도구를 매일 켜놓고 코딩하다 보면 한 가지 궁금해질 때가 있습니다. 오늘 내가 진짜 얼마나 굴렸지. 대시보드를 따로 띄우자니 무겁고, 빌링 페이지를 열자니 일하는 흐름이 끊깁니다.  
  
그래서 만든 게 Tokenova입니다. 메뉴바(macOS) / 시스템 트레이(Windows · Linux) 한구석에 작은 행성 아이콘 하나로 떠 있는 Tauri 앱입니다. 백그라운드에서 위 세 도구가 남기는 로컬 로그를 읽어 그날의 토큰 사용량을 별과 행성으로 그려줍니다. 자정이 지나면 그 우주는 닫히고, 새 캔버스가 열립니다.  
  
#### 동작 방식  
  
- **별** — 누적 토큰 20만 개마다 한 개씩. 첫 별이 뜨면 별도로 업적 한 개. 별의 모양은 12종 중 시드로 결정됩니다.  
- **행성** — 단일 세션이 100만 토큰을 넘으면서 끝나거나, 한 세션이 2천만 토큰을 누적할 때마다 강제 트리거됩니다. 31종 카탈로그에서 등급 룰렛(Common 70 / Rare 20 / Epic 8 / Legendary 1.9 / Mythic 0.1 %)으로 추첨됩니다.  
- **은하 레이아웃** — 매일 시드에 따라 6종(나선 · 타원 · 불규칙 · 쌍성단 · 산개 · 핵중심) 중 하나를 그립니다. 같은 시드는 같은 모양으로 재현되므로 과거 우주를 갤러리에서 다시 열어도 똑같이 보입니다.  
- **별자리** — Today 탭에서 별을 클릭으로 직접 잇습니다. 2개부터 등록 가능하며, 이름은 자동 생성하거나 직접 붙일 수 있습니다. 코덱스에 영구 보관됩니다.  
- **잠든 우주** — 토큰을 한 톨도 안 쓴 날은 별 캔버스 대신 부드러운 달과 별이 뜹니다. "잠든 우주" 업적도 따로 있습니다.  
  
#### 왜 이걸 쓰면 재미있나  
  
세 가지가 매일 다르게 작동합니다.  
  
첫째, 같은 양을 일해도 매일 모양이 다릅니다. 시드 + 레이아웃 + 룰렛 결과가 그날의 우주를 결정합니다. 어제는 나선이었는데 오늘은 핵중심. 같은 5천 줄을 짜도 별 분포가 매번 달라서 갤러리를 넘기는 재미가 있습니다.  
  
둘째, 등급 확률 때문입니다. Mythic 0.1 % 한 발 떨어졌을 때 화면 가득 슬라이드 인 되는 풀스크린 오버레이는 사실 좀 도파민입니다. 다이슨 구나 블랙홀이 뜨면 트레이 알림으로 OS가 직접 알려줍니다. 이걸 노리고 일하는 건 아닌데, 모르고 본 게 그 자체로 작은 보상이 됩니다.  
  
셋째, 365일 갤러리가 쌓입니다. 1주 / 1개월 / 1년 히트맵으로 자신의 코딩 리듬을 볼 수 있습니다. 잠든 날, 폭주한 날, 거대 은하가 만들어진 날이 다 캔버스로 보존되어 있고, 클릭하면 그날의 우주가 다시 재생됩니다.  
  
#### 어떻게 동작하나  
  
- **Claude Code** — `~/.claude/projects/*.jsonl` 을 notify로 watch  
- **Codex CLI** — `~/.codex/sessions/YYYY/MM/DD/*.jsonl` 을 watch  
- **OpenCode** — `opencode.db` SQLite를 5초 간격으로 폴링  
  
세 채널을 동일한 TokenEvent로 정규화해 SQLite 한 곳에 저장합니다. UI는 거기서 읽어 그립니다. 외부로 토큰 사용량을 전송하는 건 없습니다. 인터넷 연결은 자동 업데이트 확인이 GitHub Releases를 조회할 때만 사용합니다.  
  
#### 기술 스택과 제약  
  
- Tauri 2 · Rust · Vanilla TypeScript + Canvas (프레임워크 없음). 메모리는 트레이 popover 기준 80MB 안팎입니다.  
- macOS · Windows · Linux 모두 지원합니다. 자동 시작은 OS 부팅 시 백그라운드 실행으로 켤 수 있고, 첫 실행 시 기본 ON입니다.  
- 자동 업데이트는 minisign 서명 + GitHub Releases 매니페스트. 새 버전이 나오면 인앱 배너로 알려줍니다.  
- 모든 데이터는 로컬 SQLite (`~/Library/Application Support/com.tokenova.app/` 등). 외부 서버 없습니다.  
- 라이선스: FSL-1.1-ALv2. 개인 · 사내 사용 자유, 2년 뒤 Apache 2.0으로 자동 전환되는 Functional Source License입니다.  
- 한국어 / 영어 UI 즉시 전환. 행성 30종, 별 형태 14종, 모든 UI 문자열 양쪽 로컬라이즈.  
  
#### 받는 곳  
  
GitHub Releases에 macOS DMG, Windows NSIS, Linux AppImage / deb 모두 올려두었습니다. 현재 Apple Developer 프로그램 승인 대기 중이라 macOS DMG는 "신뢰할 수 없는 개발자" 경고가 뜹니다. Gatekeeper 우회가 한 번 필요합니다 (앱 우클릭 → 열기, 또는 시스템 설정 → 개인 정보 보호 및 보안 → "확인 없이 열기"). 승인 완료 후에는 이 단계가 사라질 예정입니다. Windows는 SmartScreen에서 "추가 정보 → 실행". 첫 설치 후엔 인앱 자동 업데이트가 새 버전을 알아서 알려줍니다.  
  
저장소: https://github.com/jkapa0417/tokenova  
  
#### 피드백 및 버그 리포트  
  
쓰다가 이상한 점이 생기거나 아이디어가 떠오르면 댓글이든 GitHub Issue든 언제든 편하게 남겨주세요. 별별 의견 다 환영합니다. 앞으로의 개발 방향과 예정 기능은 GitHub 저장소의 로드맵에서 확인할 수 있습니다.  
  
#### 한 줄  
  
Tokenova가 코딩 습관을 바꿔주진 않습니다. 화면 가장자리에 작은 우주 하나가 떠 있을 뿐입니다. 그 우주가 매일 다르게 자라는 걸 보는 게 의외로 일을 지속하게 만듭니다.

## Comments



_No public comments on this page._
