Skip to content

Notewright

Sync meeting notes, extract action items with an LLM, and file follow-ups in your task system. Headless, composed in TypeScript, deployed to your own Cloudflare account.

Self-hosted, keys stay yours

Notewright is a library, not a hosted service. You scaffold an instance and deploy it to your own Cloudflare account. No shared backend, and no provider keys ever leave your environment.

Pluggable sources and sinks

Compose exactly one notes source (Granola built-in) and one follow-up sink (Linear built-in) through a TypeScript-enforced defineApp. Swap in your own providers as separate npm packages.

Runs on the edge

Cloudflare Workers, Durable Objects, and D1 only. Sync runs on a cron, extraction runs through Cloudflare AI Gateway (bring your own key), and there is nothing else to operate.

Open core, AGPL

The full engine is AGPL-3.0-only. Fork it, overlay your own providers, and ship.

  1. A notes source (Granola) syncs meeting notes and transcripts into Cloudflare D1 on a schedule.
  2. The follow-up pipeline extracts action items with an LLM through Cloudflare AI Gateway.
  3. A follow-up sink (Linear) creates the resulting tasks in your task system.
  4. The notewright CLI drives and inspects a deployed instance over its HTTP API.

Head to the Introduction for the full picture, or jump straight to the Quick start.