Your life's memory. Locally owned. AI-powered. Zero cloud. Zero cost.
A powerful desktop application that indexes your files, lets you search across them in natural language, and chat with your data using local or cloud AI models — all with zero cloud dependency.
- Instant search across all indexed files with fuzzy matching
- Filter by file type (Documents, Notes, Text, Code)
- Date-based filtering and multiple sort options
- Command palette with
⌘Kkeyboard shortcut
- Chat with your files using natural language
- 6 AI providers supported: Ollama (local), OpenAI, Anthropic Claude, Google Gemini, Groq, Offline
- 50+ models available across all providers including Llama 3.3, GPT-4o, Claude 3.7 Sonnet, Gemini 2.0, DeepSeek R1, and more
- Real-time streaming responses with markdown rendering
- File context injection for accurate, grounded answers
- Persistent chat sessions with history
- Automatic file watching and indexing with Chokidar
- Supports 11 file types:
.md,.txt,.pdf,.docx,.doc,.rtf,.csv,.json,.js,.ts,.py - Real-time indexing progress with live percentage bar
- Auto re-indexing on file changes
- At-a-glance stats: total files, words, folders, last indexed
- Beautiful activity chart showing indexing trends
- Recently added files with quick access to chat
- Chronological file view grouped by year and month
- Collapsible month sections with file counts
- Color-coded file type indicators
- Add/remove watched folders with native file picker
- Folder cards with file counts, status indicators, and last indexed time
- One-click re-indexing per folder
- Provider selection with visual cards
- Beautiful model dropdown with model name, size, and organization
- Live model syncing from Ollama, OpenAI, and Groq APIs
- API key management with show/hide toggle
- Connection testing for local providers
- Indexing preferences (auto re-index, hidden files, extension selection)
- Premium dark/light theme with smooth transitions
- Glass morphism effects and gradient accents
- Smooth Framer Motion animations throughout
- Responsive and polished UI
| Layer | Technology |
|---|---|
| Desktop | Electron 41 |
| Frontend | React 19 + Vite 5 |
| Routing | React Router DOM 7 (HashRouter) |
| Styling | Tailwind CSS 4 + CSS Variables |
| Animations | Framer Motion |
| State | Zustand |
| Database | SQLite (better-sqlite3) |
| Search | MiniSearch (in-memory full-text) |
| File Watcher | Chokidar |
| Charts | Recharts |
| Markdown | React Markdown |
| Notifications | Sonner |
| Icons | Lucide React |
| UI Primitives | Radix UI |
- Node.js 18 or higher
- npm or yarn
- Ollama (optional, for local AI) — download from ollama.ai
git clone https://github.com/yourusername/dead-reckoning.git
cd dead-reckoningnpm installnpm run devThis launches both the Vite dev server and Electron app simultaneously.
npm run buildThis creates platform-specific installers (DMG for macOS, NSIS for Windows, AppImage/deb for Linux) in the dist/ directory.
- Launch the app — You'll see the dashboard with stats and recent files
- Add folders — Go to Vault → Click Add Folder → Select a directory to index
- Search — Press
⌘Kor go to Search to find files instantly - Chat — Go to Chat → Start a new session → Ask questions about your files
- Configure AI — Go to Settings → Choose your AI provider → Select a model → Save
| Provider | Cost | Models | Setup |
|---|---|---|---|
| Ollama | Free | Llama 3.2, Mistral, Phi-4, Gemma 2, Qwen 2.5, DeepSeek R1, and more | Install Ollama, pull models |
| Groq | Free tier | Llama 3.3 70B, Mixtral 8x7B, Gemma 2 9B, DeepSeek R1 | Create API key |
| Google Gemini | Free tier | Gemini 2.0 Flash, 1.5 Pro, 1.5 Flash | Create API key |
| OpenAI | Pay-per-use | GPT-4o, o1, o3 Mini, GPT-3.5 Turbo | Create API key |
| Anthropic Claude | Pay-per-use | Claude 3.7 Sonnet, 3.5 Sonnet, 3.5 Haiku, Opus | Create API key |
| Offline | Free | None (search & browse only) | No setup needed |
dead-reckoning/
├── electron/ # Electron main process
│ ├── main.js # App window, IPC handlers, service init
│ ├── preload.js # Context bridge (window.dr API)
│ └── services/
│ ├── db.js # SQLite database layer
│ ├── indexer.js # File watcher & parser
│ ├── search.js # MiniSearch full-text engine
│ └── ollama.js # Multi-provider AI service
├── src/ # React frontend
│ ├── main.jsx # Entry point
│ ├── App.jsx # Root component & routing
│ ├── index.css # Global styles & theme
│ ├── components/
│ │ ├── Sidebar.jsx # Navigation sidebar
│ │ └── SearchBar.jsx # Command palette (⌘K)
│ ├── pages/
│ │ ├── Home.jsx # Dashboard
│ │ ├── Search.jsx # Full-page search
│ │ ├── Chat.jsx # AI chat interface
│ │ ├── Timeline.jsx # Chronological file view
│ │ ├── Vault.jsx # Folder management
│ │ └── Settings.jsx # AI & indexing config
│ ├── store/
│ │ ├── useAppStore.js # Global app state
│ │ └── useChatStore.js # Chat session state
│ └── context/
│ └── ThemeContext.jsx # Light/dark theme provider
├── package.json
├── vite.config.js
└── electron-builder.config.js
- All data stays on your device — files are never uploaded
- Local-first architecture — SQLite database stored in your user data directory
- No cloud dependency — works entirely offline with Ollama
- Your API keys stay local — stored encrypted in your user data directory
- Open source — fully auditable codebase
- Own your data — No third-party servers, no data collection, no tracking
- Free forever — With Ollama, there are zero ongoing costs
- Fast & responsive — Local SQLite + in-memory search means instant results
- Extensible — Support for multiple AI providers and file types
- Beautiful — Premium UI with dark/light themes and smooth animations
- Cross-platform — Works on macOS, Windows, and Linux
MIT License — see LICENSE for details.
Built with love using open-source tools and frameworks. Special thanks to the Electron, React, and Ollama communities.