Skip to content

Reads your code.Flags the risk.Shows the line.

Bishop reads every pull request on the repository you pick and comments with possible security holes and lawsuit risks, each with the file and line. During this beta, findings are unproven candidates for you to check, and Bishop doesn't open pull requests. Log and live-site monitoring are coming next.

Log in with GitHub

Free for one repo during the beta.

security precision · 6 of 7 on Juice Shop
~86%security precision · 6 of 7 on Juice Shop
files we didn't write
1,300files we didn't write

Measured on OWASP Juice Shop — real code neither of us wrote, including its flagship login SQL injection.

server/config.js:2DEMO REPO
- const STRIPE_SECRET_KEY = "sk_live_****3f2a";+ const STRIPE_SECRET_KEY = process.env.STRIPE_SECRET_KEY;
From Bishop's public demo repository. During this beta Bishop reports findings like this one; it doesn't change your code.

Benchmark on third-party code

Run on OWASP Juice Shop — 1,300 files neither of us wrote.

The full breakdown behind the number in the hero: Bishop run on a real app neither of us wrote, every finding hand-adjudicated, reported by category and never blended into one score.

Security detection

~86%

precision · R2 / R3 / R5 / R7

Caught the flagship login SQL injection, plus search SQLi, CSRF, and insecure auth cookies.

6 of 7 flagged were real; the one false positive was a route that already presence-checks its input.

Repeatability

100%

identical · R2, R3, R5, R7 · 3 fresh runs

In three fresh runs on the same commit, the rules reported here (R2, R3, R5, R7) returned identical findings.

Rules and parsers decide most findings; a language model makes the call for some possible SQL injection and unescaped HTML. Key candidates (R4) varied between those runs; they have since moved to fixed rules but haven't been re-measured.

Accessibility labels

38% → 88%

precision · L5

Label detection started at ~38%. Teaching it Angular Material's mat-label took it to ~88%.

We tune for the frameworks real apps use — and we tell you what we don't cover yet.

routes/login.ts:34CAUGHT · SQLi
models.sequelize.query(`SELECT * FROM Users  WHERE email = '${req.body.email}' ...`, { model: UserModel })
User input built straight into the query, no parameterization — found on Juice Shop by reading the code, then checked by hand. No exploit was run in this benchmark.

What we don't catch yet: Angular [innerHTML] template bindings, and a headless-Angular exploit harness — until it exists, an Angular XSS finding is reported as an advisory.

Every finding comes with the file and line. You decide what to fix.

What each finding gives you

Evidence on every finding

Each finding names the file and line and explains in plain language why it was flagged.

What to check

Each finding says what to check by hand. During the beta, findings are unproven candidates.

Past push protection

It reads git history and high-entropy strings, catches the key push protection missed, and always says rotate.

Nothing pushed

Bishop reads your code and comments on pull requests. During the beta it doesn't open pull requests or push to your repository.

From install to first comment in three steps

  1. 01

    Connect a repo

    Install the GitHub App and pick a repository in Bishop. It reads your code and git history.

  2. 02

    It reads each pull request

    Rules and parsers look for possible security holes and lawsuit-risk patterns. For some candidates, a language model makes the call.

  3. 03

    It comments with what it found

    A comment on the pull request with the file and line for each finding. You decide what to fix.

From the demo repo

Everything below is real, from Bishop's public demo repo — masked exactly as Bishop posted it. Fix pull requests like the one below are off during the beta.

DEMO REPO · FIX PRS OFF IN THE BETA

Exposed Stripe secret key

server/config.js:2

Open PR
-export const STRIPE_SECRET_KEY = "sk_live_****yqDv";+export const STRIPE_SECRET_KEY = process.env.STRIPE_SECRET_KEY;

Regression test

✗ before — not ok 1 - server/config.js reads STRIPE_SECRET_KEY from the environment, not a literal
✓ after — the app still boots {"booted":true,"status":200}

Rotate the key. This key already leaked — rotate it in the Stripe dashboard. Moving it to env does not un-leak it.

NEEDS A HUMAN

Exposed Resend API key

server/mailer.js:2

no verified patch after 2 attempt(s): env → the app's own tests fail on the patched code; env-fail-fast → the app's own tests fail on the patched code

PAST PUSH PROTECTION

Caught the key push protection missed

GitHub blocked the Stripe key on push. The openai project key (sk-proj-****8FW6) slipped through and stayed in history — Bishop read the history and flagged it, with a rotate warning.

Plus the advisories it could not turn into a fix, reported without a PR. See the demo repo

What Bishop does during the beta

  • Reads every pull request on the repository you pick.
  • Flags possible security holes and lawsuit-risk patterns — each with the file and line.
  • Explains each one in plain language — with what to check by hand.
  • Findings are unproven candidates — during the beta Bishop runs no exploits and opens no pull requests.

One free repository during the beta.

Free

Free

One repository during the beta.

  • 1 repository per GitHub installation
  • Findings on each pull request, with the file and line
  • A plain-language reason and what to check by hand
  • Reads git history for leaked keys and says to rotate them
Log in with GitHub

Paid plans are not available yet, and none can be bought during the beta.

The honest answers

Does Bishop merge code for me?

No. During this beta Bishop doesn't open pull requests, merge or push to your repository. It reads your code and comments on your pull requests.

Does Bishop fix the problems it finds?

Not during this beta. It reports each finding with the file and line, a plain-language reason and what to check by hand. Findings are unproven candidates, and automatic fixes are off.

Does an AI decide what counts as a finding?

Partly. Rules and parsers decide most findings. For some possible SQL injection and unescaped HTML, a language model makes the call on a short excerpt of the code, with detected keys masked, as described on the Privacy page.

What access does it need?

Read code and git history, write pull request comments, and create branches under sentinel/fix-* (not used during the beta). It cannot push to your default branch, merge, or touch issues, settings, secrets, or Actions.

A secret leaked. Does moving it to an environment variable un-leak it?

No. Moving a key to an environment variable stops it being in the code, but a committed key is already public in history. Bishop always tells you to rotate it.

Is the lawsuit-risk check legal advice?

No. It flags known risk patterns, such as personal data sent to a third party your privacy policy does not name. It is not legal advice and never says your app is safe.

How is my code handled?

Each scan uses a GitHub token limited to that one repository, and the token isn't stored. Keys Bishop detects are masked before anything is posted or sent to the language model. The Privacy page lists what is kept and who processes it.

What does it cost?

Bishop is free for one repository during the beta. Paid plans are not available yet, and none can be bought during the beta.

When can I use runtime monitoring?

Not during this beta. Log and live-site monitoring aren't part of it yet.

Put a second reader
on your repo.

Bishop reads your pull requests and comments with possible security holes and lawsuit risks, each with the file and line. You decide what to fix.

Free for one repo. During this beta Bishop doesn't open pull requests or push to your repository.