Hướng dẫn
Phân tích mã hoàn toàn cục bộ: cách hoạt động và những gì rời khỏi máy bạn
Cách một công cụ trình duyệt parse cả kho mã mà không tải lên bất cứ thứ gì — File System Access API, WebAssembly trong tab — và danh sách đầy đủ mọi yêu cầu mạng mà công cụ thực hiện.
Mã của bạn không bao giờ rời khỏi tab
Khi bạn chọn một thư mục, trình duyệt cấp cho trang quyền đọc những tệp đó — File System Access API trên Chromium, input thư mục cổ điển ở mọi nơi khác. Các byte được đọc vào bộ nhớ của tab. Trình parse là WebAssembly biên dịch từ tree-sitter, chạy trên CPU của bạn. Không có endpoint tải lên; mã của bạn không có chỗ nào để đi.
Điều này kiểm chứng được, không phải khẩu hiệu: mở DevTools → Network, lọc các yêu cầu không tới miền này, rồi dùng công cụ. Danh sách vẫn trống. Content-Security-Policy của trang cưỡng chế điều đó ở cấp trình duyệt — không origin bên thứ ba nào được phép, nên kể cả mã trang bị xâm nhập cũng không có nơi nào để gửi kết quả làm việc của bạn.
Mọi yêu cầu mạng mà ứng dụng thực hiện
Danh sách đầy đủ. Mọi thứ khác diễn ra ngoại tuyến, trong tab của bạn:
- HTML, script, style và icon của chính ứng dụng — từ miền này.
- Tệp ngữ pháp tree-sitter (.wasm), mỗi gói ngôn ngữ bạn bật một tệp — từ miền này, được cache một năm.
- /config.json — các công tắc runtime (bản sao giới hạn tần suất, cờ tính năng) — từ miền này.
- /api/abuse — bộ đếm sử dụng hợp lý: số lượt phân tích và tối đa tám tên ngôn ngữ. Không bao gồm đường dẫn, ký hiệu, truy vấn hay nội dung; máy chủ không ghi log thân yêu cầu.
- /api/session — chỉ khi bạn bấm "Tiếp tục trên thiết bị khác": một snapshot chỉ-cấu-trúc, mã hóa AES-256-GCM, với khóa giải mã nằm trong fragment của URL, không bao giờ tới bất kỳ máy chủ nào.
"Chỉ cấu trúc" nghĩa là gì với đồng bộ phiên
Tính năng chuyển phiên tồn tại vì người ta đổi máy giữa chừng. Thứ được chuyển là báo cáo phân tích — đường dẫn tệp, tên ký hiệu, dải dòng, cạnh phụ thuộc, cài đặt, thống kê tổng hợp. Thứ không bao giờ được chuyển: nội dung tệp. Định dạng snapshot được định nghĩa bởi sự vắng mặt đó; không phải một chính sách được gắn thêm về sau.
Báo cáo được nén, mã hóa ngay trên thiết bị của bạn bằng khóa 256-bit ngẫu nhiên, và lưu trên máy chủ như một blob mờ đục dưới một id 128-bit ngẫu nhiên, tự hủy sau 14 ngày. Khóa chỉ tồn tại trong fragment của URL mà bạn sao chép: fragment không được gửi tới máy chủ, không xuất hiện trong log, và ứng dụng xóa fragment khỏi thanh địa chỉ ngay khi thiết bị nhận tiêu thụ nó.
Kiến trúc này không hứa hẹn điều gì
Mọi kiến trúc trung thực đều có những mép nối. Địa chỉ IP của bạn được xử lý tại edge của Cloudflare, vì đó là cách mọi trang đứng sau Cloudflare vận hành, và vì bộ đếm sử dụng hợp lý được khóa theo hash của nó. Việc tải tệp ngữ pháp cho CDN biết những gói ngôn ngữ nào được lấy, ở dạng tổng hợp. Cả hai sự thật đều được công bố trong Chính sách bảo mật, kèm cơ sở pháp lý.
Và một khi bạn xuất bundle, nó là của bạn: dán nó vào một nhà cung cấp AI là đặt nó dưới các điều khoản của nhà cung cấp đó — họ có thể lưu giữ hoặc huấn luyện trên những gì bạn gửi. Công cụ cố gắng làm cho ranh giới đó hiển thị được, vì điều duy nhất tệ hơn một ranh giới riêng tư là một ranh giới bạn không nhìn thấy.