จัดอันดับคนที่ใช้โทเค็น 42.8 พันล้าน
(github.com/junhoyeo)TLDR: https://github.com/junhoyeo/tokscale
ที่มา
- เริ่มจาก Claude Code ที่เปิดตัวในช่วงครึ่งแรกของปีนี้ ตามด้วย OpenAI Codex CLI, Google Gemini CLI และผู้ให้บริการ LLM อีกหลายรายที่เริ่มนำเสนอเครื่องมือ Agentic Coding Tool อย่างจริงจัง ถึงอย่างนั้น งานส่วนใหญ่ก็ยังทำเองอยู่
- แต่หลังจากเพื่อนแชร์การตั้งค่า OpenCode ให้ ก็เริ่มใช้งานอย่างจริงจังมากขึ้นมาก พอรันหลายเอเจนต์แบบขนานให้รีวิวกันเอง หรือแยกงานเป็นสำรวจ/พัฒนา/ตรวจสอบ (พูดอีกอย่างคือ ยิ่งใช้โทเค็นมากขึ้นเท่าไร...) ประสิทธิภาพก็เพิ่มขึ้นอย่างเห็นได้ชัด หลังจากนั้นเพื่อนก็เปิดซอร์สการตั้งค่าของตัวเองและได้ดาวกว่า 2.5k+ ในนาม Oh-My-OpenCode (https://github.com/code-yeongyu/oh-my-opencode)
- ภายในเดือนเดียวหลังได้เจอเพื่อน ก็ใช้โทเค็นไปมากกว่า 5 พันล้านและกลายเป็นสาวกเต็มตัว (กำลังใช้โควตารายสัปดาห์ของบัญชี Claude Max plan จนเต็มทุกสัปดาห์ จริง ๆ เคยสร้างบัญชีรองแล้วก็โดนแบนด้วย) และได้รู้ด้วยว่าคนที่ใช้ agentic workflow ยังมีไม่มากอย่างที่คิด
จุดเริ่มต้นของไอเดีย
-
ได้รู้จักเครื่องมือชื่อ ccusage สำหรับติดตามการใช้โทเค็นของ Claude Code
-
พออ่านบทความเกี่ยวกับ "นักพัฒนาที่ใช้ Claude Code มากที่สุดในโลก" (คุณจินฮยอง!) ก็เกิดคำถามว่า "เขารู้ได้ยังไงว่าเป็นอันดับ 1 ของการใช้โทเค็น?" เลยค้นต่อและพบว่ามีเว็บเล็ก ๆ ชื่อ viberank (https://github.com/sculptdotfun/viberank) ซึ่งเป็น leaderboard ที่สร้างจากข้อมูลของ ccusage (ไม่แน่ใจว่าตอนนี้ยังดูแลอยู่หรือเปล่า)
-
แต่ทั้งสองโปรเจ็กต์ยังไม่รองรับข้อมูลจากไคลเอนต์อื่น เช่น OpenCode, Codex CLI (ccusage รองรับบางส่วน), Gemini CLI เป็นต้น
-
พอดีมีความคิดแวบขึ้นมาในห้องอาบน้ำว่า ถ้าเอาปริมาณการสร้างโทเค็นมาแสดงเป็น GitHub Contribution Graph ก็น่าจะดี เพราะนักพัฒนาคุ้นเคยกับ GitHub อยู่แล้ว และส่วนตัวคิดว่ามันเป็นรูปแบบที่ตั้งเป้าหมายเพื่อบีบตัวเองให้ทำต่อได้ง่าย
- Isometric Contributions (https://github.com/jasonlong/isometric-contributions) - ส่วนขยาย Chrome โอเพนซอร์สอายุถึง 10 ปี ที่เรนเดอร์ GitHub contribution graph แบบ 3D isometric → เอาไอเดียกราฟ 3D มาจากตรงนี้
- อ้างอิงไอเดียธีมสีต่าง ๆ จาก GitHub contribution graph
- ฝั่งฟรอนต์เอนด์ใช้ obelisk.js (https://github.com/nicklockwood/obelisk.js) เพื่อทำ 3D isometric rendering
-
เดิมทีก็ชอบทำโปรดักต์แบบแฮ็กกี้ให้เสร็จเร็ว ๆ เพื่อดูปฏิกิริยาและดึงความสนใจอยู่แล้ว (ดูโพสต์ก่อนหน้า)
-
เลยตัดสินใจสร้างแพลตฟอร์มที่มาในรูปแบบ CLI/TUI รันได้ง่ายด้วย bunx (ตัวเทียบเท่า npx ใน ecosystem ของ Bun) และสามารถ submit ไปยัง API server เพื่อแชร์ข้อมูลและเอาชื่อขึ้น leaderboard ได้
ชื่อโปรเจ็กต์: Tokscale
-
ได้แรงบันดาลใจจาก Kardashev Scale (https://ko.wikipedia.org/wiki/Kardashev_scale)
-
เป็นสเกลที่จัดระดับความก้าวหน้าทางเทคโนโลยีของอารยธรรมตามปริมาณการใช้พลังงาน (Type I = ระดับดาวเคราะห์, II = ระดับดาวฤกษ์, III = ระดับดาราจักร)
-
มองว่าในยุค AI โทเค็นคือพลังงานรูปแบบใหม่ คอนเซปต์คือทำให้เห็นเส้นทางการเติบโตจาก "planetary developer" ไปจนถึง "galactic code architect"
-
Elon Musk เคยพูดว่า "Electricity is money"
- ในยุค AI และดาต้าเซ็นเตอร์ ขีดจำกัดของประสิทธิภาพไม่ได้อยู่ที่คอมพิวต์ แต่อยู่ที่ปริมาณไฟฟ้าที่จ่ายได้
- มากกว่าประสิทธิภาพ GPU สิ่งที่แข่งขันกันคือการจัดหาไฟฟ้า การระบายความร้อน และประสิทธิภาพโดยรวม
-
แล้วถ้าดึงแนวคิดนี้ลงมาสู่ระดับนักพัฒนารายบุคคลล่ะ?
- สิ่งที่เราจ่ายเมื่อใช้ LLM API = โทเค็น
- คนที่ใช้โทเค็นได้มากกว่าและมีประสิทธิภาพกว่าจะผลิตโค้ดได้มากกว่า
- โทเค็นจะกลายเป็นหน่วยพลังงานส่วนบุคคลในยุค AI
-
ถ้า AI คือเครื่องที่เปลี่ยนไฟฟ้าเป็นเงิน เครื่องมือ agentic coding ก็เป็นเครื่องที่เปลี่ยนโทเค็นเป็นโค้ด
-
ดังนั้น Tokscale = Token + Kardashev Scale
- คอนเซปต์คือทำให้เห็นการเติบโตจาก "planetary developer" ไปถึง "galactic code architect"
- วัดระดับการใช้ AI ของนักพัฒนาด้วยปริมาณการใช้โทเค็น
การทำ TUI
- ใช้ OpenTUI (https://github.com/sst/opentui) เพื่อสร้าง terminal UI
- OpenTUI เป็น TUI framework ที่พัฒนาโดย SST ต่างจาก Ink ของ React เพราะใช้ Solid.js และมี native Zig engine ที่ให้การเรนเดอร์แบบ zero-flicker (ช่วงหลัง OpenCode กับ
- มี 4 มุมมอง (Overview, Models, Daily, Stats) พร้อมการนำทางด้วยคีย์บอร์ด/เมาส์
- ธีมสี 9 แบบสำหรับ contribution graph: Green, Halloween, Teal, Blue, Pink, Purple, Orange, Monochrome, YlGnBu (เป็นธีมที่ชุมชน GitHub contribution graph ทำขึ้น)
- กราฟเรนเดอร์ด้วยอักขระ Unicode block (▁▂▃▄▅▆▇█) และแสดงแบบสแตกโดยใช้สีต่างกันตามโมเดล
การดึงข้อมูลช้า → โมดูลเนทีฟ Rust
- ตอนแรกพาร์สไฟล์ JSON ด้วย TypeScript แต่ช้าเกินไป
- เลยย้ายไปใช้โค้ดเนทีฟ Rust ผ่าน napi-rs (https://napi.rs/)
- ได้ประสิทธิภาพดีขึ้นประมาณ 8.5 เท่า:
- สำรวจไฟล์: ~500ms → ~50ms (10x)
- พาร์ส JSON: ~800ms → ~100ms (8x, ใช้ simd-json (https://github.com/simd-lite/simd-json))
- รวมผล: ~200ms → ~25ms (8x, ใช้การประมวลผลขนานของ rayon (https://github.com/rayon-rs/rayon))
- ใช้หน่วยความจำลดลงราว 45% ด้วย (streaming parse, zero-copy string handling)
- เพื่อให้เข้ากับ OpenTUI จึงรองรับ bunx และตัด npx ออก เปลี่ยนเป็นต้องใช้ Bun runtime
- ใน TypeScript CLI ใช้ Bun.spawn เพื่อรัน subprocess ที่สื่อสารกับโมดูลเนทีฟ Rust และส่งข้อมูล JSON กันผ่าน stdin/stdout
- (แต่เพราะใช้ OpenCode เยอะเกินไป บนเครื่องผมมันก็ยังช้าลงอยู่ดี T_T)
ปัญหา data retention
- เครื่องมือ agentic coding จะเรียกประวัติทั้งหมดว่า session และเก็บไว้ใน hidden directory ที่ขึ้นต้นด้วย .
- Claude Code: ~/.claude/projects/ (JSONL)
- OpenCode: ~/.local/share/opencode/storage/message/ (JSON แยกไฟล์)
- Codex CLI: ~/.codex/sessions/ (JSONL แบบ event-based)
- Gemini CLI: ~/.gemini/tmp/*/chats/ (JSON)
- Claude Code และ Gemini CLI มี retention period เริ่มต้น 30 วัน และเมื่อครบแล้วข้อมูล session จะถูกลบ
- หลังรู้เรื่องนี้ คนจำนวนมากรู้สึกเสียดายข้อมูล จึงเขียนวิธีปิดไว้ละเอียดใน README
- Claude Code: เพิ่ม "cleanupPeriodDays": 9999999999 ใน ~/.claude/settings.json
- ส่วน OpenCode และ Codex CLI จะเก็บไฟล์ session ทั้งหมดถาวร (ไม่มีฟังก์ชันลบเลย)
การเชื่อมต่อกับ Cursor IDE
- ตอนนี้เลิกใช้แล้ว แต่เคยใช้ Cursor IDE อยู่ช่วงหนึ่ง (และข้อมูลนี้ก็มีค่าสำหรับผม เลยต้องเชื่อมต่อด้วย)
- Cursor ไม่ได้ใช้ไฟล์ session ในเครื่อง แต่รองรับการ export CSV ผ่าน API เลยดึงข้อมูลมาได้
- พบว่าถ้ามี session token (WorkosCursorSessionToken) ก็ยืนยันตัวตนได้ผ่าน developer tools
- หาได้จาก Cookie header ของคำขอ cursor.com/api/* ในแท็บ Network
- หรือคัดลอกตรง ๆ จาก Application → Cookies
- ทำคำสั่งเป็น tokscale cursor login | status | logout เพื่อให้จัดการได้สะอาด
การเชื่อมต่อกับ GitHub (OAuth)
- ใช้วิธีรับรองตัวตนแบบ Device Flow
- tokscale login → เปิดเบราว์เซอร์ → กรอกโค้ด → รับโทเค็น
- อัปโหลดข้อมูลการใช้งานขึ้น leaderboard ด้วย
tokscale submit - ข้อมูลที่ส่งจะผ่านการตรวจสอบระดับ 1 (ความสอดคล้องทางคณิตศาสตร์, ไม่มีวันที่ในอนาคต, ตรวจจับข้อมูลซ้ำ ฯลฯ)
การคำนวณราคาโทเค็น
- ดึงข้อมูลราคาแบบเรียลไทม์จากฐานข้อมูลราคาของ LiteLLM (https://github.com/BerriAI/litellm)
- แคชลงดิสก์ที่ ~/.cache/tokscale/pricing.json โดยมี TTL 1 ชั่วโมง
- รองรับการคำนวณแยกสำหรับ input/output/cache read/cache write/reasoning token
- รองรับ tiered pricing ด้วย (เกิน 200k โทเค็น)
Wrapped 2025
- ฟีเจอร์สร้างภาพสรุปประจำปีที่ได้แรงบันดาลใจจาก Spotify Wrapped (รอติดตามปลายปี)
- รัน
tokscale wrappedแล้วจะสร้างภาพ PNG - ใช้ @napi-rs/canvas (https://github.com/Brooooooklyn/canvas) สำหรับเรนเดอร์ภาพ และ @resvg/resvg-js (https://github.com/nicklockwood/resvg-js) สำหรับแปลง SVG → PNG
- ดาวน์โหลดและแคชฟอนต์ Figtree จาก Google Fonts
- เนื้อหาที่ใส่: โทเค็นรวม, Top 3 โมเดล, Top 3 ไคลเอนต์, Top 3 เอเจนต์, จำนวนข้อความ, จำนวนวันที่มีการใช้งาน, ค่าใช้จ่าย, สตรีก, contribution graph
คอขวดและเรื่องที่กำลังคิด
- ตอนนี้ต้องดึงจากเครื่องโลคัลทุกครั้งจึงช้า และการต้องอัปโหลดลงฐานข้อมูลก็ยังหนัก
- ปัจจุบันกำลังพิจารณา incremental submission แบบอิง diff โดยจะสร้างแฮชรายวันแล้วอัปโหลดเฉพาะส่วนที่เปลี่ยนไป เพื่อเปิดทางให้ข้อมูลของวันในอดีตยังแก้ไขได้
โค้ดทั้งหมดทำโดย Oh-My-OpenCode
- จริง ๆ แล้วแทบทุกบรรทัดเขียนโดยเอเจนต์
- มีคอมมิตมากกว่า 423 รายการ รวม README 4 ภาษา (EN, KO, JA, ZH-CN)
- อัปโหลดสกรีนช็อตหลายรูปขึ้น GitHub เพื่อให้หน้าดูสวย (อันนี้ยอมรับว่ามีมือคนช่วยอยู่บ้าง แต่ก็มั่นใจว่าในช่วงที่สร้างโปรเจ็กต์ทั้งหมด เวลาที่เปิด IDE แล้วลงมือเขียนโค้ดเองนั้นรวมกันยังไม่ถึง 30 นาที)
1 ความคิดเห็น
อยากทราบว่าได้สั่งงานให้ LLM ไปประมาณกี่ครั้งจนกว่าโปรเจ็กต์จะเสร็จสมบูรณ์