# 27 lần chạy Claude Code: Graphify có thật sự tiết kiệm token?

[DIY Smart Code](https://homus.dev/speakers/diy-smart-code) · [DIY Smart Code](https://homus.dev/orgs/diy-smart-code)

> Đo 27 lần chạy trên repo Textual: Claude Code không quét lại codebase mỗi session, CLAUDE.md và Graphify không giảm token, câu hỏi mới quyết định chi phí.

Topics: Coding Agents, Context Engineering, Dev Tools

Canonical: https://homus.dev/talks/i-tested-27-claude-code-runs-does-graphify-actually-save-tokens

## 1. Lời hứa của một reel và bài test 27 lần chạy

Video mở đầu bằng một reel có 1,3 triệu lượt xem (con số theo video đăng ngày 17/10/2026). Reel đó nói rằng một tool không mất tiền giúp gói Claude 20 đô của bạn làm được những gì trước đây phải dùng gói 100 đô. Lý do reel đưa ra: mỗi lần mở session mới, Claude lại đi qua toàn bộ codebase của bạn một lần nữa, từng file, từng function, trước cả khi bạn kịp hỏi câu nào. Tool được nhắc tới là Graphify.

Để kiểm chứng, DIY Smart Code dựng một repo thật theo ba cách: Claude Code để nguyên như lúc cài (plain), Claude Code có thêm một file CLAUDE.md do lệnh `/init` viết ra, và Claude Code có Graphify. Cả ba cùng nhận đúng ba câu hỏi, mỗi câu chạy ba lần, và mọi token đều được đếm: tổng cộng 27 lần chạy. Kênh nói trước kết quả (video đăng ngày 17/10/2026): claim chính của reel đã sụp đổ trước cả khi Graphify kịp vào cuộc.

![Slide Memory, tested: Graphify vs plain, 27 runs, bên cạnh Claude Code 2.1.296 trong VS Code đang nhận câu hỏi đầu tiên](https://homus.dev/photos/R8r5Or0Xajg-0003.jpg)

Slide mở đầu "Memory, tested." (video đăng ngày 17/10/2026): Graphify đặt cạnh Claude Code plain qua 27 lần chạy, kèm nhãn reel 1,3 triệu lượt xem. Bên phải là Claude Code 2.1.296 trong VS Code vừa nhận câu hỏi đầu tiên và bắt đầu tìm file `linux_driver.py`.

Câu hỏi thứ nhất được gõ nguyên văn như trên màn hình:

```
When a user presses a key in a Textual app running on Linux, how does that key event travel from the terminal to a widget's key handler? List the main steps in order, with the file and function for each. Answer from this repository's source code. Be concise.
```

![Ba thẻ plain, /init và Graphify: một repo, ba cách dựng](https://homus.dev/photos/R8r5Or0Xajg-0023.jpg)

"One repo, three setups": thẻ plain là Claude Code như lúc cài, thẻ /init là file CLAUDE.md mở đầu bằng câu "This file provides guidance to Claude Code", thẻ Graphify là terminal sau khi build graph và chạy benchmark của tool.

## 2. Claude Code có quét lại cả codebase mỗi session không?

Repo được chọn là Textual, một framework Python để làm ứng dụng chạy trong terminal. Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), repo có khoảng 2.100 file và hơn 10 triệu ký tự văn bản, kể cả khi đã bỏ các test snapshot ra (trên màn hình ghi 10,6 triệu ký tự). Với cách ước lượng quen dùng là bốn ký tự cho một token, như vậy là hơn 2,5 triệu token. Trong khi đó, theo video đăng ngày 17/10/2026, Opus trong Claude Code chứa được 1 triệu token.

Nói cách khác, nếu mỗi session thật sự bắt đầu bằng việc nạp cả codebase, thì nó còn không vừa context window. Vì vậy kênh mở một session mới tinh trong repo đó. Trước khi gõ một chữ nào, lệnh `/context` báo session đã dùng 27.000 token (theo số đo của DIY Smart Code, video đăng ngày 17/10/2026), và không token nào trong đó là code của Textual. Số đó là phần instructions riêng của Claude Code, các tool của nó và phần mô tả các skill. CLAUDE.md của bạn và 200 dòng đầu của auto memory được cộng thêm lên trên. Còn code của bạn thì không.

![Cây thư mục repo Textual bên cạnh dòng chữ The repo is Textual, khoảng 2.100 file, 10,6 triệu ký tự](https://homus.dev/photos/R8r5Or0Xajg-0043.jpg)

Cây thư mục của repo Textual (src, tests, docs, CLAUDE.md...) và hai con số về kích thước repo theo số đo của kênh trong video đăng ngày 17/10/2026: khoảng 2.100 file, 10,6 triệu ký tự.

Theo video đăng ngày 17/10/2026, Anthropic nói thẳng điều này: Claude Code không cần một codebase index. Nó tìm bằng grep và mở file khi một task cần tới file đó. Trên màn hình là đoạn trích từ blog của Anthropic về codebase lớn: Claude Code đi trong codebase giống cách một software engineer làm, duyệt file system, đọc file, dùng grep để tìm đúng thứ cần, lần theo các tham chiếu, chạy local trên máy của developer và "doesn't require a codebase index to be built, maintained, or uploaded to a server".

![Đoạn trích blog Anthropic: Claude Code doesn't require a codebase index](https://homus.dev/photos/R8r5Or0Xajg-0123.jpg)

Đoạn trích từ blog của Anthropic về Claude Code trong codebase lớn, phần được tô là "doesn't require a codebase index to be built" (blog đọc ngày 22/10/2026).

Theo DIY Smart Code (video đăng ngày 17/10/2026), reel chỉ đúng một điều. Các session độc lập với nhau, nên session mới không biết session trước đã mở những file nào, và nó tìm lại từ đầu. Kênh cũng tự nhận lỗi: chính video short về Graphify mà kênh đăng hồi tháng 6 đã mắc cùng sai lầm, khi nói rằng Claude phải quét qua các file của bạn trước khi bạn hỏi câu đầu tiên. Điều đó sai. Token không đi vào việc quét trước, mà đi vào chính phần việc.

## 3. Token của một câu hỏi thật sự đi đâu

Câu hỏi 1 bảo Claude lần theo một lần bấm phím, từ terminal driver tới handler của một widget. Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), Claude Code plain mất khoảng 17 lượt (turn, median của ba lần chạy): tìm một function, mở một file, rồi lại tìm tiếp. Lần chạy ở mức median dùng 194.000 token (trên màn hình là 193.659).

![17 turns, 193.659 token ở lần chạy median, bên cạnh câu trả lời 10 bước của Claude](https://homus.dev/photos/R8r5Or0Xajg-0203.jpg)

"The tokens go into the work instead": câu hỏi Q1 mất 17 lượt (median của ba lần chạy) theo vòng search, open a file, search again, và 193.659 token ở lần chạy median, theo số đo của kênh (video đăng ngày 17/10/2026). Bên phải là câu trả lời của Claude: mười bước một phím đi qua, từ `drivers/linux_driver.py` tới việc event "bubble" lên widget cha, Screen rồi App.

Con số đó nghe đáng sợ cho tới khi tách nó ra. Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), hơn 80% số token đó là cache hit (phần mô tả video ghi 82% ở lần chạy plain median). Mỗi lượt, Claude Code gửi lại toàn bộ cuộc hội thoại, và theo video đăng ngày 17/10/2026, trên Opus 5.5 một token đã cache chỉ tốn 5% giá của một token input thường. Thứ thật sự tốn tiền là phần mới: những file Claude mở ra và câu trả lời nó viết.

Vậy đó là mức chuẩn mà mọi memory tool phải vượt qua: khoảng 190.000 token cho câu hỏi này, phần lớn là cache, và còn rất xa con số 2,5 triệu (theo số đo của DIY Smart Code, video đăng ngày 17/10/2026).

## 4. /init và CLAUDE.md: memory có sẵn có làm rẻ hơn không?

Cách sửa đầu tiên đã có sẵn trong Claude Code. Lệnh `/init` cho Claude xem qua repo của bạn rồi viết một file CLAUDE.md gồm các lệnh, kiến trúc và quy ước mà nó tìm thấy. Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), trên Textual việc này mất 47 giây và khoảng 360.000 token, nhưng chỉ một lần.

![Measured /init run 47 s, bên cạnh đoạn Snapshot tests và Architecture trong CLAUDE.md mà /init viết](https://homus.dev/photos/R8r5Or0Xajg-0243.jpg)

Lần chạy `/init` đo được 47 giây (theo video đăng ngày 17/10/2026). Trong khung là một phần CLAUDE.md nó viết: mục Snapshot tests (cách `snap_compare` chạy, cập nhật snapshot bằng `--snapshot-update`, không sửa tay `__snapshots__/`) và mục Architecture (chuỗi class lõi tới Widget, Screen, App, cách message được dispatch và bubble lên, pipeline CSS TCSS).

Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), file ra đời dài 43 dòng, khoảng 1.000 token, và được nạp vào đầu mọi session. Trên repo này, nó không làm các câu hỏi rẻ hơn. Qua 9 lần chạy, Claude Code plain trung bình khoảng 116.000 token mỗi câu hỏi (trên màn hình là 115.665), còn khi có CLAUDE.md là 126.000.

Khoảng chênh đó còn nhỏ hơn độ dao động giữa các lần chạy: theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), cùng một câu hỏi, cùng một setup, số token xê dịch tới 61.000 giữa lần này với lần khác. Thứ mà file CLAUDE.md đem lại là chỉ dẫn (guidance) Claude nhận được ở mọi session, chẳng hạn lệnh chạy test của bạn, hay những folder nó nên để yên. Lời khuyên của Anthropic là giữ file dưới 200 dòng, vì mỗi dòng đều tốn context ở mọi request. Trên màn hình lúc đó là đoạn tài liệu memory của Claude Code, mục Size: nhắm dưới 200 dòng mỗi file CLAUDE.md, file dài hơn tốn nhiều context hơn và làm Claude bám chỉ dẫn kém hơn; chỉ dẫn chỉ liên quan một phần codebase thì chuyển sang path-scoped rules, còn imports giúp sắp xếp file dài nhưng không giảm chi phí context vì file được import cũng nạp lúc khởi động (tài liệu đọc ngày 22/10/2026).

## 5. Graphify: benchmark của chính nó và 9 lần chạy thật

Giờ tới Graphify, phiên bản 0.9.86, bản phát hành mới nhất theo video đăng ngày 17/10/2026. Kênh cài nó đúng như README hướng dẫn và build graph bằng lệnh `update` của command line, lệnh này parse code ngay trên máy bằng Tree-sitter. Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), với Textual việc này mất 27 giây và không tốn token model nào, tạo ra khoảng 19.500 node và 38.000 edge (trên màn hình là 19.568 node, 38.408 edge). Bộ cài còn thêm một mục vào CLAUDE.md và hai hook để đẩy Claude dùng graph trước khi nó tìm kiếm hay mở một file.

Graphify kèm theo benchmark riêng. Trên repo này, theo video đăng ngày 17/10/2026, nó in ra con số ít hơn chín lần token cho mỗi query. Nhưng hãy nhìn xem con số đó được đo so với cái gì: so với toàn bộ corpus, như thể Claude dán mọi file vào một prompt duy nhất. Đó lại chính là sai lầm của reel. Hơn nữa, benchmark không hề đếm corpus: khi không có số đếm chữ, code của nó lấy số node trong graph nhân với 50 chữ.

![Terminal in graphify token reduction benchmark: corpus, graph, avg query cost, reduction 9.0x](https://homus.dev/photos/R8r5Or0Xajg-0443.jpg)

Kết quả "graphify token reduction benchmark" trên Textual theo video đăng ngày 17/10/2026: Corpus 978.400 words, quy ra khoảng 1.304.533 token (ghi là "naive", được khoanh và chú thích "vs the whole corpus"), Graph 19.568 node và 38.408 edge, Avg query cost khoảng 144.973 token, Reduction "9.0x fewer tokens per query" (chú thích "its own number"). Từng câu hỏi mẫu của benchmark: 9,0x, 3,9x, 24,7x và 28,6x.

Rồi tới các lần chạy thật. Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), trong cả chín lần, Claude gọi Graphify query đúng một lần, nhận về một danh sách node, rồi quay lại grep và mở file. Ở bốn trong số các câu trả lời đó, Claude tự viết rằng query không tìm được gì hữu ích, hoặc chỉ trả về một danh sách node.

![Claude viết Graph too broad; I'll verify in source directly rồi chạy grep](https://homus.dev/photos/R8r5Or0Xajg-0503.jpg)

Một lần chạy có Graphify trong video đăng ngày 17/10/2026: Claude viết "Graph too broad; I'll verify in source directly." (được khoanh, chú thích "back to grep"), rồi chạy lệnh Bash `grep -n` trong `src/textual` để tìm `_run_input_thread`, `XTermParser` và các selector.

Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), Graphify trung bình 124.000 token mỗi câu hỏi, nhiều hơn plain gần 9.000 token, và mọi câu trả lời ở cả ba setup đều đúng. Nó cũng chậm hơn trên chiếc máy Windows này: câu trace mất khoảng hai phút thay vì 40 giây (trên slide, thời gian median của Graphify là 120 giây, trên Windows 11, một máy). Phần lớn thời gian đó là chính Graphify query, gần một phút mỗi lần gọi, còn các hook cộng thêm vài giây vào mỗi lần tìm kiếm và tra file.

Kênh thừa nhận: ba câu hỏi trên một repo là một bài test nhỏ. Nhưng nó đủ để nói rằng con số của reel đã không xuất hiện ở đây (theo video đăng ngày 17/10/2026).

## 6. Qua nhiều session: auto memory và resume

Lời chào hàng thật sự của reel nằm ở session kế tiếp: Claude lẽ ra không phải mở lại đúng những file cũ một lần nữa. Theo video đăng ngày 17/10/2026, Claude Code đã có sẵn hai lớp được mang sang giữa các session. CLAUDE.md là lớp bạn viết. Auto memory là lớp Claude viết: bạn bảo nó nhớ một điều, nó lưu lại một ghi chú, và 200 dòng đầu hoặc 25 KB đầu của file index ấy được nạp vào mỗi session mới. Trên màn hình là đoạn tài liệu memory của Claude Code ghi đúng điều này: 200 dòng đầu của `MEMORY.md`, hoặc 25KB đầu, tuỳ cái nào tới trước, được nạp ở đầu mỗi cuộc hội thoại; phần vượt ngưỡng thì không nạp, và Claude giữ `MEMORY.md` gọn bằng cách chuyển ghi chú chi tiết sang các file theo chủ đề (tài liệu đọc ngày 22/10/2026).

Kênh đã thử. Họ bảo Claude nhớ hai điều: viết đường dẫn file tương đối so với folder source, và kết thúc mọi câu trả lời bằng một dòng cố định. Trong một session hoàn toàn mới, Claude làm đúng cả hai, với khoảng 250 token tăng thêm (theo số đo của DIY Smart Code, video đăng ngày 17/10/2026). Theo video đăng ngày 17/10/2026, auto memory cố ý bỏ qua mọi thứ nó có thể tự suy ra từ code, như kiến trúc hay đường dẫn file, và đó là lý do Claude vẫn phải tìm kiếm.

Resume một session thì vận hành khác: nó gửi lại toàn bộ cuộc hội thoại. Kênh resume session trace sau hơn một tiếng, với một câu hỏi tiếp theo. Theo số đo của DIY Smart Code (video đăng ngày 17/10/2026), lần đó tốn 32.000 token (trên màn hình là 32.296). Cùng câu hỏi ấy trong một session mới tốn 77.000 token (76.986), vì Claude phải tìm lại trong code.

![Một câu hỏi tiếp theo: resumed session 32.296 token, fresh session 76.986 token](https://homus.dev/photos/R8r5Or0Xajg-0643.jpg)

Cùng một câu hỏi tiếp theo, tính bằng token, theo số đo của kênh (video đăng ngày 17/10/2026): session được resume tốn 32.296, session mới tốn 76.986 vì "had to search the code again". Cột bên phải dành cho giá theo bảng giá API, sẽ hiện ra ở phần sau của slide.

Thế nhưng theo giá API, lần resume lại tốn gấp khoảng hai lần (theo số đo của DIY Smart Code, video đăng ngày 17/10/2026). Lý do: cache một giờ đã hết hạn, nên cả cuộc hội thoại phải được ghi lại vào cache, mà theo video đăng ngày 17/10/2026, ghi cache ở mức đó có giá gấp đôi giá input thường. Bảng giá API của Anthropic cũng ghi 1-hour cache write bằng 2x giá input gốc (đọc ngày 22/10/2026).

## 7. Khi nào một code graph hay một index thật sự giúp

Graphify vẫn có chỗ dùng, chỉ là một chỗ khác. Theo video đăng ngày 17/10/2026, benchmark code của chính Graphify chạy trên một repo khoảng một triệu dòng (trên slide là ERPNext) và đo độ bao phủ của câu trả lời (answer coverage), không phải mức tiết kiệm token. Khi có thêm một tool Graphify, coverage của một agent tăng từ 70,8% lên 82%, qua sáu câu hỏi, với khoảng 140.000 token mỗi query (số liệu benchmark của Graphify, theo video đăng ngày 17/10/2026).

![Bảng benchmark của Graphify với dòng ERPNext cross-tool được tô sáng](https://homus.dev/photos/R8r5Or0Xajg-0703.jpg)

"Graphify still has a use, just a different one": bảng benchmark của Graphify được trích trong video đăng ngày 17/10/2026. Dòng được tô là ERPNext cross-tool (n=6), key-fact coverage 82,0% so với baseline grep/read 70,8%. Các dòng khác là LOCOMO (recall@10 và QA accuracy), LongMemEval-S (76%, ngang dense RAG) và chi phí build graph bằng 0 LLM credit.

Anthropic cũng nói điều tương tự. Nếu team của bạn đã chạy sẵn một code search index, hãy cắm nó vào dưới dạng một MCP tool. Mẹo của chính Anthropic để tra code rẻ hơn là code intelligence plugins, loại plugin nhảy thẳng tới định nghĩa thay vì grep. Tài liệu Claude Code về codebase lớn ghi: nếu tổ chức của bạn đã chạy một code search hay RAG index trên repo, hãy expose nó thành một MCP tool để Claude query nó thay vì đọc file trực tiếp; còn code intelligence plugins nối Claude với một language server để nó nhảy tới định nghĩa, tìm tham chiếu và báo lỗi kiểu ngay, thay vì quét cả cây thư mục (tài liệu đọc ngày 22/10/2026).

![Slide MCP servers và Code intelligence plugins từ tài liệu Claude Code](https://homus.dev/photos/R8r5Or0Xajg-0723.jpg)

Slide trong video đăng ngày 17/10/2026. Bên trái: code search index của bạn, cắm vào làm MCP tool để Claude query nó thay vì đọc file; một lần tra code thường là grep rồi read, read, read, và code intelligence plugins thay thế chuỗi đó. Bên phải là hai đoạn tài liệu Claude Code tương ứng, trong đó một lần gọi "go to definition" thay cho một lần grep cộng nhiều lần đọc file ứng viên.

Còn các con số tiêu đề thì là chuyện khác. Theo video đăng ngày 17/10/2026, không có trang Graphify nào thời điểm đó ghi con số 70%. Con số 80% trên README là dành cho Graphify Cloud, bản trả phí, chạy hosted, và không công bố phương pháp đo. README của repo (đọc ngày 22/10/2026) có ghi "80% fewer tokens" trong phần giới thiệu Graphify Cloud.

Và kể cả khi cắt giảm 70% là thật, nó cũng không biến gói Pro thành gói Max. Theo video đăng ngày 17/10/2026, gói Max 100 đô cho mức sử dụng gấp 5 lần Pro, còn 70% ít token hơn chỉ kéo dãn cùng mức sử dụng đó ra hơn 3 lần một chút. Trang hỗ trợ của Anthropic về gói Max ghi Max 5x giá 100 đô mỗi tháng (đọc ngày 22/10/2026).

## 8. Kết luận: điều gì thật sự đổi số token

Theo số đo của DIY Smart Code qua cả 27 lần chạy (video đăng ngày 17/10/2026), setup gần như không làm số token nhúc nhích. Câu hỏi thì có. Câu tra cứu hẹp tốn khoảng 60.000 token ở mọi setup. Câu trace tốn khoảng 190.000 token ở mọi setup. Tài liệu của Anthropic cũng nói điều tương tự: gọi đúng tên function hay file bạn muốn, và Claude sẽ mở ít file hơn.

![The verdict: /init once, keep it short; Skip the graph for tokens; Graphify so với plain +7,5% token mỗi câu hỏi](https://homus.dev/photos/R8r5Or0Xajg-0823.jpg)

Slide kết luận theo số đo của kênh (video đăng ngày 17/10/2026): "/init once, keep it short" (43 dòng, khoảng 1K token mỗi session), "Skip the graph for tokens" (không tiết kiệm được gì, chạy chậm hơn), và Graphify so với plain là +7,5% token mỗi câu hỏi, 124.338 so với 115.665.

Lời khuyên của kênh (video đăng ngày 17/10/2026): chạy `/init` một lần và giữ file đó ngắn. Bỏ qua code graph nếu mục tiêu là tiết kiệm token: trên repo này, nó không tiết kiệm được gì và chạy chậm hơn. Hãy dùng tới một code graph khi việc tìm kiếm cứ liên tục trượt trên một codebase lớn hơn repo này rất nhiều. Và bỏ qua mọi con số phần trăm token không nói rõ nó được đo so với cái gì.

Video khép lại bằng một câu hỏi cho người xem: code graph, hay tìm kiếm thường với một CLAUDE.md ngắn, cái nào đang chạy trong repo của bạn?

## Nguồn và liên kết

- Tên gốc: I Tested 27 Claude Code Runs: Does Graphify Actually Save Tokens?
- Sự kiện: [YouTube](https://homus.dev/events/youtube)
- Video gốc: [https://www.youtube.com/watch?v=R8r5Or0Xajg](https://www.youtube.com/watch?v=R8r5Or0Xajg)

- Kênh YouTube DIY Smart Code (DIY Smart Code): [youtube.com/channel/UC_a85mUHqsy5j0CYCgLnkEQ](https://www.youtube.com/channel/UC_a85mUHqsy5j0CYCgLnkEQ)

- Repo dùng để test, Textual (video dùng commit 5e5b7ef): [github.com/Textualize/textual](https://github.com/Textualize/textual)

- Graphify, repo và README (đọc ngày 22/10/2026): [github.com/Graphify-Labs/graphify](https://github.com/Graphify-Labs/graphify)

- Graphify BENCHMARKS.md, có bảng ERPNext cross-tool (đọc ngày 22/10/2026): [github.com/Graphify-Labs/graphify/blob/v8/BENCHMARKS.md](https://github.com/Graphify-Labs/graphify/blob/v8/BENCHMARKS.md)

- Anthropic, How Claude Code works in large codebases: [claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start](https://claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start)

- Tài liệu Claude Code về memory, CLAUDE.md và auto memory: [code.claude.com/docs/en/memory](https://code.claude.com/docs/en/memory)

- Tài liệu Claude Code về prompt caching: [code.claude.com/docs/en/prompt-caching](https://code.claude.com/docs/en/prompt-caching)

- Tài liệu Claude Code, Manage costs effectively: [code.claude.com/docs/en/costs](https://code.claude.com/docs/en/costs)

- Tài liệu Claude Code về codebase lớn (MCP servers, code intelligence plugins): [code.claude.com/docs/en/large-codebases](https://code.claude.com/docs/en/large-codebases)

- Bảng giá Claude API: [platform.claude.com/docs/en/about-claude/pricing](https://platform.claude.com/docs/en/about-claude/pricing)

- What is the Max plan (trang hỗ trợ của Anthropic): [support.claude.com/en/articles/11049741-what-is-the-max-plan](https://support.claude.com/en/articles/11049741-what-is-the-max-plan)

Nguồn: https://homus.dev/talks/i-tested-27-claude-code-runs-does-graphify-actually-save-tokens · cập nhật 2026-10-22
