Skip to main content
Penumbra connects to the tools your work lives in. You connect a platform in your Penumbra workspace, and Penumbra syncs it, auto-models it as a graph (no hand-built shape), and reconciles across platforms — the meeting in Granola resolves to its Google Calendar event, the people and companies to their Attio records — so your tools become one brain you can query and build on.
Most platforms connect in your Penumbra workspace (the web app) through OAuth. Token-paste platforms (Granola, Attio) can also connect headlessly over REST with /v1/connections. Set one up in the workspace, or see the API reference.

How it works

1

Connect, in your workspace

Authenticate into the platform or add an API key, from your Penumbra workspace.
2

Sync and auto-model

Penumbra pulls the platform and models it as a graph — its native types and relationships — with no manual shaping. The raw records land on the mirror plane.
3

Reconcile

Penumbra connects the entities that recur across platforms, weaving your separate platform graphs into one.

Live platforms

Four platforms are auto-mapped today:
PlatformWhat it graphs
LinearIssues and projects
AttioCRM records — companies, people, deals
Google CalendarEvents and meetings
GranolaMeeting notes and transcripts
Coming next: Slack and Gmail. To enable a platform for your project, email shep@getpenumbra.ai.

Build on it

Once a platform is synced, the graph is yours to use:

Bootstrap a shape from the web

Separate from platform sync, and available via the API: point Penumbra at a URL and it crawls the site and proposes a shape from it. See Firecrawl.

Bring your own

Anything that produces structured data can feed Penumbra: extract it elsewhere, then capture it into the graph with pb.capture or pb.extract. Want a platform we have not connected yet? Tell us at shep@getpenumbra.ai.