TECHDEV · Công cụ open-source

jsonfold

Dán một API response 40 KB vào chat và phần lớn token tiêu tốn chỉ vì tên key lặp lại trên mọi object: stargazers_count, stargazers_count, stargazers_count… jsonfold đổi tên các key dài thành $0, $1, … — xếp theo số byte tiết kiệm được, key tốn kém nhất nhận alias ngắn nhất — và giữ nguyên mọi thứ khác. Output vẫn là JSON hợp lệ, dễ đọc. Một file map ghi nhớ cách đổi tên, và lệnh unfold khôi phục bản gốc byte-chính-xác.

Node.js 18+ · Không phụ thuộc thư viện · MIT

Biên nhận, mỗi lần chạy

Mỗi lần chạy fold đều tự kiểm tra khứ hồi nội bộ (fold → unfold → deep-equal) trước khi ghi file, và in một biên nhận ra stderr:

jsonfold receipt
  original:  3,760 bytes
  folded:    2,940 bytes
  saved:     820 bytes (21.8%)
  est. tokens saved: ~205 (~4 chars/token heuristic)
  keys aliased: 27 (of 29 unique, 133 occurrences)
  alias prefix: "$"
  round-trip: OK (fold→unfold→deep-equal)

Đó là số liệu thật từ bản demo đi kèm (examples/repo-list.json, một payload repo-list 3,8 KB hư cấu, được ship ở dạng minified — nên 21,8% là tiết kiệm thuần từ gập key, không có mánh minify whitespace).

Định dạng biên nhận sao chép đúng từ README của jsonfold (mục "What jsonfold does").

Bắt đầu nhanh

# Không phụ thuộc thư viện. Cần Node >= 18.
git clone https://github.com/techdevfun/jsonfold.git
cd jsonfold
node bin/jsonfold.js --help

# 1. Gập. Ghi folded.json + folded.json.map, in biên nhận ra stderr.
node bin/jsonfold.js fold api.json -o folded.json

# 2. Dán folded.json vào prompt. Giữ file .map trên máy của bạn.

# 3. Mở gập output của model về key gốc.
node bin/jsonfold.js unfold folded.json --map folded.json.map -o restored.json

Dùng pipe cũng được — biên nhận đi ra stderr, không bao giờ ra stdout:

cat api.json | node bin/jsonfold.js fold > folded.json

Chưa chắc có đáng? Hỏi trước — stats cho thấy số byte, số key, top-10 key theo đóng góp byte, ước tính token, và mức tiết kiệm dự kiến, mà không ghi bất kỳ file nào:

node bin/jsonfold.js stats api.json
node bin/jsonfold.js stats api.json --json   # stats dạng JSON

# output có thụt dòng, biên nhận dạng máy đọc
node bin/jsonfold.js fold api.json --pretty -o folded.json
node bin/jsonfold.js fold api.json --receipt receipt.json

Lệnh sao chép đúng từ README của jsonfold (mục "Install" + "Usage in three steps"). Mã thoát: 0 thành công · 1 JSON không hợp lệ / không đọc-ghi được file / map hỏng / kiểm tra khứ hồi thất bại · 2 lỗi cách dùng.

Vấn đề $0, đã xử lý

Nếu JSON của bạn đã có key dạng $0, $1, … thì một trình gập ngây thơ sẽ gây mơ hồ khi mở gập. jsonfold phát hiện trường hợp này, tự chuyển tiền tố alias sang ứng viên an toàn đầu tiên (#, @, ~, §), và ghi lại lần chuyển trong file map. Khi unfold không cần thêm flag nào.

Từ README của jsonfold (mục "The $0 problem, handled").

So sánh trung thực

Công cụLàm được gìKhông làm được gì
jq -cMinify whitespace; ngôn ngữ truy vấn đầy đủ cho JSON.Không rút ngắn được key. Không ước tính tiết kiệm, không có biên nhận.
jsonpack (npm, MIT)Mã hoá từ điển các key và value lặp lại thành chỉ số base-36; output là một chuỗi ASCII phẳng cho URL / localStorage. Đảo ngược được bằng unpack.Output không phải JSON đọc được — bạn không thể soi hay sửa tay trong prompt. Không có biên nhận, không ước tính token. Sinh ra cho lưu trữ/vận chuyển, không phải cho prompt.
"AI compressor" / bộ tóm tắt gây mất dữ liệuViết lại hoặc bỏ nội dung để tiết kiệm token.Không đảo ngược được. Bạn không thể kiểm chứng nó đã đổi gì.
jsonfoldChỉ alias key; output vẫn là JSON hợp lệ, đọc được; đảo ngược qua file map; mỗi lần chạy in biên nhận kiểm chứng được và vượt kiểm tra khứ hồi nội bộ.Không động vào value, không dedupe chuỗi, không minify ngoài rút ngắn key. Số token là heuristic, không phải đo bằng tokenizer.

Ghi chú về prior-art từ README (2026-10-21): kiểm tra nhanh npm registry và web cho thấy tên jsonfold còn trống và không có CLI zero-dependency nào làm gập key đảo ngược được kèm biên nhận tiết kiệm in ra, có thể kiểm chứng. jsonpack là công cụ đảo ngược gần nhất, nhưng nó phục vụ việc khác (mã hoá vận chuyển mờ). Nếu bạn biết prior-art gần hơn, hãy mở issue trên repo.

Bảng so sánh sao chép từ README của jsonfold (mục "Honest comparison").

Giới hạn

Giới hạn từ chính các ghi chú của README jsonfold (mục "What jsonfold is not").

Roadmap — chưa ship

Nằm ngoài phạm vi theo thiết kế: chế độ gây mất dữ liệu, intern value, bất kỳ cuộc gọi mạng nào. Công cụ này đọc JSON và ghi JSON, không gì khác.

Roadmap sao chép từ README của jsonfold; chưa mục nào ship tính đến 2026-10-30.

Giấy phép

MIT — xem LICENSE trong repository.

Công cụ liên quan

Các công cụ mã nguồn mở khác của TECHDEV: sessguard, runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, ggufit, leaseguard, factfence

Đóng góp ý kiến

Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.