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.
用對話請 Claude/Codex 建立與修理固定網頁流程,再由 Kav 本機程式執行、驗證,省下重複執行的時間與 token。Kev 為選配。
Translation pending
ProductivityPython · AstroGitHub @kaiwutech-TWOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
常做的網頁查詢說一次就變成流程,之後由本機程式快速、可驗證地執行;給 Claude Code / Codex 用的 MCP 工具。Turn repeated web tasks into verified local flows for Claude Code / Codex.
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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/。