A local-first, cross platform desktop and mobile knowledge workspace for Markdown notes. ThinkBrain keeps notes as normal files, with the desktop interface built using React, Tauri, and CodeMirror. Will include a desktop app, mobile app, and Mac/Windows/Linux support, extensions (including automatic git syncing and conflict resolution), and stores metadata separate from the repo to avoid syncing issues with OneDrive and SyncThing.
Future extensions include:
- ACP Agent Chat
- Git sync (manual and automatic)
- Automatic conflict resolution for
- OneDrive
- SyncThing
- Other cloud drives?
- Node 22.23.1 or newer (
.nvmrcis provided) - pnpm 11.8.0
- Rust and the Linux dependencies required by Tauri/WebKitGTK
nvm use
corepack enable
pnpm install --frozen-lockfileRun the browser-only development UI:
pnpm devBuild and launch the regular desktop application:
pnpm desktop:rundesktop:run builds the frontend and then starts the native Tauri executable;
it does not provide live reload. The usual live-reload command is:
pnpm desktop:tauri devOn Linux, Tauri CLI requires an inotify watcher even before it starts the app.
If that command reports Too many open files, the per-user inotify instance
limit is exhausted. Close watcher-heavy programs or ask an administrator to
raise fs.inotify.max_user_instances; this is a host setting, not an app
configuration. pnpm desktop:run remains the non-live-reload alternative.
Rust builds auto-enable sccache/mold/clang if installed (no setup). Suggested: sudo apt install sccache mold clang. See AGENTS.md for details.
Run these before opening a change:
pnpm lint
pnpm typecheck
pnpm test
pnpm test:rust
pnpm test:e2e
pnpm build- Read the app vision, the relevant epic in
plans/, and.agents/AGENTS.mdbefore changing an area. - Keep Markdown files as the source of truth. Settings, indexes, credentials, layout, and chat history belong in OS app-data, never in a workspace.
- Production desktop UI uses CSS Modules and shared
--tn-*tokens. - Add or update the relevant epic story, implement with focused tests, and run the validation commands above. Do not suppress failures.
AI and ACP work is optional and remains behind explicit consent, provider, and permission boundaries. See plans/ai.md for the current plan.