Ask your codebase anything. Get answers with receipts. 

Synapse maps your repositories into a living graph and answers engineering questions with the exact files and lines as evidence.

Ask
example 1 / 3

Read-only GitHub App · Your code never trains models

QUESTIONS TEAMS ASK SYNAPSE

Where are refresh tokens rotated?Who can connect a GitHub repo?What breaks if I rename this column?Which services call the billing API?Where is rate limiting configured?Why does checkout retry twice?Where are refresh tokens rotated?Who can connect a GitHub repo?What breaks if I rename this column?Which services call the billing API?Where is rate limiting configured?Why does checkout retry twice?
What does this webhook do on uninstall?Which env vars does the API need?Where do we validate invitation tokens?Who owns the payments module?What changed in auth last sprint?How is a workspace kept isolated?What does this webhook do on uninstall?Which env vars does the API need?Where do we validate invitation tokens?Who owns the payments module?What changed in auth last sprint?How is a workspace kept isolated?

HOW IT WORKS

From repository to cited answer in three steps.

01

Connect GitHub

Install the read-only Synapse GitHub App and choose exactly which repositories it can see.

synapse-apiconnected
synapse-webconnected
02

We map the code

Every module, route, function and data model becomes a node in a graph that refreshes on each push.

modules
0
routes
0
models
0
03

Ask, get evidence

Ask in plain English. Every answer links to the files and line ranges it is built on.

1auth/auth.service.tsL128–139

PRODUCT

Context your team usually keeps in its head.

Answers with receipts

Every claim is backed by a file and a line range. When Synapse can't find evidence, it says so instead of guessing.

apps/api/src/modules/auth/auth.service.tscited · L133–134
128if (session.revokedAt) {
129 const recentlyRotated =
130 session.replacedById !== null &&
131 now.getTime() - session.revokedAt.getTime() < REFRESH_REUSE_GRACE_MS;
132
133 if (!recentlyRotated) {
134 await this.revokeFamily(session.familyId, now);
135 this.logger.warn(…);
138 }
139 throw new UnauthorizedException('Refresh token has been revoked.');

Living repo map

See how services, modules and data models connect — generated from code, never hand-drawn, never stale.

Change impact

NEXT

Before you merge: which routes, jobs and tables does this diff actually touch?

Onboarding on day one

New engineers ask Synapse “where does X happen?” instead of interrupting a senior for an hour.

DevOps signals

ROADMAP

Deploys, CI health and incidents, linked back to the exact code that caused them.

SECURITY

Built for code you can't afford to leak.

Read-only by design

The GitHub App reads contents and metadata. It can never push, merge or change settings.

Never used for training

Your code is not used to train models, and never passes through free-tier AI APIs.

Isolated per workspace

Every query is scoped to one workspace. Outsiders get a 404 — not even a hint a resource exists.

Verified events

Every GitHub webhook is HMAC-verified and processed exactly once.

Ship with context, not guesswork.

We're onboarding a small group of engineering teams as design partners. Early teams shape the roadmap.