Local-first AI Knowledge Vault with End-to-End Encryption
Distribution model: Open Core. This repository is the MIT-licensed Core; Pro features identified in OPEN-CORE.md are proprietary and not included here.
Your personal knowledge vault โ encrypted on your device, works offline, and stays yours. No accounts, no tracking, no one can read your data. Not even us.
Quick Start โข Features โข Free vs Pro โข Documentation โข Architecture โข Security โข Contributing
-
Privacy First: Your data stays on your device, encrypted with AES-GCM + Argon2id
-
BYO AI: Use any AI provider you want (OpenAI, Anthropic, Gemini, etc.) with your own keys
-
Lifetime: One payment, no subscriptions or recurring fees
-
Offline: Works without internet connection
-
Open Source: Core is MIT-licensed, auditable and customizable
-
No Tracking: Opt-in telemetry only, full control over your data
-
End-to-end encryption โ AES-256-GCM + Argon2id for secure vault storage
-
Zero-knowledge vault โ 24-word recovery phrase, tampering detection, fail-closed storage
-
BYO AI keys โ Provider keys stored encrypted in your vault, never on our servers
-
No tracking โ Opt-in telemetry only, works fully offline
-
Client-side cryptography โ All encryption/decryption happens in Web Workers, server never sees keys
-
Offline-first โ The app lives in your browser; your vault works without internet
-
No cloud dependencies โ Full Core functionality without external services
-
Progressive Web App โ Installable on any modern browser, plus browser extensions
-
P2P sync (Pro) โ Optional device-to-device sync over WebRTC; servers relay encrypted traffic, never content
-
Multi-provider support โ Gemini, OpenAI, Anthropic, Groq, Hugging Face, OpenRouter with your own keys
-
Direct API calls โ No proxy: the browser calls the provider you configure
-
Free smart search โ Fuse.js + semantic embeddings engine included in Core
-
Pro AI surfaces (Pro) โ Local model runtime, RAG orchestration, expert agents and flashcard generation
-
Bookmarks & Notes โ Organize your digital knowledge
-
Interactive Knowledge Graphs โ Visualize connections between concepts
-
Advanced Search โ Smart search across all your content
-
Import / Export โ JSON, JSONL, CSV, Markdown, HTML, Notion, Obsidian, and PDF
Most bookmark managers store your library in someone else's cloud in plain text. BookmarkForge keeps everything encrypted on your device (AES-GCM with an Argon2id-derived key), so your data is yours in the strongest sense: we couldn't hand it over even if we wanted to.
-
Local-first โ Your vault works fully offline. No server required.
-
Zero-knowledge โ Recovery phrase, tampering detection, fail-closed storage.
-
P2P sync (Pro) โ Device-to-device sync; servers relay encrypted traffic, never content.
-
Open Core, MIT โ Audit the public Core; Pro components are not included in this export.
-
Node.js >= 24.17.0
-
npm (comes with Node.js)
git clone https://github.com/bookmarkforge/bookmarkforge.git
cd bookmarkforge
npm install
npm run dev # http://localhost:5173
npm run typecheck:prod
npm run lint
npm run test:fast
npm run test:slow
npm run build:ci
npm run check
Build for production: npm run build. See docs/architecture.md for the full topology: static web + signaling/licensing companion server.
This repository contains the MIT-licensed Core. The private distribution adds proprietary Pro components, unlocked at runtime by a signed license purchased from the official store:
| Feature | Free (Core) | Pro |
|---|---|---|
| Bookmarks | 2,500 | Unlimited |
| Smart search (Fuse.js + semantic) | โ included | โ |
| Encrypted backups & PDF/OCR | โ | โ |
| Flashcards from bookmarks | โ | โ |
| P2P device sync | โ | โ |
| Support | Community | Email 48h |
Buy a Pro license: bookmarkforgeapp.com โ $59 Early Bird (first 200 licenses) โ $79 regular.
| Feature | BookmarkForge | Obsidian | Notion |
|---|---|---|---|
| Local Storage | โ | โ | โ |
| AI Integration | โ (BYO keys) | โ | โ (embedded) |
| Privacy | ๐๐๐ Zero-knowledge | ๐๐ | ๐ |
| Lifetime | โ | โ | โ (subscription) |
| Offline | โ | โ | โ |
| Open Source | โ (Core MIT) | โ | โ |
| BYO AI Keys | โ | โ | โ |
-
Website:https://bookmarkforgeapp.com
-
Documentation:https://github.com/bookmarkforge/bookmarkforge-core/tree/main/docs
-
Security Policy:https://github.com/bookmarkforge/bookmarkforge-core/blob/main/.github/SECURITY.md
-
Contributing:https://github.com/bookmarkforge/bookmarkforge-core/blob/main/CONTRIBUTING.md
-
Private Repository:https://github.com/bookmarkforge/bookmarkforge-2026
-
Architecture โ System architecture and design decisions
-
Security โ Security model and best practices
-
API Reference โ Companion server API documentation
-
OpenAPI Spec โ OpenAPI 3.0 specification
-
Documentation Index โ Full documentation catalog
-
Open Core Model โ Licensing and feature boundaries
-
Contributing โ How to contribute to the Core
-
Engineering Conventions โ Code style and architectural rules
-
Trademark Policy โ Brand usage guidelines
-
Core MIT License โ Open source components
-
Pro License โ Commercial features
-
The full set ships in 30 languages under
docs/: seedocs/index.md .
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Browser / PWA / Extension โ
โ React 19 + TypeScript + RxDB + IndexedDB + WebRTC โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS/WSS
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Reverse Proxy (TLS, CSP, Static) โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโ
โผ โผ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Web Frontend โ โ Companion Serverโ
โ (React/Vite) โ โ (Node/ws) โ
โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ
โ โ
โ โโโบ P2P WebSocket signaling
โ โโโบ License endpoints (/api/license/*)
โ โโโบ Health, CSP reports
โ โโโบ Opt-in telemetry
โ
โโโบ Your AI Providers (BYO key)
โข Gemini, OpenAI, Anthropic
โข Groq, Hugging Face, OpenRouter
โข Ollama, WebLLM (local, Pro)
Cryptography: AES-GCM, Argon2id/HKDF, keys managed in Web Workers
-
Client-first data โ Vault data lives on the client
-
End-to-end encryption โ Encryption and decryption happen client-side
-
Zero-trust model โ Server never sees unencrypted data or AI keys
-
Stateless services โ No shared database or Redis in production
-
Your AI keys are stored encrypted in your vault, never on our servers
-
Vault content never leaves your device unencrypted
-
No tracking โ Opt-in telemetry only, no behavioral tracking
-
IP privacy โ Server logs never contain user IP addresses
-
TLS termination at reverse proxy with HTTPS redirect and HSTS
-
Content Security Policy (CSP) with strict allow-lists
-
Secret scanning โ Automated detection of leaked secrets in commits
-
460+ automated tests including security, crypto, and property-based tests
-
Monthly DAST (OWASP ZAP) penetration testing
-
CodeQL + Semgrep SAST analysis on every PR
Found a vulnerability? Please report it privately โ see SECURITY.md. Please do not open public issues for security reports.
| Profile | Coverage | Command |
|---|---|---|
test:fast |
Critical paths | npm run test:fast |
test:slow |
Full test suite | npm run test:slow |
e2e:smoke |
Critical vault operations | npm run e2e:smoke |
check |
~50 gates + lint | npm run check |
- Unit / Integration โ Vitest suites for security, DB, and services
- E2E โ Playwright specs across Chromium, Firefox, WebKit, and Android
- Open Core boundary โ
npm run check:open-coreverifies no Pro code leaks into this export - Performance budgets โ Bundle size and runtime metrics enforced per feature
The code in this public repository is the MIT-licensed Core. You may run, study, modify and redistribute it under the terms in LICENSE. Proprietary Pro features and private infrastructure are intentionally excluded. The BookmarkForge name and logo remain protected by TRADEMARKS.md.
Running the Core for yourself or your team is permitted without payment.
Pro code is resolved two ways in this build, both enforced in CI by npm run check:open-core:
Behind the entitlement gate. Core components resolve the Pro services (encrypted backups, PDF/OCR extraction, P2P sync, and the proprietary AI surfaces โ the local model runtime, RAG orchestration, expert agents and flashcard generation) throughsrc/services/pro-access.ts (MIT), which callshasProAccess()before fetching the Pro chunk. A Free user never downloads that code; the call rejects with a typedProUnavailableError that the UI presents as a "requires Pro" state or upgrade prompt, never a silent dead button.
2.
Client-side AI boundary. Cloud providers are called directly by the browser with a user-supplied key; no server-side AI relay or placeholder is shipped. (The AI client tree is largely Core MIT: the BYOK cloud path and the embedding engine behind free smart search are open; seeOPEN-CORE.md for the exact Pro list.)
Reaching a Pro surface is never silent: the placeholder helper also dispatches open-core:pro-reached, and the refuses to hand out a placeholder as if it were real. Either signal opens the in-app "Available in Pro" panel (ProRequiredBoundary), which explains what happened and links to the Pro section with the current license price.
BookmarkForge ships 30 languages with complete UI translations. Each language has a Markdown source and a generated PDF under docs/. See docs/index.md for the complete list.
| Language | Markdown | |
|---|---|---|
| ๐ธ๐ฆ Arabic | MD | |
| ๐ง๐ฌ Bulgarian | MD | |
| ๐จ๐ฟ Czech | MD | |
| ๐ฉ๐ฐ Danish | MD | |
| ๐ฉ๐ช German | MD | |
| ๐ฌ๐ท Greek | MD | |
| ๐บ๐ธ English | MD | |
| ๐ช๐ธ Spanish | MD | |
| ๐ซ๐ฎ Finnish | MD | |
| ๐ซ๐ท French | MD | |
| ๐ฎ๐ฑ Hebrew | MD | |
| ๐ฎ๐ณ Hindi | MD | |
| ๐ญ๐ท Croatian | MD | |
| ๐ญ๐บ Hungarian | MD | |
| ๐ฎ๐ฉ Indonesian | MD | |
| ๐ฎ๐น Italian | MD | |
| ๐ฏ๐ต Japanese | MD | |
| ๐ฐ๐ท Korean | MD | |
| ๐ณ๐ฑ Dutch | MD | |
| ๐ณ๐ด Norwegian | MD | |
| ๐ต๐ฑ Polish | MD | |
| ๐ต๐น Portuguese | MD | |
| ๐ท๐ด Romanian | MD | |
| ๐ท๐บ Russian | MD | |
| ๐ธ๐ช Swedish | MD | |
| ๐น๐ญ Thai | MD | |
| ๐น๐ท Turkish | MD | |
| ๐บ๐ฆ Ukrainian | MD | |
| ๐ป๐ณ Vietnamese | MD | |
| ๐จ๐ณ Chinese | MD |
Core contributions are accepted under MIT. Do not send Pro code or copy third-party code with an incompatible license.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run the gates (
npm run check) - Commit your changes
- Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Before opening a change that crosses the Core/Pro boundary, document the decision and update the export gate. See CONTRIBUTING.md and AGENTS.md.
- Documentation โ See thedocumentation index
- Issues โ Report bugs onGitHub Issues
- Discussions โ Join community discussions onGitHub Discussions
- Security โ Report vulnerabilities privately viaSECURITY.md
Copyright ยฉ 2026 BookmarkForge
This Core is free software: you can redistribute and/or modify it under the terms of the MIT License in LICENSE.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
BookmarkForge v1.0.0 โ Open Core: MIT Core + proprietary Pro