Open-source Granola-like notepad built with Vite, Electron, AI SDK, and Convex.
Features · Running locally · Desktop · Self-hosting
Graneri is early. Expect bugs.
Desktop is the primary experience. Public desktop builds are not published yet. The current desktop build is macOS Apple Silicon (arm64) only. Intel Mac, Windows, and Linux support are planned.
- Live meeting transcription with notes generated as conversations happen
- AI-powered note refinement for cleaner summaries and better structure
- Custom note templates for repeatable meeting formats and workflows
- Workspace organization for keeping teams, notes, and context aligned
- Desktop meeting workflow with quick capture during active calls
- Calendar-aware setup that prepares notes around scheduled meetings
- Vite and React for the renderer
- Electron for the desktop shell
- Convex for realtime backend functions and data
- Better Auth for authentication
- AI SDK with OpenAI by default
- Tiptap for rich-text note editing
- shadcn/ui, Radix UI, and Tailwind CSS for UI
bun install
bun run doctor:self-host
bun devCopy .env.example to .env.local and fill in the Convex, auth, and OpenAI values first.
The web app runs at localhost:3000.
Graneri is desktop-first. For now, build the desktop app from source:
bun run dist:macThis currently creates a macOS Apple Silicon (arm64) package. Published desktop builds and broader platform support will come later.
Self-hosting requires your own Convex deployment, OAuth apps, and AI provider key. See .env.example.
Run this after filling env values:
bun run doctor:self-hostapps/web: browser app and shared rendererapps/desktop: Electron desktop appapps/marketing: public marketing siteconvex: Convex backend, auth, schema, actions, and HTTP routespackages/ai: shared AI runtime with explicit workspace exportspackages/platform: renderer-safe desktop bridge helperspackages/ui: shared UI primitives
Graneri ships with OpenAI as the default provider. Because the app uses the AI SDK, it can be adapted to other supported providers.
Read CONTRIBUTING.md before opening a pull request.
Graneri is licensed under the GNU Affero General Public License v3.0. See LICENSE.