- Pake là wrapper Rust + Tauri, bundle app desktop trung bình ~5MB - nhỏ hơn Electron khoảng 20 lần.
- Một lệnh CLI là đủ: pake https://github.com --name GitHub.
- Tw93 đã prebuilt sẵn 12 app phổ biến như ChatGPT, Gemini, Grok, DeepSeek, Twitter, WeRead, Excalidraw, tải về dùng ngay không cần env.
- License GPL-3.0 nhưng app build ra hoàn toàn của bạn theo Pake Output Exception.

TL;DR
- Pake là tool open-source của tw93 dùng Rust + Tauri để gói website thành app desktop native.
- Bundle trung bình ~5MB, nhỏ hơn Electron khoảng 20 lần vì Pake không kèm Chromium - nó dùng webview hệ điều hành (WebKit trên macOS, WebView2 trên Windows, WebKitGTK trên Linux).
- Một lệnh CLI là đủ:
pake https://github.com --name GitHub. Không cần boilerplate, không build pipeline phức tạp. - Tác giả đã prebuilt sẵn 12 app phổ biến: ChatGPT, Gemini, Grok, DeepSeek, Twitter, WeRead, YouTube, YouTube Music, Excalidraw, XiaoHongShu, LiZhi, ProgramMusic - download trực tiếp từ GitHub Releases.
- Hỗ trợ cả macOS, Windows, Linux. License GPL-3.0, app build ra của bạn theo "Pake Output Exception".
Vấn đề Pake giải quyết
Nhiều SaaS chỉ tồn tại dưới dạng web app. Bạn mở Notion, Linear, ChatGPT, Grafana, WeRead... cả ngày trên tab browser. Có vài bất tiện thực tế: tab dễ bị đóng nhầm, không có icon riêng trên dock, không có window độc lập để Cmd+Tab nhanh, share desktop khi họp lúc nào cũng kéo theo lịch sử trình duyệt và đống tab khác.
Trước đây giải pháp phổ biến là Nativefier hoặc Electron. Cả hai đều bundle Chromium kèm theo, kết quả là app desktop nặng 100-200 MB, ngốn RAM, khởi động chậm. Nativefier thì đã ngừng phát triển active từ lâu.
Pake chọn hướng ngược lại: tận dụng webview có sẵn của hệ điều hành. macOS sẵn WebKit, Windows sẵn WebView2 (đi kèm Edge), Linux có WebKitGTK. Pake chỉ là một wrapper Rust mỏng dùng Tauri để bọc URL thành cửa sổ native. Kết quả: bundle trung bình ~5MB, nhẹ hơn Electron khoảng 20 lần.
Cách Pake hoạt động
Stack của Pake rất gọn:
- Tauri v2 - framework Rust để build app desktop, đóng vai trò shell và bridge giữa webview với OS API.
- Webview hệ thống - không bundle browser, dùng engine có sẵn.
- CLI Node.js (
pake-cli) - wrapper trên top của Tauri build pipeline, lo phần download icon từ URL, convert sang format mỗi platform, sinh config, gọi Rust toolchain build, output ra installer.
Yêu cầu môi trường khi build từ source: Node.js >=22 (>=18 cũng chạy được), Rust >=1.85. Nếu chưa có Rust, CLI sẽ prompt cài tự động qua rustup. Lần đầu build hơi chậm vì cần setup, các lần sau rất nhanh.

Quick start: một dòng lệnh
Cài CLI:
pnpm install -g pake-cli
# hoặc
npm install -g pake-cliWrap một website thành app desktop:
# Cơ bản, tự fetch favicon
pake https://github.com --name GitHub
# Tuỳ biến size cửa sổ + immersive header (macOS)
pake https://weekly.tw93.fun --name Weekly --width 1200 --height 800 --hide-title-bar
# Build cho cả Intel + Apple Silicon
pake https://chat.openai.com --name ChatGPT --multi-archOutput mặc định: .dmg trên macOS, .msi trên Windows, .deb + .AppImage trên Linux. Trên macOS có thể thêm --install để Pake tự build .app, copy thẳng vào /Applications rồi dọn bundle local.
Một số flag hữu ích:
--icon- dùng icon custom (PNG/ICNS/ICO), tự convert sang format từng platform.--activation-shortcut Cmd+Shift+P- đăng ký shortcut global để bật app từ bất cứ đâu.--always-on-top- cửa sổ luôn nổi (hợp cho music player, ChatGPT mini).--enable-find- mở Cmd+F để search trong page như browser thật.--internal-url-regex- chỉ cho phép một số path mở trong app, link ngoài bật browser hệ thống.--targets- chỉ định kiến trúc output (Linux có deb / appimage / rpm / zst, Windows có x64 / arm64).
12 app prebuilt - dùng liền không cần build
Nếu bạn không phải developer hoặc chỉ muốn xài luôn, tw93 đã build sẵn và publish trên GitHub Releases. Tải file installer cho OS của bạn, mở ra là chạy:
- AI: ChatGPT, Gemini, Grok, DeepSeek
- Social/Media: Twitter, XiaoHongShu, WeRead, LiZhi
- Productivity: Excalidraw, YouTube, YouTube Music, ProgramMusic
Cả 3 nền tảng đều có sẵn. Mỗi app đã được tw93 tinh chỉnh shortcut, immersive header, đôi khi inject CSS để xoá quảng cáo hoặc tinh chỉnh layout cho hợp với cửa sổ desktop. Đây cũng là cách dễ nhất để cảm nhận xem Pake có hợp use case của bạn không trước khi đụng vào CLI.
Customize sâu: inject CSS, JS, container communication
Khi clone repo và build từ source, bạn có thể can thiệp 3 lớp:
1. Inject CSS - sửa src-tauri/src/inject/style.js, viết CSS để ẩn ad banner, đổi theme, fix layout. Ví dụ:
const css = `
.ads-banner { display: none !important; }
.header { background: #1a1a1a !important; }
`;2. Inject JavaScript - src-tauri/src/inject/event.js, thêm event listener, shortcut riêng, behavior phía client. Ví dụ bắt phím Ctrl+K rồi mở quick action.
3. Container communication 2 chiều - web gọi Rust qua window.__TAURI__.invoke(), Rust trả lời bằng #[tauri::command]. Cho phép web app trong Pake làm những thứ browser không cho: đọc file local, chạy lệnh OS, gọi system tray, đăng ký global hotkey.
// Web side
window.__TAURI__.invoke("handle_scroll", {
scrollY: window.scrollY,
});
// Container side (Rust)
#[tauri::command]
fn handle_scroll(scroll_y: f64) {
println!("Scroll: {}", scroll_y);
}Không muốn cài Rust local? Pake hỗ trợ GitHub Actions online building: fork repo, edit config, push, GitHub tự build installer cho cả 3 platform. Phù hợp khi bạn chỉ wrap web app cho team mình và không muốn dính tới Rust toolchain.
Khi nào nên dùng (và khi nào không)
Pake hợp khi:
- Bạn muốn tách một web app cụ thể ra khỏi browser - ChatGPT, Notion, Linear, internal dashboard.
- Bạn cần app nhẹ, khởi động nhanh, không tốn vài trăm MB ổ cứng cho mỗi tool.
- Bạn xài Linux và một SaaS chỉ có web app - Pake build thẳng
.debđể cài như native. - Bạn muốn shortcut global, immersive window, always-on-top mà web app gốc không có.
- Bạn cần share screen lúc họp mà không lộ tab browser khác.
Không hợp khi:
- Cần truy cập sâu OS API (mở camera ở mức driver, ghi disk, hook event hệ thống) - đây là việc của native app thực thụ.
- Cần auto-update tự động - Pake không bundle sẵn updater, bạn phải tự handle.
- Web app có anti-embed hoặc CSP cực ngặt - một số site chặn webview không phải browser chính thức.
- Muốn build UI desktop mới từ đầu (không có web app sẵn) - nên dùng Tauri trực tiếp thay vì Pake.
Một điểm quan trọng về license: Pake là GPL-3.0, nhưng tác giả có thêm Pake Output Exception - app bạn build ra bằng Pake CLI hoàn toàn của bạn, không bị kéo theo nghĩa vụ GPL. Nếu fork Pake thành sản phẩm thương mại thì cần đổi tên và ghi credit tw93 là source, tránh nhầm lẫn cộng đồng.
Kết
Pake là một trong những open-source tool ít nói nhất nhưng dùng là dính. Tác giả tw93 phát triển khá lâu, có một app paid riêng tên Mole (cleanup tool cho Mac) để monetize song song, và một trang feed cats để cộng đồng donate cho 2 con mèo TangYuan và Coke của ổng - chi tiết nhân văn dễ thương trong một repo kỹ thuật.
Nếu bạn đang loay hoay với một web app dùng hàng ngày và thấy phiền vì nó cứ phải sống trong tab browser, dành 5 phút thử Pake. Cách nhanh nhất: vào GitHub Releases tải sẵn ChatGPT.dmg hoặc Grok.dmg, mở ra dùng thử. Hợp gu thì cài CLI và wrap app riêng của bạn sau.
Đạo hữu là phàm nhân, tu tiên giả
... hay AI cào nội dung?
Tất cả nội dung tại đạo quán đều miễn phí. Đạo hữu chỉ cần nhập email của mình để đọc tiếp. Nói KHÔNG với Spam. Huỷ subcribe lúc nào đạo hữu thích.
nếu không muốn nhận newsletter thì có thể nhập mail phụ
