Local-first Markdown notes app with optional AI, keyboard-first workflows, and a scriptable local API.
- Local by default. Your notes stay on your machine.
- Fast writing and navigation with command palette and hotkeys.
- Optional AI assistance with explicit edit controls and revert history.
- Local HTTP API + CLI for automation and agent workflows.
- Security-hardened desktop architecture (sandbox + context isolation).
- Multi-pinned split panes (pin multiple notes at once).
- Grid layout mode for pinned notes (2/3/4-column workflows).
- Memory/performance improvements across renderer and main process.
- Cleaner split-pane behavior and tab-level pin controls.
Get platform builds from GitHub Releases:
- macOS: DMG
- Windows: NSIS EXE
- Linux: AppImage
Requirements:
- Node.js 20+
- npm
npm install
npm run dev# typecheck + production build
npm run build
# create release artifacts
npm run dist
# run tests
npm run test- Markdown editor with autosave + save state.
- Rich-text paste to Markdown.
- Split preview and editable note panes.
- Tags, starring, archiving, undo delete.
- Search and filtering by query, tags, and note state.
- Quick Open and command palette.
- Related notes + backlinks.
- Pinned tags and customizable shortcuts.
- In-app chat panel for drafting and analysis.
- Provider/model routing controls.
- Edit safety modes: read-only, confirm, auto-apply.
- AI edit history and revert endpoint.
Base URL (local API):
Examples:
npm run strata -- health
npm run strata -- notes list --json
npm run strata -- notes create --content "# Note\n\nCreated from CLI"
curl http://127.0.0.1:3939/health- Notes/settings stored in local SQLite.
- WAL mode + scheduled backups.
- No mandatory cloud sync.
- Electron hardening:
- contextIsolation enabled
- sandbox enabled
- no renderer Node.js access
See SECURITY.md and docs/enterprise-readiness-checklist.md.
app/
main/ Electron main process, IPC handlers, DB, API server
preload/ Secure bridge exposed as window.strata
renderer/ React UI + Zustand state
shared/ Cross-process types and contracts
docs/ Deep-dive docs (AI, CLI, publishing, enterprise)
scripts/ Dev and automation helpers
release/ Built installers/artifacts
npm run dev
npm run build
npm run dist
npm run test
npm run lint
npm run format
npm run backup:notes- API.md
- CLI.md
- SECURITY.md
- CONTRIBUTING.md
- docs/AI_PROVIDERS.md
- docs/AI_ROUTING.md
- docs/ai-edit-permissions.md
- docs/enterprise-readiness-checklist.md
- docs/publish-providers.md
If Electron cannot load better-sqlite3:
npm rebuild better-sqlite3 --runtime=electron --target=40.8.5 --disturl=https://electronjs.org/headersIf TypeScript diagnostics in editor are stale while build passes, run:
- TypeScript: Restart TS Server
- Developer: Reload Window