FlareMo 开源无服务器 AI 笔记库,支持 MCP 让智能体读写笔记
realchendahuang/FlareMo
FlareMo 在 GitHub 开源,是一个基于 Cloudflare Workers、D1 和 R2 的无服务器笔记与知识库应用,采用 AGPL-3.0 许可。
Zero Servers · Zero Upkeep · 24/7 Global Edge Uptime · Absolute Data Ownership
An AI-native second brain for you. A shared knowledge base for your team.
English • 简体中文 • 日本語 • Français • Español • 한국어 • Русский • العربية
| ☀️ Desktop · Light Theme | 🌙 Desktop · Dark Theme | 📱 Mobile · Responsive |
|---|---|---|
![]() |
![]() |
![]() |
| ✅ To-dos, projects and review | 📄 Articles you can publish |
|---|---|
![]() |
![]() |
Actual live screenshots: seamless light/dark mode switching and full-featured mobile responsiveness. Every feature shown is wired to working backend capabilities.
💡 Why FlareMo?
Second brains have always come with a server: a VPS bill, Docker, PostgreSQL, a backup script, and the quiet dread of a dead disk.
FlareMo asks a different question: what if your second brain needed no server at all — and your AI agents could work directly on your notes?
- AI-native, not bolted on: A notes MCP endpoint plus the
flaremo-notesskill lets Claude, Cursor, Codex, ChatGPT and ZCode search, read and write your own notes. No separate AI memory store, no second notebook to curate. - Truly serverless: code and static assets run on the Cloudflare Workers edge node nearest you; D1 and R2 hold notes, tasks, articles and media with multi-region durability.
- Knowledge that grows: a quick note becomes a task, a task becomes an article, and the whole thing settles into a searchable, linked knowledge base.
- Quiet for one, useful for a team: private by default; turn on team mode for a shared space with roles and three-tier visibility.
- Minimal, never shallow: the interface stays quiet and every control earns its place.
✨ Key Features
1. Instant Capture & Inspiring Review
- Capture in milliseconds: Card-style timeline, tags, Markdown/GFM, and previews for image and audio attachments.
- Notes and articles: The composer stays a quick note (tags, up to 9 images, bold, lists, to-dos); "Write full screen" opens the same note in a full-screen canvas. Articles are written from the Articles page.
- Comments under the note: Comment on any note, in your personal space or the team space, Weibo-style. Comments live under the original note and stay out of the timeline, search, stats, tags, and review.
- Lightning-fast search: SQLite FTS5 full-text indexing with query operators (
has:attachment,is:pinned,before:YYYY-MM-DD,after:YYYY-MM-DD,in:timeline|archive|trash). - Semantic "Find" (Vector Search): Workers AI embeddings paired with Vectorize derived vector indexes for contextual recall; re-verifies permissions against D1 and seamlessly falls back to FTS5.
- Thought activation: Built-in Daily Review (on this day), Random Walk (wandering through tag and backlink graphs with postcard summaries), and related note recommendations.
- Revision history: Full version diffs and one-click historical restore.
2. AI Works on Your Notes (MCP + Skill)
- Notes MCP:
/mcpexposes list, search, read, create, update and delete over your memos, authenticated with a revocablememos_pat_token. - One skill:
skills/flaremo-notesteaches every agent to search before writing, keep your wording, and return the memo ID it touched. - No separate memory: agents read your notes on demand; nothing is auto-extracted into a second ledger.
3. To-dos & Projects
- Schedule a note: Pick a day and a project for a note; each unchecked to-do in it becomes a task. Checking it off in the note or on the to-do page stays in sync both ways.
- One to-do page:
/projectsshows Today, Next 7 days, and All tasks as day-grouped lists, plus your projects as kanban boards (drag between status columns, priorities, manual order). Every list has a quick-add row. - Personal by design, reversible deletion: Tasks belong to a single owner; deleting moves them to a recycle bin until restored or automatically purged.
4. Reminders & Time Horizons
- Badges where you read: Scheduled notes show "to-dos n/m · date · project" on the card, and Daily Review opens with today's to-dos.
- Time horizons at a glance: The explorer home view pairs a mini month calendar with overdue/today reminders, so what's due never hides behind the board.
- Due and overdue reminders: A daily job raises "due today" and overdue notifications in the app, with optional browser Web Push. Schedules are day-level; there are no clock-time alarms.
5. Team Space & 3-Tier Visibility
- Sharing, not collaboration: The team space is where members publish notes to each other and comment on them.
@usernamementions autocomplete in the team composer and notify the person mentioned; notifications open the original note at its comments. - Role governance:
owner,admin, andmemberroles. Admins invite members via one-time activation links (members choose their own passwords; admins never handle plaintext credentials). - 3-tier visibility:
- 🔒 Private: Only author can view.
- 👥 Team: Shared read-only with active team members.
- 🌐 Public: Anonymous read-only via time-limited share links.
- Safe offboarding: Removing a member triggers reliable background cleanup that purges private data while preserving team and public notes.
- Reader seats: Grant a time-boxed read-only seat — guest readers, course cohorts, client delivery. Seats lapse automatically at their expiry (fail-closed at credential resolution, no cron needed). Manage them from the members page, or provision by email through
PUT /api/app/admin/team/readerwith a Personal Access Token (seedocs/team-mode.md).
6. Offline First & PWA Experience
- Installable PWA: Install to macOS, Windows, iOS, or Android home screen with native feel.
- Reliable offline sync: Drafts save locally instantly. Offline submissions and uploads queue up and replay automatically when connectivity is restored.
- Live voice input: The composer's microphone button streams speech-to-text (ASR) into the draft as you speak.
7. Secure Better Auth Application Security
- Better Auth powered: HttpOnly,
SameSite=Laxbrowser cookie sessions; revocablememos_pat_Personal Access Tokens for scripts and MCP. - Strict Origin protection: State-changing requests enforce exact origin whitelisting. Cloudflare Access remains available as an optional outer defensive perimeter.
8. Your Data, Always Yours
- One-click full export: records, attachments, tasks, projects, articles and share relationships in a single bundle you can archive offline whenever you want.
- Imports that leave nothing half-written: choose to skip or duplicate on conflict; a failed import rolls back completely instead of leaving a half-written dataset.
- Bring your history with you: a bundled converter turns an existing export into a FlareMo import bundle, keeping timestamps, tags, pins and visibility (migration guide).
- Open by protocol: an
/api/v1compatibility layer with revocable Personal Access Tokens, plus MCP for AI tooling; the exact supported surface is in the compatibility matrix.
9. Plugin System: Cards as Plugins
- Five built-in cards: Plain, Daily, Ticket, Postcard, plus a canvas-drawn Postmark demo.
- Store and curation: browse directories, one-click install (SHA-256 verified), enable/disable, reorder, set the default, hide — all in account settings. The official directory lives at flaremo.app/plugins.
- Upload your own: admins can install a local package — it exists only on that instance and is never sent anywhere.
- Authoring tools:
pnpm plugin:newscaffolds,pnpm plugin:checkvalidates with the exact rules instances enforce on install,pnpm plugins:buildpackages. Document cards are pure JSON layouts; sandbox cards run your own HTML/CSS/JS. See the plugin guide. - Safe by default: cards run in an opaque-origin sandbox with no network access; community and brand packs stay off until an admin enables them.
📊 How Generous Is Cloudflare's Free Tier?
Many assume "free" means "severely limited". For text-heavy personal knowledge bases, Cloudflare's free quota is virtually inexhaustible:
| Resource | Free Tier Quota | Equivalent Capacity | Practical Lifespan |
|---|---|---|---|
| Cloudflare D1 | 5 GB database | ~2.5 Million text memos | Writing 100 memos daily would take 68 years to fill |
| Cloudflare R2 | 10 GB storage | ~5,000–10,000 photos / 80 hours of voice | $0 egress fees; public sharing won't trigger bandwidth bills |
| Cloudflare Workers | Generous free request limits | 300+ global edge locations | Millisecond latency worldwide without cold boots |
🥊 Comparison: Cloudflare Native vs Home NAS vs Traditional VPS
| Dimension | Cloudflare Native (FlareMo) | Home NAS / Mini PC | Traditional VPS |
|---|---|---|---|
| Data Durability | Enterprise multi-region replication, zero hardware failure risk | Single drive failure or power outage can cause total data loss | Dependent on manual snapshot & backup routines |
| Maintenance | Zero: No OS patching, no Docker compose, no DB maintenance | OS updates, Docker upkeep, SMART disk alerts, router configs | Kernel upgrades, security patches, watchdog daemons |
| Access Latency | Global edge CDN, sub-100ms response anywhere | Requires DDNS / frp / Tailscale tunnels, constrained by home uplink | Dependent on single cloud region; high cross-border latency |
| SSL & Domains | Automated HTTPS & custom domain bindings | Manual certificate issuance, reverse proxy configuration | Nginx / Caddy config & Let's Encrypt renewal maintenance |
| Financial Cost | $0 / month on free tier | High upfront hardware cost + ongoing electricity | Ongoing monthly / annual server & bandwidth bills |
🚀 5-Minute Quick Deployment
Method 1: One-click Deploy to Cloudflare
Clones the repository into your GitHub account and provisions D1, R2, Queues, and Vectorize automatically. After the initial deploy, set FLAREMO_PUBLIC_URL and secrets (see docs/en/deploy.md). If the first attempt reports "Github API Limit Exceeded", wait a few minutes and retry.
Method 2: GitHub Action (self-hosted fork)
On your fork, copy docs/templates/workflows/deploy-cloudflare.yml into .github/workflows/, then run Deploy to Cloudflare from Actions to provision resources, publish the Worker, and sync auth secrets. Pushes do not publish. See docs/en/github-action-deploy.md.
Method 3: Deploy with an AI Agent (Recommended)
Give the repository to an agent capable of executing terminal commands (e.g. Claude Code, Cursor Agent, Codex) along with docs/en/agent-deploy.md:
"Please deploy FlareMo to my Cloudflare account following docs/en/agent-deploy.md."
Method 4: Manual 3-Step Deployment
1. Create Cloudflare Resources
pnpm exec wrangler whoami pnpm exec wrangler d1 create flaremo pnpm exec wrangler r2 bucket create flaremo-attachments
Or run pnpm provision:remote instead: it creates the missing D1 / R2 / Queue / Vectorize resources and writes the D1 database_id into wrangler.jsonc for you. It is idempotent — existing resources are skipped.
2. Configure Settings & Secrets
cp wrangler.jsonc.example wrangler.jsonc
Fill in the generated database_id and set FLAREMO_PUBLIC_URL to your production domain. Then set secrets:
pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc
3. Deploy
pnpm deploy:dry-run pnpm deploy
(The full pnpm verify gate runs only when the maintainer explicitly asks for it.)
Visit your production domain at /setup and enter the FLAREMO_BOOTSTRAP_SECRET to initialize your Owner account.
Detailed guides: Deployment Guide · GitHub Action deploy · Update Guide.
🧱 Architecture & Tech Stack
flowchart LR Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] Clients["Scripts / MCP"] --> Worker Worker --> Auth["Better Auth (Session / PAT)"] Worker --> D1["Cloudflare D1 (Notes / Relations / Settings)"] Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker Worker --> R2["Cloudflare R2 (Attachments & Exports)"] Worker --> Assets["Workers Static Assets"]
Loading
- Runtime: Cloudflare Workers
- Frontend: React 19, Vite, TanStack Router, Tailwind CSS 4, Radix UI
- Database: Cloudflare D1, Drizzle ORM
- Storage: Cloudflare R2
- Auth: Better Auth (HttpOnly cookie session + revocable
memos_pat_) - AI & Search: Workers AI, Vectorize, SQLite FTS5
- Plugins: slot-based extension platform (standard, guide); packages live in R2, sandboxed cards run without network access
🌟 Star History
📄 License
Open-sourced under the GNU AGPL-3.0 license. Copyright (c) 2026 realchendahuang.
来源:GitHub · github.com




