AI News HubLIVE
站內改寫2 分鐘閱讀

Show HN:一個用於過濾和閱讀 Hacker Newsletter 等郵件的 AI 技能

該專案是一個 Codex 技能,可讓使用者按日期或日期範圍從配置的 Gmail 發件人讀取郵件簡報,並將原始解碼後的文本 MIME 部分交給模型處理。技能內建本地只讀 Gmail 守護程序,依據連結過濾指令生成報告,支援反饋的本地儲存與匯出。

來源Hacker News AI作者: miros_love

這是一個提交到 Hacker News 的開源專案,提供了一個名為 email-reader 的 Codex 技能,用於從 Gmail 中篩選並閱讀配置好的郵件簡報。專案以本地只讀 Gmail 守護程序作為實現細節,使用者通常只需用具體日期或日期範圍呼叫技能,而不必直接與守護程序互動。技能會啟動守護程序,獲取指定時間段內來自配置發件人的全部郵件,把所有解碼後的 text/plain 和 text/html MIME 部分傳給模型,並呼叫 .agents/skills/email-reader/LINK_FILTERING_INSTRUCTIONS.md 中的規則來生成報告、選擇連結、格式化輸出以及收集反饋。

要使用該技能,可以在 Codex 中直接發出類似 $email-reader 2026-06-27$email-reader 2026-06-01 2026-06-27 的命令。實際執行時,技能會執行 scripts/fetch_messages.py,指令碼返回郵件後設資料和原始解碼後的文本 MIME 部分。模型負責解讀這些內容並撰寫報告;抓取指令碼本身不會挑選、清理或改寫郵件正文。生成的報告會把每個連結的反饋儲存在瀏覽器 localStorage 中,也可以匯出為 Report.feedback.json,以便後續更新使用者的偏好。

配置方面,需要在專案根目錄建立 .env 檔案,設定 ALLOWED_SENDER、GMAIL_OAUTH_CREDENTIALS_PATH、HOST 和 PORT。OAuth 客戶端檔案需要從 Google Cloud Console 獲取:啟用 Gmail API、配置 OAuth 同意螢幕、在測試模式下新增自己的 Gmail 賬號,然後建立“桌面應用”型別的客戶端並下載 JSON,重新命名為 gmail_client_secret.json 後放到專案根目錄。專案強調必須使用已安裝桌面應用的 OAuth 客戶端 JSON,不能使用 API 金鑰或服務賬號 JSON。程式碼中使用的授權範圍是 https://www.googleapis.com/auth/gmail.readonly,即只讀 Gmail。

本地守護程序可以透過 uv sync --locked 安裝依賴後執行,也可以直接用 UV_CACHE_DIR=/tmp/uv-cache uv run --locked python -m email_reader 啟動。首次收到 /messages 請求時,守護程序會在預設瀏覽器中開啟 OAuth 授權 URL;使用者完成 Google 授權後,本地令牌會儲存到 .gmail_token.json。如果 Google 拒絕過期或被撤銷的令牌,守護程序會自動重新發起授權,並保留舊令牌作為備份。若 Google 頁面提示“Access blocked: this app has not completed the Google verification process”,需要等待一段時間再試;新 OAuth 應用設定和測試使用者變更最長可能需要 24 小時生效。API 可以透過 curl 直接訪問,例如 curl 'http://127.0.0.1:4873/messages?start_date=2026-06-01&end_date=2026-06-27'。該專案以 MIT 許可證釋出。