AI 전용 대시보드 'Token Dashboard' 제작 방법
요약
AI 토큰 소비량 및 잔량을 실시간으로 모니터링하는 전용 대시보드 'Token Dashboard' 제작 방법을 소개합니다. 이 시스템은 USB 스마트 디스플레이(TURZX)를 활용하여, 일반적인 서브 모니터를 사용하는 대신 책상 위나 키보드 뒤에 배치할 수 있는 형태로 설계되었습니다.
핵심 포인트
- AI 도구별 토큰 소비량을 한눈에 파악 가능
- USB 스마트 디스플레이로 전용 대시보드 구현
- 일반 모니터와 달리 작업 영역을 가리지 않음

책상 위에 Cursor나 Claude Code, Codex, Gemini 등의 토큰 소비량이나 이용 가능 잔량을 실시간으로 표시하는 AI 전용 대시보드 **'Token Dashboard'**를 만들어 보았습니다.
키보드 뒤쪽에 두면 작업 영역을 압박하지 않으면서 '이번 달 토큰 소비량'이나 '리셋까지 남은 시간'을 한눈에 확인할 수 있습니다.
바로 사용해 보고 싶다면 여기부터
앱으로 그대로 사용하고 싶을 경우에는 아래를 참조해 주세요.
설치 프로그램을 실행하여 디스플레이를 USB에 연결하기만 하면, 로컬 집계나 Token Monitor와 연동하여 즉시 사용할 수 있습니다.
──────────
어떤 장치를 사용했나요?
하드웨어로는 PC 상태 표시용으로 설계된 TURZX (Turing Smart Screen) 사의 USB 스마트 디스플레이를 사용했습니다.
이번에 사용한 모델: 9.2인치 울트라와이드 가로형 액정

출처: TURZX 9.2 Inch Detail (turzx.com)
해상도 1920×462 px의 가로형 바 타입 액정을 채택했습니다. 키보드 뒤나 모니터 아래 틈새에 배치하기 좋으며, 여러 AI 도구(Claude, Cursor, Codex, Gemini 등)의 게이지를 가로로 나란히 배열하기 쉬운 레이아웃입니다. 제공되는 USB Type-C 케이블 1개로 전원 공급과 데이터 통신이 모두 완료됩니다.
- 상세 사양: TURZX 공식 제품 정보
- 구매처: AliExpress (작동 확인됨), Amazon (OEM 동등품 후보)
Amazon 등에서 판매하는 외관이 동일한 제품은 내부 펌웨어나 통신 사양의 차이로 인해 작동하지 않을 수 있습니다. 확실하게 작동시키고 싶다면 작동 확인된 제품을 권장합니다.
다른 형태와 크기도 다양해요
TURZX에는 다른 다양한 변형 모델들이 있습니다.
| 모델 | 형태 / 해상도 | 특징・이미지 |
|---|---|---|
| 2.1인치 원형 | 원형 (480×480 px) | 수랭 헤드나 탁상시계 같은 라운드 액정 |
| ... | ![]() |
▲ 2.1인치 원형 디스플레이. 시계나 속도계 같은 디자인

▲ 3.5인치 직사각형 디스플레이. 스탠드가 있어 책상에 두기 좋음
원형 디스플레이로 계기판처럼 꾸미는 아이디어
2.1인치 원형을 나란히 배치하고, AI 도구별로 속도계 같은 아날로그 게이지를 그리는 구성도 가능합니다. 프로토콜은 공통이므로, 화면 해상도에 맞춰 이미지를 생성하면 유사하게 표시할 수 있습니다.
──────────
왜 서브 모니터가 아닌 이것인가?
'일반적인 모바일 모니터를 HDMI로 연결하면 되지 않나?'라는 의문점에 대해 전용 디스플레이는 다음과 같은 장점이 있습니다.
다른 창을 가리지 않는다
Token Monitor와 같은 도구는 이미 있지만, 화면의 최전면에 표시할 경우 다른 정보를 가리게 됩니다. 하지만 이것은 전용 모니터이므로 다른 창에 방해가 되지 않습니다.
다른 창에 가려지지 않는다
반대로, 다른 도구에 의해 이 디스플레이가 가려지는 일도 없으며, 언제든 시선을 돌리면 반드시 같은 장소에서 볼 수 있습니다.
화면은 어떻게 출력하는 건가요? (대략적인 원리)
일반적인 영상 신호(HDMI 등)가 아니라, USB의 Bulk 전송을 사용하여 이미지 파일(JPEG / PNG)을 패킷 형태로 직접 흘려보내는 구조입니다.

이미지를 한 번 전송하면 다음 전송까지 표시가 유지되므로, 값이 변화한 타이밍에만 전송하면 충분합니다.
전송 패킷의 내용물
장치로 보내는 데이터는 512 바이트의 고정 헤더와 이미지 데이터(JPEG / PNG)로 구성됩니다.
패킷 전체 구성
| 오프셋 | 크기 | 내용 | 암호화 |
|---|---|---|---|
0..503 | 504 bytes | 명령어, 매직 넘버, 현재 시각, 이미지 크기 | DES-CBC (키: slv3tuzx ) |
504..509 | 6 bytes | 예약 영역 (제로 채움) | 평문 (그대로) |
510..511 | 2 bytes | 종단 마커 (0xA1, 0x1A) | 평문 (그대로) |
512.. | 가변 길이 (최대 1 MiB) | 전송하려는 이미지 데이터 본체 (JPEG / PNG) | 평문 (그대로) |
헤더의 평문 포맷 (암호화 전)
암호화하기 전의 앞쪽 504 바이트 포맷은 다음과 같습니다:
| 오프셋 (byte) | 크기 (bytes) | 항목명 | 타입・엔디언 | 내용・설정값 |
|---|---|---|---|---|
0 | 1 | 명령어 | uint8 | 101: JPEG 전송, 102: PNG 전송, 10: 동기, 11: 재시작 |
1 | 1 | 예약 | uint8 | 0x00 고정 |
2..3 | 2 | 매직 넘버 | byte[2] | 0x1A , 0x6D 고정 |
4..7 | 4 | 당일 경과 밀리초 | uint32 (리틀 엔디언) | 당일 00:00:00부터의 경과 밀리초 |
8..11 | 4 | 이미지 데이터 길이 | uint32 (빅 엔디언) | 이미지 데이터의 바이트 길이 |
12..503 | 492 | 패딩 | byte[492] | 0x00 채움 |
앞쪽 504 바이트를 공통 키 slv3tuzx로 DES-CBC 암호화하고, 종단 마커 (0xA1, 0x1A)와 이미지 바이너리를 연결하여 전송합니다. 전송 후에는 USB Bulk IN으로부터 6바이트의 응답 패킷 ([명령어, 0xC8, 타임스탬프])이 돌아옵니다.
──────────
최소 코드 샘플 (Go)
TURZX 전송 패킷을 조립하는 최소한의 Go 코드 예시입니다.
package main
import (
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기