A local-first, privacy-focused note-taking app with AI-powered features. Your second brain, running entirely on your machine.
- Rich markdown editing with live preview
- Wiki-style
[[linking]]between notes #hashtagsupport for organization- Code blocks with syntax highlighting
- Task lists, tables, and more
- Interactive 3D visualization of your notes
- See connections at a glance
- Filter by tags, find orphan notes
- Hover preview for quick context
- Summarize notes with one click
- Semantic search β find notes by meaning, not just keywords
- Related notes β discover hidden connections
- Works with Ollama for 100% local AI
- One-click daily note creation
- Built-in templates: Meeting Notes, Project, Journal
- Customizable template system
- Quick create from command palette
- Import from Obsidian vaults (preserves [[links]])
- Import markdown files and folders
- Export as ZIP, JSON, or individual files
- Full backup with metadata
- Instant search with
Cmd+K - Keyboard-first design
- No cloud dependencies
- Works offline, always
- Dark/light mode with auto-detection
- Clean, distraction-free interface
- Focus mode for deep writing
- Split view editor/preview
| Feature | BrainVault | Obsidian | Notion |
|---|---|---|---|
| Local-first | β Local (except voice notes*) | β Local files | β Cloud-only |
| Free | β MIT License | ||
| Open source | β | β | β |
| Wiki links | β | β | |
| Knowledge graph | β 3D Graph | β Graph view | β |
| Local AI | β Ollama | β | β |
| Native desktop app | β Tauri | β Electron | β Web only |
| Mobile app | π§ Planned | β | β |
| Offline support | β Full | β Full | |
| File format | Markdown | Markdown | Proprietary |
| Import from Obsidian | β | N/A |
* Voice notes use the browser's Web Speech API, which in Chrome and Edge transcribes in the cloud rather than on-device. The app asks for consent before the microphone is opened and the feature stays off until you accept. See SECURITY.md.
# Clone the repository
git clone https://github.com/maximilliangrand/brainvault
cd brainvault
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:5173 and start taking notes!
Build a native desktop app with Tauri:
# Install Tauri CLI (first time only)
cargo install tauri-cli
# Build the app
npm run tauri buildRun BrainVault in a container:
# Quick start
docker compose up -d
# Access at http://localhost:3000Or build and run manually:
# Build the image
docker build -t brainvault .
# Run the container
docker run -d -p 3000:80 --name brainvault brainvault# Start with Ollama support
docker compose --profile ai up -d
# Pull a model
docker exec brainvault-ollama ollama pull llama2BrainVault works great without AI, but for the full experience:
-
Install Ollama
brew install ollama # macOS # or download from https://ollama.ai
-
Start Ollama
ollama serve
-
Pull a model
ollama pull llama2 # Fast, good quality ollama pull mistral # Great for reasoning ollama pull codellama # Best for code notes
-
Open BrainVault β AI features will automatically connect!
| Action | Shortcut |
|---|---|
| New note | Cmd+N |
| Daily note | Cmd+D |
| Search | Cmd+K |
| Toggle sidebar | Cmd+B |
| Switch view mode | Cmd+E |
| Graph view | Cmd+G |
| Save note | Cmd+S |
| Focus mode | Cmd+Shift+F |
| AI chat | Cmd+J |
| All shortcuts | Shift+/ |
| Layer | Technology |
|---|---|
| Framework | React 19 + TypeScript |
| Desktop | Tauri 2.0 (Rust) |
| Editor | TipTap |
| State | Zustand |
| Styling | Tailwind CSS |
| Animations | Framer Motion |
| Graph | react-force-graph-3d |
| AI | Ollama (local inference) |
| Search | Fuse.js + custom semantic search |
brainvault/
βββ src/
β βββ components/ # React components
β β βββ AI/ # AI chat interface
β β βββ Editor/ # Markdown editor
β β βββ Graph/ # Knowledge graph
β β βββ Import/ # Import modal
β β βββ Templates/ # Template modal
β β βββ ...
β βββ stores/ # Zustand state management
β βββ lib/ # Utilities & helpers
β β βββ ai.ts # AI/ML functions
β β βββ import.ts # Import utilities
β β βββ templates.ts# Note templates
β β βββ ...
β βββ types/ # TypeScript types
β βββ styles/ # Global styles
βββ src-tauri/ # Tauri (Rust) backend
βββ server/ # Optional API server
βββ docker/ # Docker configuration
βββ public/ # Static assets
# Run all tests
npm test
# Run with UI
npm run test:ui
# Run specific test file
npm test -- src/lib/__tests__/ai.test.tsContributions are welcome! Please read CONTRIBUTING.md for guidelines.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing) - Open a Pull Request
MIT β do whatever you want with it.
Made with β€οΈ because note-taking apps shouldn't sell your data.