Nº PRIVACY

Analysis stays on your machine. Optional features are consent-gated; none send source. This marketing site uses first-party Pulse (page views and install actions) at pulse.shaileshjha.in — not the product.

Privacy

Prism analyses your code on your machine. There is no Prism account, no Prism server, and no Prism cloud.

The short version

QuestionAnswer
Does my source code leave my machine?No.
Is there telemetry, analytics, or crash reporting?No.
Is there an account, licence check, or update ping?No.
Does Prism ever make a network request?Only for a purpose you have explicitly granted, listed below.
Where is my data stored?.prism/ inside the repository you opened.

What is proven, not just claimed

packages/core/src/no-network.integration.test.ts runs the whole analysis surface — index, dependency and knowledge graphs, DNA, health, repository map, blast radius, safe delete, explain, explore, test impact, and the engineering, testing, security and backend reports — with fetch and net.Socket.prototype.connect replaced by traps that record the attempt and throw. Any outbound call fails the build and names the exact call site.

The suite also verifies that the traps themselves fire. Without that, it would pass just as happily if they had never been installed, which is the most dangerous kind of green.

It runs as part of bun run verify:milestone, so a future network call cannot land quietly.

The network requests Prism can make

Each is off until you turn it on, individually, in Settings → Privacy. Turning one on says nothing about the others.

PurposeWhat happensWhere it goes
network.githubFetches workflow runs and pull request metadata for your repository's remoteapi.github.com
network.github-userDispatch reads your GitHub PRs, reviews, and notificationsapi.github.com
network.pagespeedSends a URL you choose and reads back Core Web Vitalswww.googleapis.com
network.package-installInstalls the Lighthouse CLI into .prism/tools before measuringyour configured npm registry
network.git-remoteRuns git fetch --prune so branch counts are current, using your existing git credentialsyour repository's git remote
network.gravatarRequests contributor avatars, revealing a hash of each committer's emailgravatar.com
network.linearDispatch reads issues assigned to youapi.linear.app
network.jiraDispatch reads unresolved issues assigned to youapi.atlassian.com
network.slackDispatch reads mentions and tracked channels/groups; does not postslack.com
network.notionDispatch searches pages shared with the connected integrationapi.notion.com
network.google-calendarDispatch reads today's calendar eventswww.googleapis.com

run.local-build is not a network purpose, but it is consented the same way: it runs your repository's own build script so bundle weight can be measured.

Your decisions live in .prism/consent.json. Nothing else — not the CLI, not the MCP server, not a direct SDK caller — can override them, and no caller can assert consent on your behalf.

About Gravatar specifically

Before version 0.1, Prism fetched contributor avatars from gravatar.com with no toggle at all. That disclosed who works on this repository to a third party nobody had opted into. Avatars are now drawn locally from a deterministic gradient and initials; the remote lookup is opt-in and off by default. If you previously enabled the old "allow network integrations" switch, it was not carried over to Gravatar — that switch never mentioned it.

What Prism stores, and where

Everything is under .prism/ in the repository you opened:

PathContents
.prism/cache.dbThe SQLite index: file metadata, symbols, and graph edges derived from your code
.prism/consent.jsonYour consent decisions
.prism/history/Health scores over time
.prism/tools/Locally installed measurement tools, if you consented to that
.prism/dispatch/Dispatch jobs, config, memories (gitignored)

No credential of any kind is written to .prism/.

Prism holds no third-party credentials. Earlier versions ran an OAuth broker at auth.prismhq.in so Dispatch could read Slack, Linear, Jira, Notion, GitHub and Google Calendar. That is gone, and the service is retired. Dispatch makes no network calls at all.

Those services are now reached by your agent window — Cursor or Claude Code — using connectors you authenticated there. Prism reads your editor's plugin and MCP manifests to learn which connectors exist: names, descriptions and skill lists only. It does not read tokens, secrets or OAuth client secrets, and discovery opens no network connection. When a briefing needs Slack, Prism names the section and your agent makes the call.

Prism offers to add .prism/ to your .gitignore. It contains no secrets, but it is derived build output and does not belong in version control.

Decisions of record

  • No cloud sync, ever (Q-009, resolved 2026-08-05). The architecture stays local-first; there is no roadmap item that changes this.
  • No telemetry, not even opt-in anonymous counters (Q-010, resolved 2026-08-05).

See ADR-0024 for the consent model and the threat model for what Prism executes and why.