11 điểm bởi hanityx 26 ngày trước | 5 bình luận | Chia sẻ qua WhatsApp

Xin chào. Trong lúc dùng cùng lúc nhiều công cụ AI, tôi gặp không ít điểm bất tiện nên đang làm một công cụ mã nguồn mở tên là ThreadLens để giải quyết những vấn đề đó.

Khởi đầu là từ việc sắp xếp các thread của Codex. Trong UI chỉ có thể archive, còn nếu muốn xóa hẳn thì phải tự tìm file cục bộ. Về sau tôi thấy trong openai/codex cũng có một yêu cầu tương tự kiểu như “cần delete chứ không chỉ archive”, nên tôi nghĩ đây không phải bất tiện chỉ mình tôi gặp phải.

Sau đó, khi luân phiên dùng nhiều AI như Codex và Claude, lại nảy sinh một vấn đề khác. Tôi thường xuyên phải tự hỏi “cuộc trò chuyện với AI hôm đó nằm ở đâu nhỉ?”, rồi phải lục các thư mục ẩn của từng công cụ hoặc dùng rg để tìm transcript. Log phiên cục bộ cũng cứ tích lại liên tục, nên việc dọn dung lượng và sao lưu ra ổ ngoài lần nào cũng phải tự lo, khá phiền.

Tôi muốn xử lý toàn bộ luồng việc này ở một nơi.

  • Tìm kiếm các phiên cục bộ của Codex, Claude, Gemini, Copilot tại một nơi
  • Xem transcript, đường dẫn làm việc, dung lượng file, thời gian chỉnh sửa của từng phiên trên cùng một màn hình
  • Sắp xếp sau khi thực hiện sao lưu theo lô và phân tích tác động (phân tích tác động hiện vẫn chủ yếu xoay quanh Codex)
  • Kiểm tra bằng routing/parser xem cấu trúc phiên của từng provider được đọc từ đâu và theo cách nào

Theo hướng Local-First nên không có tài khoản hay tải dữ liệu lên đám mây. Cấu trúc là đọc các file phiên đã có sẵn trên máy của bạn rồi hiển thị qua local API, web UI, ứng dụng desktop và TUI.

Trong quá trình làm, tôi cảm thấy chỉ có mỗi “nút xóa” thì chưa đủ hay. Đặc biệt với thread Codex, trước khi xóa tôi muốn biết trước “xóa cái này có ổn không?”. Vì vậy, phần phân tích tác động lấy các tín hiệu có thể tham khảo từ tài liệu phía OpenAI/Claude và từ các issue thực tế, còn trọng số điểm thì được đặt khá thận trọng trong sản phẩm.

Không chỉ xem context dài, lịch sử dùng tool dày đặc, có hay không có cwd, hay các phiên cũ, công cụ còn kiểm tra xem phiên khác có đang tham chiếu trực tiếp tới thread này theo quan hệ cha/con/fork hay không, hoặc có nhắc tới nó trong log hay không. Nhờ đó, trước khi xóa bạn có thể kiểm tra trước nó có phải ứng viên mồ côi hay không, có đang nối với phiên khác hay không, và liệu có vẻ an toàn để xóa hay không.

Hiện tại tôi đã đăng bản macOS DMG, Windows exe, Linux AppImage, và cũng có thể chạy từ mã nguồn.
Bản desktop hiện vẫn chưa được ký nên hệ điều hành có thể hiện cảnh báo. Logic khám phá theo từng provider và UX tổng thể vẫn đang tiếp tục được cải thiện.

Mọi phản hồi hay ủng hộ đóng góp đều rất được chào đón!! Nếu bạn đang dùng định dạng phiên AI cục bộ khác thì cũng hãy cho tôi biết. Điều đó có thể giúp ích trong việc xác định ưu tiên :)

GitHub: https://github.com/hanityx/threadlens

5 bình luận

 
minhoryang 26 ngày trước

Tuyệt vời! Đây đúng là thứ tôi đang thực sự cần lúc này!!

 

Cả phần bình luận nữa... chính tôi mới là người cảm ơn nhiều hơn! Trên UI cũng hỗ trợ tiếng Hàn, đây là hệ thống đa ngôn ngữ dựa trên i18n. Từ nay về sau tôi sẽ càng chăm chỉ mài giũa nó hơn nữa!

 
minhoryang 25 ngày trước

@hanityx bạn có thể làm một hướng dẫn về cách thêm provider khác được không? (mình muốn thử thêm opencode hoặc cái khác) Thông tin trong docs/PROVIDER_SUPPORT.md là bạn tự tổng hợp trực tiếp à? Có cần phải thêm trực tiếp vào apps/api-ts/src/domains/providers/matrix.ts không? Nếu tách interface ra thì có vẻ sẽ tiện hơn một chút.

 

Cấu trúc không phải là chỉ cần thêm matrix.ts là có thể gắn provider mới; còn phải đồng bộ cả danh sách provider, tính an toàn của đường dẫn, việc tìm session, xử lý transcript/search, actions, health, test và sinh tài liệu.

docs/PROVIDER_SUPPORT.md không phải là tài liệu chỉnh sửa trực tiếp, mà được tự động tạo dựa trên provider registry của shared contracts và script sinh tài liệu. Mục đích là để phạm vi hỗ trợ theo từng provider không bị lệch với logic thực tế.

Vốn dĩ phần logic search/transcript ở phía API cũng đã khá lớn nên tôi đang xem việc tách/整理 lại; lần này tôi sẽ sắp xếp cả adapter nội bộ và hướng dẫn để việc thêm provider trở nên dễ hơn, đồng thời với OpenCode cũng sẽ xem xét trước việc hỗ trợ read-only một cách an toàn. Nếu bạn để lại đường dẫn session cục bộ, mẫu và thông tin liên quan dưới dạng issue, tôi sẽ tiếp tục xem thêm!

 
minhoryang 24 ngày trước

Chỉ cần tách riêng ra, tôi sẽ thử đưa opencode lên theo CONTRIBUTING.md và hướng dẫn.