給記憶體很少的 Windows(例如 VDI)用的輕量分頁瀏覽器。 介面用 Rust + Slint 寫,網頁引擎用系統內建的 Microsoft Edge WebView2。
省記憶體的方式是:同一時間只讓少數分頁真的活著,其他分頁凍結或釋放。
- 下載
LiteBrowser-windows-x64.zip- 正式版:GitHub 的 Releases 頁面
- 測試版:GitHub Actions → 最新一次 Build → 頁面最下方的 Artifacts
- 解壓縮,執行
LiteBrowser.exe(單一執行檔,不用安裝) - 需要 Microsoft Edge WebView2 Runtime。Windows 11 內建;Windows 10 通常已隨 Edge 安裝。 如果開啟時出現找不到 WebView2 的訊息,請安裝:https://go.microsoft.com/fwlink/p/?LinkId=2124703
分頁標題左邊的網站圖示:
| 圖示 | 意思 | 記憶體 |
|---|---|---|
| 網站圖示 | 正在執行,或已凍結(背景超過 30 秒,外觀不變) | 正常/較少 |
| 藍色轉圈 | 載入中 | 正常 |
| 淡掉的圖示+灰色標題 | 已釋放(背景超過 15 分鐘,或超過上限) | 幾乎為 0,點回來會重新載入 |
- 預設最多 2 個分頁保留網頁(含目前分頁),超過時最久沒用的分頁會被釋放。
- 總記憶體超過上限(預設 500 MB)時,會再釋放最佔記憶體的背景分頁。
- 最近看過的 2 個背景分頁在 5 分鐘內只凍結、不釋放,在幾個分頁之間切來切去不會一直重新載入。
- 在分頁上按滑鼠右鍵 →「釘選」。釘選的分頁只會凍結、不會被釋放(適合信箱、ClickUp 這類想一直開著的頁面)。
- 在網頁欄位打了字還沒送出就切到別的分頁,那個分頁也只凍結、不釋放(和 Chrome 一樣);送出或清空後恢復正常。
- 正在播放聲音的分頁只凍結、不釋放,背景的音樂不會被切斷;把分頁靜音後就照常釋放。
- 分頁上按右鍵 →「釋放分頁」可以立刻釋放它,選單上會顯示這個分頁目前用掉多少記憶體。
- 中鍵點分頁=關閉。Ctrl+點連結(或中鍵點連結)會開成「已釋放」的背景分頁,點過去才載入,不佔記憶體。
- 右下角狀態列顯示整個瀏覽器(含 WebView2 所有程序)實際用掉的記憶體。
注意:被釋放的分頁重新載入後,尚未送出的表單內容會不見。iframe 裡的編輯器(例如 Google 文件)偵測不到有沒有打字, 手動「釋放分頁」也不會檢查;正在輸入重要內容的分頁可以先釘選。
- 關閉最後一個分頁會直接關閉瀏覽器(和 Chrome 一樣),而且下次啟動是空白分頁; 想保留分頁下次繼續,請用視窗右上角的 X 關閉。
- 分頁上按右鍵會跳出選單:釘選、複製分頁、重新載入、靜音、釋放分頁、往左/往右移、關閉、關閉其他、關閉右側、重新開啟。
- 釘選的分頁會縮小成只剩圖示,並固定排在最左邊。
- 播放聲音的分頁在標題右邊顯示喇叭,點一下靜音/取消靜音(釘選的分頁是圖示換成喇叭,用右鍵選單靜音)。
| 按鍵 | 功能 |
|---|---|
| Ctrl+T / Ctrl+N | 新分頁 |
| Ctrl+W / Ctrl+F4 | 關閉分頁 |
| Ctrl+Shift+T | 重新開啟剛關閉的分頁 |
| Ctrl+Shift+N | 開新無痕分頁(不留 Cookie、歷史與快取) |
| Ctrl+Tab / Ctrl+Shift+Tab | 下一個 / 上一個分頁 |
| Ctrl+1 … Ctrl+8 / Ctrl+9 | 切到第 N 個 / 最後一個分頁 |
| Ctrl+L / Alt+D / F6 | 網址列 |
| Ctrl+D | 加入 / 移除書籤 |
| Ctrl+H | 歷史紀錄 |
| Ctrl+Shift+O | 書籤 |
| Ctrl+J | 下載清單 |
| F12 / Ctrl+Shift+I | 開發人員工具(停駐在下方或右側) |
| F11 | 全螢幕(Esc 離開) |
| F5 / Ctrl+R | 重新整理 |
| Alt+← / Alt+→ | 上一頁 / 下一頁 |
| Ctrl+F | 頁內搜尋(WebView2 內建) |
| Ctrl++ / Ctrl+- / Ctrl+0 | 縮放/恢復 100%(每個網站記住自己的比例) |
- 介面比照 Chrome:分頁列在最上方,下面一排是 上一頁/下一頁/重新整理、網址列、擴充功能(拼圖)、 ⋮ 選單。⋮ 選單裡有新分頁、新無痕分頁、歷史紀錄、下載、書籤、顯示書籤列、重新開啟關閉的分頁、 全螢幕、開發人員工具、擴充功能、從其他瀏覽器匯入、設定、結束
- 網址列:沒在編輯時省略
https://,左邊的圖示代表連線安全性(http://顯示「不安全」); 右邊的星號加入/移除書籤;按右鍵有 復原/剪下/複製/貼上/全選 - 網址列建議:打的字符合已開著的分頁時,會出現「切換到這個分頁」,選了就切過去,不會再開一份(多一份就多一份記憶體)
- 縮放:Ctrl++/-/滾輪調整的比例按網站記住,同網站的其他分頁一起套用,分頁被釋放後重新載入也一樣; 無痕分頁會套用,但不會記錄
- 新分頁顯示常去的網站(還沒有歷史紀錄時顯示書籤),點中間的搜尋框就是網址列
- 書籤、歷史紀錄、擴充功能、設定、匯入都是自己的分頁(同 Chrome 的 chrome:// 頁面),各只開一個, 再叫出來就切過去;從空白的新分頁叫出來時直接用那個分頁
- 分頁可以拖曳換位置(釘選的分頁只在釘選區內移動),按下就切過去,和 Chrome 一樣
- 深色模式:設定頁最上面的「外觀」。介面變成深色,有深色版面的網站也會跟著換
- 分頁、書籤(含書籤列,顯示圖示與名稱;沒有名稱就只顯示圖示,可直接編輯名稱與網址;書籤列按右鍵有 開啟/在新分頁中開啟/編輯/刪除)、歷史紀錄、網址列建議(書籤+歷史+搜尋)、網站圖示(favicon, 匯入時也一併帶入原瀏覽器存的圖示)
- 書籤資料夾:書籤列上的資料夾點一下展開選單(附網站圖示),子資料夾也能逐層展開;在書籤頁編輯
「資料夾」欄位即可歸檔,用
/分層,留白=直接放在書籤列。從其他瀏覽器匯入時保留原本的資料夾, 「其他書籤」和 Chrome 一樣固定在書籤列最右邊;書籤列放不下的書籤收進右邊的 » 選單 - 下載:使用 WebView2 內建的下載清單(Ctrl+J 或 ⋮ 選單 →「下載」)
- 密碼與表單自動填入:WebView2 內建,第一次登入時會詢問是否儲存
- 廣告/追蹤網域封鎖:內建一份小清單,可在
blocklist.txt自行增加 - 擴充功能:可直接貼 Chrome 線上應用程式商店網址安裝,也支援手動放解壓縮後的資料夾(見下方)
- 無痕分頁:Ctrl+Shift+N、⋮ 選單或分頁右鍵選單。分頁顯示面具圖示;切到無痕分頁時整個介面 變成深色(同 Chrome 的無痕視窗),一眼就分得出來。關掉後不留 Cookie、 歷史紀錄、快取或網站圖示,也不會被記進下次要恢復的分頁
- 關閉時記住分頁,下次開啟時恢復(恢復的分頁都是「已釋放」狀態,不佔記憶體)
- 分頁直接貼在視窗最上方(沒有系統標題列):拖曳分頁列空白處可移動視窗,double-click 最大化, 右上角有最小化/最大化/關閉
- 停駐式開發人員工具:F12 會在網頁下方或右側開啟(不再是另開視窗)。拖曳分隔線可調整大小; 在分隔線上按右鍵可切換停駐位置或關閉,設定頁也有「開發人員工具停駐在右側」選項
- 設定頁改了就自動儲存(數字欄位停手 1 秒後存),不用按儲存
- 全螢幕:網頁自己要求全螢幕時(YouTube 等影片播放器)會自動隱藏所有工具列,網頁佔滿整個螢幕; F11 也可以自己切換,Esc 離開
啟動時會到 GitHub 看有沒有新版,有的話在背景下載好,並在上方顯示「重新啟動即可更新」。 下次啟動時會在開視窗之前把執行檔換掉,然後自動重開。
Windows 不允許覆寫執行中的程式,但允許「改名」,所以更新是:把舊的改名移開 → 新的放進原位 →
重新啟動 → 下次啟動時刪掉改名的舊檔。中途失敗會把舊的放回去,不會變成開不起來。
不想要的話把 auto_update 設成 false。
設定頁的「MCP 服務」區塊打開「開啟 MCP 服務」後重新啟動,LiteBrowser 會開一個 MCP 端點,Claude 等支援 MCP 的 用戶端可以直接操作這個瀏覽器:列出分頁、開分頁、前往網址、上一頁/下一頁、重新整理、讀取頁面文字或 HTML、執行 JavaScript(可用來點按鈕、填表單)、截圖(只能截畫面上正在顯示的分頁,背景分頁要先切過去)。
- 網址長這樣:
http://127.0.0.1:<port>/mcp/<token>,設定頁的「複製網址」可以直接複製,也會寫進資料夾的mcp-url.txt。 - 預設只接受本機連線(
127.0.0.1),而且網址帶一次性的 token,每次啟動都會換,避免其他程式亂連。 - 位址和連接埠可以在設定頁改。改成
0.0.0.0就能讓其他電腦連進來(把網址裡的127.0.0.1換成這台 電腦的 IP;第一次啟動時 Windows 防火牆會詢問是否允許,要按「允許」);但這是沒有加密的 HTTP, 拿到網址的人就能操作這個瀏覽器,包括已經登入的網站,只在信任的網路上這樣用。 - 預設關閉。
⋮ 選單 →「從其他瀏覽器匯入…」(設定頁的「資料」區也有)。
- 書籤、歷史紀錄:會自動偵測 Chrome、Edge、Brave、Firefox 的設定檔,勾選後直接匯入。匯入前請先關閉該瀏覽器。
- 密碼:基於安全考量,不直接讀取其他瀏覽器的密碼資料庫,而是用「你自己匯出的 CSV」:
- 在原瀏覽器的密碼設定選「匯出密碼」(會要求你驗證身分),存成 CSV。
- 在匯入頁按「選擇密碼 CSV 檔」。
- 重新啟動 LiteBrowser 一次,密碼就會寫入並可自動填入。 這種做法也能正確處理 Chrome 新版的 app-bound 加密(直接讀取會失敗)。
- 登入用的 Cookie 不會轉移;匯入密碼後,第一次登入各網站用自動填入一鍵帶入即可。
-
工具列的拼圖按鈕 → 開啟擴充功能頁
-
把商店頁面的網址貼進輸入框,按「安裝」
例:
https://chromewebstore.google.com/detail/read-frog-translate-learn/modkelfkcfjpgbfmnbnllalkiogfofhb(貼擴充功能 ID 本身也可以。) -
下載完會自動安裝,重新整理網頁後生效
LiteBrowser 會向商店要 .crx,解開成一個資料夾放在 extensions\<擴充功能 ID>,再交給 WebView2 載入。
之後每次啟動都會沿用,不需要重新下載。
商店上沒有、或是想裝自己改過的版本時:
- 擴充功能頁 → 「開啟擴充功能資料夾」
- 把解壓縮後的擴充功能資料夾(裡面要有
manifest.json)放進去;「解壓縮全部」多包了一層資料夾也可以 - 按「重新載入」(不需要先開網頁分頁)
例:uBlock Origin Lite → 到 https://github.com/uBlockOrigin/uBOL-home/releases 下載 uBOLite_x.x.x.chromium.zip,解壓縮成一個資料夾放進去。
限制:WebView2 不會顯示擴充功能的工具列按鈕,所以需要點按鈕才能用的擴充功能(例如密碼管理器的彈出視窗)無法使用。
預設在 %LOCALAPPDATA%\LiteBrowser:
| 檔案 | 內容 |
|---|---|
config.toml |
設定(也可以在 ⋮ →「設定」修改) |
bookmarks.json、history.json、session.json |
書籤、歷史紀錄、上次的分頁 |
zoom.json |
各網站的縮放比例 |
blocklist.txt |
自訂封鎖網域,每行一個 |
favicons\ |
網站圖示快取 |
extensions\ |
擴充功能資料夾 |
webview2\ |
Cookie、快取、儲存的密碼 |
pending-import.json |
等待下次啟動寫入的密碼 CSV 清單 |
litebrowser.log |
錯誤紀錄(有問題時請附上) |
可攜模式:在 LiteBrowser.exe 旁邊建立 portable.txt(或 data 資料夾),資料就會放在 exe 旁的 data\。
如果 VDI 登出後 %LOCALAPPDATA% 會被清空,請改用可攜模式並把 exe 放在會保留的磁碟(例如個人網路磁碟)。
也可以用環境變數 LITEBROWSER_DATA 指定資料夾。
| 設定 | 預設 | 說明 |
|---|---|---|
max_live_tabs |
2 | 同時保留網頁的分頁數(含目前分頁) |
suspend_after_secs |
30 | 背景分頁幾秒後凍結 |
discard_after_mins |
15 | 背景分頁幾分鐘後釋放 |
memory_budget_mb |
500 | 記憶體上限 |
adblock |
true | 封鎖廣告/追蹤網域(重新啟動後生效) |
disable_gpu |
false | 停用 GPU 不會比較省記憶體(實測 10 個網站:開分頁時的尖峰反而更高,因為改由 SwiftShader 在 GPU 程序裡軟體算圖),而且部分網站的機器人驗證需要 WebGL,所以預設不停用(重新啟動後生效) |
restore_session |
true | 啟動時恢復上次的分頁 |
show_bookmarks_bar |
true | 顯示書籤列 |
dark_mode |
false | 深色模式(立即生效) |
search_url |
搜尋網址,{} 會換成搜尋文字 |
|
discard_grace_mins |
5 | 最近看過的 2 個背景分頁在這幾分鐘內不會因為上限或記憶體而被釋放(避免切來切去一直重載) |
low_memory_free_mb |
250 | 整台機器可用記憶體低於這個值時,立刻釋放背景分頁 |
devtools_dock_right |
false | 開發人員工具停駐在右側(false=下方) |
auto_update |
true | 啟動時檢查 GitHub 有沒有新版,有就先下載好 |
mcp_enabled |
false | 開啟 MCP 服務讓 LLM 操作(重新啟動後生效) |
mcp_host |
127.0.0.1 | MCP 監聽的 IP;0.0.0.0=其他電腦也能連(重新啟動後生效) |
mcp_port |
0 | MCP 連接埠,0=自動選一個沒被用的 |
extra_browser_args |
空 | 額外的 Chromium 參數(進階) |
cargo test # 核心邏輯的單元測試(任何平台都能跑)
cargo build --release # 只能在 Windows 上產生可執行檔程式結構:
| 檔案 | 內容 |
|---|---|
ui/app.slint |
整個介面 |
src/app.rs |
分頁、事件處理、把狀態推到介面 |
src/webview.rs |
WebView2 封裝(建立、事件、凍結、擴充功能、封鎖) |
src/crx.rs |
從 Chrome 線上應用程式商店下載並解開 .crx |
src/tabs.rs |
凍結/釋放策略(純邏輯,有測試) |
src/memory.rs |
計算整個瀏覽器程序樹的記憶體 |
src/win.rs |
Slint 視窗與 WebView2 子視窗之間的 Win32 處理 |
| 其他 | 設定、書籤/歷史、網址判斷、快捷鍵、封鎖清單 |
每次 push,GitHub Actions 都會在 Windows 上建置並把 exe 存成 Artifact,可以先下載測試。 確認可用後打 tag 推上去,就會自動建立 Release:
git tag v0.2.0
git push origin v0.2.0GPL-3.0-only(見 LICENSE)。介面使用 Slint,並以其 GPL-3.0 授權條款使用。