TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證常做的網頁查詢說一次就變成流程,之後由本機程式快速、可驗證地執行;給 Claude Code / Codex 用的 MCP 工具。Turn repeated web tasks into verified local flows for Claude Code / Codex.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗🌐 圖文說明網站:https://kav.kaiwu.com.tw
常做的網頁查詢,說一次就變成「流程」;之後一句話,本機約 6 秒跑完,結果由程式核對過。
叫 AI agent 幫你查高鐵,它會看截圖、點一下、再看截圖……每次都從頭摸索一遍:兩分鐘,將近百萬 token。 可是你每週查的都是同一個網站、同一張表,只是日期和站名不同。
Kav 的做法是:第一次由 Claude 看懂網頁、寫成一份「流程」,試跑給你確認;之後同樣的事直接在你的 Mac 上用專屬 Chrome 執行, 程式負責確認「真的查到了」;需要語意判斷(從列表挑哪一筆)時,簡單的題目可交給本機小模型 Kev(選配),其餘交回給 Claude。網站改版壞了,你只要說「結果不對」,Claude 會修好再回報。
同一句話「幫我查 10/12 下午三點以後台中到台北的高鐵班次」。上:Kav 流程;下:Claude in Chrome 一步步操作。2026-09-29 實測,兩邊答案都和官網一致。
你只要會說話,再判斷結果對不對。
| 你現在的痛點 | 用 Kav 之後 |
|---|---|
| 叫 agent 操作網頁很慢,每次都在看截圖、試錯 | 固定的網頁動作變成流程,本機直接跑。高鐵查詢約 22 秒 vs 116 秒(約 5 倍) |
| 一次網頁任務燒掉幾十萬到上百萬 token | 同一題輸入 token 17–27 萬 vs 77–128 萬(約 4 倍);抓資料不經過模型,判斷題只把抓好的文字交給模型 |
| agent 說「完成了」,其實頁面還沒載完、讀錯欄 | 「完成」由程式判斷:載入偵測、送出後讀回確認、每格附欄名、日期要是今天、價格回商品頁再核對一次 |
| 寫爬蟲要工程師,網站一改版就壞 | 流程是資料(JSON),不是程式;壞了 Claude 照固定方法修 |
| 擔心 agent 亂點:登入、付款、繞過驗證 | 這些禁止規則寫在本機程式裡,不交給模型判斷 |
| 適合 | 不適合 |
|---|---|
| 多步驟、會重複做的網頁動作:填表查詢(時刻表、包裹、查詢系統)、多站搜尋比對 | 只做一次的事、單純打開一頁看看(直接請 Claude 用 K-Browser 打開看就好;2026-09-29 用 Claude in Chrome 實測台銀匯率,兩邊都約 20 秒) |
| 固定網址讀資料,而且要確認是最新的(今天的匯率、公告) | 登入、付款、下單、解驗證碼(不做,這是設計) |
| 要登入才看得到的網站:裝了 K-Browser,流程就跑在你自己的 Chrome,用你本來的登入 | 擋自動化的網站(例:蝦皮)、遊戲、非網頁的桌面程式 |
高鐵時刻(填表查詢):「查 10/12 下午三點以後台中到台北的高鐵」→ 約 6 秒,Kev 呼叫 0 次。
台銀今天匯率(讀固定網頁、檢查是不是今天的):使用者一句「幫我做一個流程:查台灣銀行今天的美金跟日圓匯率」, Claude 從零寫出流程,第一次試跑就通過(約 36 秒)。使用者再說「加上檢查是不是今天的」,之後頁面上的掛牌日期不是今天,就會回報「還沒掛牌」,不會拿舊資料充數。
四家電商比價(搜尋 + 語意判斷):PChome / momo / Yahoo / 酷澎同時搜尋。「主機」和「主機 + 遊戲組合包」、配件、福利品的差別由本機 Kev 判斷。 Switch 2 一趟 5.6–7.8 秒,Kev 呼叫 18–31 次、約 6–11 千 token(全在本機)。最低價還會打開商品頁再核對一次。
.flightwake/records/261007-pick-judgment-experiment.md。2026-10-25 改成「兩個條件拆開各問一次、由程式取交集,最便宜由程式讀數字排序」之後,同一組題目唯一解答對 8/11,仍然零錯選,該停的 5 題全停(.flightwake/records/261025-kav-pick-stage0.md)。.flightwake/records/(260929-control-experiment-and-demo、260929-kev-usage-accounting)。needs_help 附原因和截圖。Kav 本身(Chrome + 本機程式)很輕,吃資源的是本機小模型 Kev。先看你要跑的流程需不需要 Kev:
| 你要跑的流程 | 需要 Kev 嗎 | 建議配備 |
|---|---|---|
| 填表查詢、讀固定網頁(高鐵、匯率) | 不需要 | 任何跑得動 Chrome 和 Claude Code 的 Mac |
| 比價、需要判斷「是不是同一個東西」 | 需要 | Apple Silicon(M1 以後)Mac,32GB 記憶體跑 Kev-4B |
| 模型 | 硬體(Kev 官方標示) | 準確率(Kev 官方評測,沒訓練過的題型) | 建議 |
|---|---|---|---|
| Kev-0.8B | 任何 Apple Silicon Mac | 0.648 | 16GB 的 Mac 可以試;Kav 還沒用它實測過 |
| Kev-4B | 32GB Mac | 0.817 | 預設,Kav 的實測都用它 |
| Kev-9B | 32GB Mac | 0.822 | 比 4B 準一點點、模型大一倍,一般不需要 |
| Kev-27B | 80GB 資料中心 GPU | 0.848 | 沒有 Mac 版本 |
換模型只要改啟動指令的 --run,例如 --run jaredpalmer/kev-0.8b,Kav 不用改設定。
我們的實測機器:Apple M5 Max、36GB 記憶體。Kev-4B 自動走 MLX(bf16),執行中約佔 4.5GB 記憶體;比價一趟 4 個網站並行,Kev 呼叫 18–31 次。
Claude 那端:我們的實測都用 Claude Opus 5.5。跑已經存好的流程很省(只要填參數);寫新流程和修流程比較吃模型能力,其他模型還沒測過。
/Applications/Google Chrome.app);裝在別的地方就設定 KFW_CHROME 指向它。Kav 目前只在 Mac 上測過。程式沒有綁死 macOS,但以下幾點一定要處理:
KFW_CHROME,例如註冊 MCP 時加上
-e KFW_CHROME="C:\Program Files\Google\Chrome\Application\chrome.exe"。%USERPROFILE%\.kav-fastweb\。k-browser model jev,見「登入區」)。KFW_KEV 只接受這台電腦上的位址(另一台電腦的 Kev、雲端網址都不會用),KFW_KEV_KEY 已經拿掉。需要:Google Chrome、uv、Claude Code;要讓流程用你自己 Chrome 的登入,另裝 K-Browser。Kev-4B 第一次要下載約 9GB。
請幫我安裝 Kav-FastwebAgent,每一步做完告訴我結果:
1. 把 https://github.com/kaiwutech-TW/Kav-FastwebAgent clone 到 ~/Kav-FastwebAgent,在裡面執行 uv sync。
2. 問我要不要裝 Kev(本機小模型,約 9GB,比價才需要)。要的話:
git clone https://github.com/jaredpalmer/kev ~/Kav-FastwebAgent/vendor/kev
然後在 vendor/kev 裡執行 uv sync --extra serve
3. 讓我在任何資料夾都能用:
- 用 claude mcp add --scope user kav-fastweb -- uv run --directory <~/Kav-FastwebAgent 的絕對路徑> python -m kfw.mcp_server 註冊 MCP
- 把 ~/Kav-FastwebAgent/.claude/skills/kav-fastweb 整個資料夾複製到 ~/.claude/skills/
- 如果這台是 Windows:註冊 MCP 時加上 -e KFW_CHROME="<chrome.exe 的完整路徑>"
4. 如果我裝了 K-Browser:執行 k-browser client add kav 替 Kav 建立連線(token 由 Kav 自己讀,不要寫進任何設定),再執行 k-browser doctor 確認橋接正常。
5. 告訴我以後怎麼啟動 Kev,並提醒我重開 Claude Code。
重開 Claude Code 後說「kav 的狀態」,它會告訴你 Chrome 和 Kev 有沒有在跑。
第 3 步(在任何資料夾都能用)還沒實測過。目前實測過的用法是:在 Kav 資料夾裡開 Claude Code,專案內建的
.mcp.json和 skill 會自動載入。
git clone https://github.com/kaiwutech-TW/Kav-FastwebAgent ~/Kav-FastwebAgent && cd ~/Kav-FastwebAgent && uv sync
# 選用:Kev(比價才需要,第一次下載約 9GB)
git clone https://github.com/jaredpalmer/kev vendor/kev
cd vendor/kev && uv sync --extra serve && uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009
在 ~/Kav-FastwebAgent 開 Claude Code,核准 .mcp.json 裡的 kav-fastweb。
流程預設跑在 K-Browser(見下方「登入區」),沒裝或接不上就停下來報錯。截圖存在 ~/.kav-fastweb/runs/。
Kav 是標準的 MCP server,理論上 Codex 也能用。在 ~/.codex/config.toml 加上:
[mcp_servers.kav-fastweb]
command = "uv"
args = ["run", "--directory", "/你的路徑/Kav-FastwebAgent", "python", "-m", "kfw.mcp_server"]
再把 .claude/skills/kav-fastweb 複製到 Codex 讀得到的 skills 資料夾(例如專案裡的 .agents/skills/)。
安裝 K-Browser(github.com/kaiwutech-TW/k-browser,需要 Node.js 22 以上)。在真的終端機執行:
git clone https://github.com/kaiwutech-TW/k-browser.git K-Browser && cd K-Browser
npm install
node src/cli.js install # 登記到你的 agent、裝好背景橋接(之後 `k-browser` 指 `node src/cli.js`,或先 `npm link`)
k-browser client add kav # Kav 自己的連線(token 寫在 ~/.k-browser/clients/kav.json,Kav 自己讀)
k-browser kav <Kav 資料夾的絕對路徑> # 讓 K-Browser 的 run_flow 用這份 Kav 跑流程
版本:Kav 需要 K-Browser 0.3.5 以上(判斷用的模型改經 K-Browser 的出口);0.3.9 以上 run_flow 才會把 Kav 停下時附的候選(candidates、options)交給 agent。反過來,K-Browser 的 run_flow 需要 Kav 0.0.8 以上。
K-Browser 把你平常用的 Chrome 安全地交給 agent 使用:agent 的分頁開在 K-Browser 自己的視窗,不會搶走焦點,每個動作都記在 K-Browser 的面板裡。裝好 K-Browser 並執行 k-browser client add kav 之後:
~/.k-browser/clients/kav.json 讀,不用寫進任何設定。kav.json 讀不到或橋接沒開時,流程會停下來請你執行 k-browser doctor,不會自動改用 Kav 的專屬 Chrome(那裡沒有你的登入,結果會看起來像網站壞了)。KFW_CDP,Kav 以它為準。k-browser model kev|jev|off,或 K-Browser 側邊面板的「Kav 的判斷模型」)。Kav 不直接連雲端、也不持有金鑰。選了 off,要判斷的步驟會回 model_off,由 Claude 自己判斷。不想裝 K-Browser:在 .mcp.json 的 kav-fastweb 加 "env": {"KFW_BROWSER": "dedicated"} 再重開 Claude Code,流程就改跑在 Kav 的專屬 Chrome(沒開會自動開一個獨立的設定檔 ~/.kav-fastweb/chrome-profile,不是你平常用的 Chrome)。這時登入區就是那個 Chrome:Claude 在那裡打開登入頁,由你自己登入一次。Kav 和 Claude 都不會替你輸入密碼。判斷用的模型是本機 Kev(http://127.0.0.1:8009)。
幫我做一個流程:
- 網站:<網址>
- 每次會換的:<例:出發站、到達站、日期>
- 我要看到的結果:<例:車次、出發和抵達時間>
- 怎樣算對:<選填,例:日期一定要是今天>
說不完整也沒關係,缺什麼 Claude 會一次問完。
Claude 會打開網頁看有哪些欄位、寫好流程、試跑一次,然後給你看重點結果和截圖,問「這是你要的結果嗎?」。 你只要判斷結果對不對:
| 你想… | 就說 |
|---|---|
| 用流程 | 直接問,例如「查 10/20 新竹到台南早上九點以後的高鐵」 |
| 結果不對、網站改版 | 「結果不對,應該是…」 → Claude 修好、重跑、再告訴你改了什麼 |
| 看有哪些流程 | 「我有哪些流程?」 |
| 刪掉流程 | 「刪掉 <某個> 流程」(移到 ~/.kav-fastweb/trash/,可以救回) |
| 用要登入的網站 | 說「打開 <網站> 讓我登入」,Claude 會打開登入頁交給你(裝了 K-Browser 就在你自己的 Chrome),你自己登入,好了按「交還」或告訴 Claude(建議用副帳號)。之後流程就能用;Kav 和 Claude 不會替你輸入密碼 |
寫流程的小訣竅:「怎樣算對」寫得越具體,流程越可靠。例如匯率流程加了「日期是今天」,舊資料就不會被當成答案。
有些網站要點好幾頁、從列表挑一筆、或用了特殊的選單,用說的很難講清楚。這時說「我示範給你看」:
限制:只能在同一個分頁裡操作;開新分頁、在內嵌框架(iframe)裡填表、要輸入密碼的頁面、結果一直在變(價格、剩餘名額)的任務,會直接告訴你錄不了。 流程壞了、Claude 修兩次都修不好時,它也會問你要不要示範一次。
替你登入、破解驗證碼、付款或下單、高頻大量抓取。有些網站會擋自動化操作(例:蝦皮),遇到時它會停下來告訴你原因,不會嘗試繞過。 開著 Cloudflare WARP 或 VPN 時,部分網站(例:酷澎)會拒絕存取。
Claude 照 kav-fastweb skill(.claude/skills/kav-fastweb/)為「網站 × 動作」寫配方(使用者看到的「流程」),試跑通過並附證據才存起來。
MCP 工具:find_recipe、run_recipe、inspect_page、dry_run、save_recipe、list_recipes、delete_recipe、start_recording、stop_recording、open_login、login_status、status。登入區(open_login、login_status)在 kfw/zone.py;找 K-Browser 端點、交接給使用者在 kfw/kbrowser.py。看網站用 K-Browser 自己的 MCP(k-browser)。
內建配方(recipes/);使用者自己存的放在 ~/.kav-fastweb/recipes/,同名時使用者的優先。
| 配方 | 類型 | 做什麼 |
|---|---|---|
tw-shop-compare | search_compare | PChome / momo / Yahoo 購物 / 酷澎同時比價,回傳商品頁驗證過的最低價 |
thsr-timetable | form_submit | 高鐵時刻表(起訖站、日期、時間 → 車次列表) |
每次執行都回傳 kev(Kev 呼叫次數、token、耗時加總)。
price = 任何人都買得到的一次付清售價。首購價、刷卡回饋、點數只放在 conditional_offers / notes,不參與排序。
價格離中位數太遠(< 0.5× 或 > 2×)的商品移到 suspicious,不參與排序,需要 Claude 複核。
uv run pytest -q # 單元測試(價格規則用 83 張真實卡片)
uvx pyright # 型別檢查
uv run python tests/mcp_e2e.py "PS5 Pro" "Sony PlayStation 5 Pro 主機(全新)" "ps5pro,playstation5pro;主機" # 走 MCP 跑比價配方
uv run python tests/mcp_recipe_flow.py <recipe.json> '<params json>' [--save] # 照 skill 的流程:dry_run → save → find
評測與數字見 evals/price/README.md;過程紀錄在 .flightwake/。