ScreenTranslate - ứng dụng menu bar macOS on-device dịch ngay sau khi chụp màn hình (mã nguồn mở)
(github.com/hcmhcs)Xin chào, mình là một lập trình viên sinh viên!
Dạo gần đây mình bắt đầu quan tâm đến mảng AI agent, nên đã mổ xẻ các system prompt được đăng trên OpenClaw để học hỏi. Mình rất tò mò vì sao agent lại cho kết quả tốt hơn nhiều so với suy luận đơn thuần của LLM, và chúng được tạo thành từ những system prompt cũng như cấu trúc như thế nào. (Mình muốn xây dựng một AI agent phù hợp với hoàn cảnh của bản thân để tăng năng suất, haha) Nhưng trong vscode thì các system prompt trong code đều là tiếng Anh, tài liệu liên quan cũng đều là tiếng Anh, nên mỗi lần phải mở sẵn tab dịch, qua lại copy-paste để đọc thì ngữ cảnh cứ bị đứt quãng, rất khó tập trung. Với những trường hợp như ảnh hay PDF không thể copy text thì còn bức bối hơn nữa.
Trong lúc đó, khi nhìn vào ScreenHint mà mình vẫn hay dùng (ứng dụng ghim ảnh chụp lên màn hình), mình chợt nghĩ: "Chỉ cần dịch ngay vùng vừa chụp bằng UX này là được mà." Vì là sinh viên nên việc phải tốn tiền cho API dịch mỗi lần dùng cũng là một gánh nặng, nên mình đặt mặc định là chạy on-device. May mắn là nhờ Claude Code nên mình đã có thể hiện thực hóa ý tưởng này rất nhanh, và đây cũng là dự án mã nguồn mở đầu tiên mình làm ra theo cách đó.
ScreenTranslate — là ứng dụng macOS mà khi chụp màn hình thì OCR → dịch sẽ diễn ra ngay lập tức. Ứng dụng chạy thường trú trên menu bar và có thể dùng ngay bằng phím tắt.
Có hai tính năng chính:
- Dịch từ ảnh chụp màn hình — phím tắt → kéo chọn vùng → nhận diện bằng OCR rồi hiện popup bản dịch
- Dịch văn bản — chọn văn bản → phím tắt → dịch ngay (không cần OCR)
Miễn phí và mã nguồn mở (GPL v3). Ứng dụng hoạt động on-device nên hoàn toàn không có dữ liệu dịch nào được gửi lên server.
Đặc điểm:
- Dựa trên Apple Vision OCR + Apple Translation, hoạt động không cần Internet
- Cảm nhận thực tế nhanh hơn khá nhiều so với ứng dụng DeepL mặc định. Từ lúc chụp đến khi hiện popup bản dịch chỉ khoảng 1 giây
- Nếu cần engine đám mây thì có thể dùng DeepL, Google Cloud, Azure theo kiểu BYOK (tự nhập API key)
- Lưu lịch sử dịch, tự động sao chép vào clipboard
- Hỗ trợ 20 ngôn ngữ
Stack công nghệ:
- macOS 15+ / Swift 6 / SwiftUI / SwiftData
- Luồng xử lý nội bộ: Vision(VNRecognizeTextRequest) → tiền xử lý xuống dòng → Translation or API → popup
- Không có phụ thuộc bên ngoài. Chỉ dùng framework native của Apple (yêu cầu: macos 15+ trở lên - hỗ trợ cả Apple Silicon/Intel)
GitHub: https://github.com/hcmhcs/screenTranslate
Video demo: https://www.youtube.com/watch?v=ItYNAyue7eo
Tải xuống: nhận file DMG từ GitHub Releases hoặc tự build trực tiếp (xem README.md)
Ban đầu mình chỉ làm nhẹ nhàng để tự dùng một mình nên cũng hơi ngại, nhưng theo mình thì sản phẩm ra khá ổn, nên mình cũng lần đầu ra mắt trên Product Hunt, đón người dùng thực tế, nhận phản hồi và đang tiếp tục cập nhật theo quá trình đó!
Vì đây là dự án mã nguồn mở solo đầu tiên của mình nên chắc chắn còn nhiều chỗ thiếu sót, rất mong nhận được feedback hoặc PR từ mọi người :)
2 bình luận
Tôi đang dùng nó rất hiệu quả!
Cảm ơn bạn vì bình luận ấm áp! Mình cũng đang liên tục chỉnh sửa chỗ này chỗ kia để cải thiện tính tiện dụng trong thời gian gần đây, nên nghe bạn nói đang dùng tốt thực sự là nguồn động lực rất lớn với mình. Haha. Nếu trong lúc dùng có điểm gì bất tiện, cứ thoải mái nói với mình bất cứ lúc nào nhé :)