尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Self-hosted feed reader with newsletters, a native macOS app and a remote MCP for assistants
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A self-hosted feed reader for one person: RSS and Atom feeds plus newsletters delivered by e-mail, in a single unread queue you can read from the web, from a native macOS app, or through an AI assistant connected over MCP. One Postgres database is the source of truth; every client writes through to it.
The hosted instance at reader.sereno.dev.br is the author's and has sign-ups closed. To use Feed Reader, run your own copy: it fits in Vercel's and Neon's free tiers. See Self-host.
macos/README.md./api/mcp, so an assistant can read the same inbox, mark items, star, tag, take notes and subscribe.ALLOW_SIGNUP=true to open registration). Admins can also remove accounts.macOS app (from the snapshot tests, light appearance):
| Sidebar | Item list | Reading header |
|---|---|---|
| Command palette | First run |
|---|---|
Web screenshots go in docs/screenshots/web-*.png (none yet; the web UI is at apps/web).
docs/deploy.md walks through the whole thing: Vercel project + Neon Postgres, every environment variable, Google sign-in, Resend e-mail and newsletters, crons, custom domain, the GitHub Actions deploy fallback, MCP and macOS client setup, updating and backups.
The short version: fork, import apps/web into Vercel, attach a Neon database, set BETTER_AUTH_SECRET, BETTER_AUTH_URL and CRON_SECRET, deploy, create your account. Registration is then invite-only: invite people from Settings › Admin, or set ALLOW_SIGNUP=true to open it.
Any MCP client that supports OAuth can connect; there is no API key to mint. For Claude Code:
claude mcp add --transport http --scope user feedreader https://<your-host>/api/mcp
The browser opens once to approve the client. Tools: list_items, get_item, list_feeds, list_tags, mark_read, star, add_note, add_tags, subscribe, refresh.
Requirements: Node 24, pnpm 12 (corepack enable), Docker.
pnpm install
pnpm deps:up # Postgres + pgweb in Docker; writes .env.docker
pnpm db:migrate
pnpm dev # → https://feedreader.localhost
pnpm dev runs Vite behind portless, which serves the app at https://feedreader.localhost (and https://<branch>.feedreader.localhost in git worktrees). On the first run it generates a local certificate authority and asks for permission to trust it and to bind port 443; both prompts are one-time. If you would rather skip that, run Vite directly:
cd apps/web && pnpm exec vite dev --port 3000 # http://localhost:3000
A fresh clone runs with no .env.local; copy .env.example to enable optional integrations (Google sign-in, Resend, observability).
Tests need the test database once (pnpm test:db:migrate), then:
pnpm test # unit (real Postgres, rolled-back transactions) + frontend (happy-dom)
pnpm lint && pnpm format:check && pnpm type-check && pnpm knip
Layout: apps/web (TanStack Start, oRPC, BetterAuth, Drizzle), packages/db (schema + migrations), packages/api (oRPC contract), packages/query (typed client + TanStack Query hooks), macos/ (SwiftUI). Conventions live in AGENTS.md and docs/patterns.md; the macOS app defaults to production, so point it at your dev server with defaults write dev.sereno.feedreader remoteServerURL https://feedreader.localhost.
Rough order, no dates:
list_items).ETag / Last-Modified) on feed refresh.See CONTRIBUTING.md; security reports go through SECURITY.md. Licensed under MIT.