Argus Argus

Open source · Self-hosted · Apache 2.0

Argus reviews your code. And learns from you.

An open-source application security agent that knows your stack, your risk tolerance and the exceptions you already granted.

Read the docsArgus on GitHub

  1. anything worth my time in payments?
  2. Yes. Orders load by id with no ownership check. You told me support agents share one service account, so any agent can read any customer’s order.
  3. that is worse than the scanner said.
  4. The scanner cannot know who your agents are. I filed it high.

The review

It reviews your code.

Open a pull request and Argus reviews it. No CI to wire up, no job to add. Real scanners run as tools, and it works through what they found.

It reads the whole tree, not just the diff.

Measured once, on an API built to be vulnerable: it found every broken-authorization flaw in it and reported nothing that was not there. One benchmark, one class of flaw.

How reviews on GitHub work

payments-api#128internal/orders/handler.go

  1. 41id := chi.URLParam(r, "id")
  2. 42order, err := h.orders.ByID(ctx, id)
  3. 43if err != nil {
  4. 44 return err
  5. 45}
  6. 46return writeJSON(w, order)
  1. argus[bot]medium

    Broken authorization. The handler returns any order by id, and nothing checks that the caller owns it.

Your context

It learns from you.

Answer on the thread. The exception you already granted, the account four teams share, the reason this one endpoint is different.

Say it once. Every review after that starts from there.

payments-api#128internal/orders/handler.go

  1. 42order, err := h.orders.ByID(ctx, id)
  1. argus[bot]medium

    Broken authorization. The handler returns any order by id, and nothing checks that the caller owns it.

  2. you

    argus, our support agents all share one service account. Does that change this?

The argument

Argue with it.

A report is a list. This one answers, moves its own finding when you give it a reason, and says so when you are wrong.

A colleague, not a toolbox.

payments-api#128internal/orders/handler.go

  1. 42order, err := h.orders.ByID(ctx, id)
  1. you

    argus, our support agents all share one service account. Does that change this?

  2. argus[bot]high

    Then it is worse than I said. One shared account means any agent can read any customer’s order. And I will remember who your agents are.

memorysupport agents share one service account

Trust

It reads your branch. Here is the rest.

  • A pull request cannot give orders.

    The code under review is data. Nothing it contains directs the agent, and nothing it says is written back to what your organization knows.

  • Scanners never leave the checkout.

    Review tools read the tree they were pointed at, not the machine Argus runs on.

  • What it knows stays where it runs.

    Your identity, memory and context documents never leave your instance, and anything Argus posts in public has to be grounded in the tree it just read.

Apache 2.0, and it runs on your own infrastructure. Which is the only claim on this page that matters: read it, run it on a repository you own, and judge it there.

What a review is allowed to do

Your tools

Ask it from the AI you already use.

Argus speaks MCP, so the assistant already open on your machine can consult it. It hands over the question, Argus answers out of what your organization knows, and the answer arrives where you were working.

Your organization's knowledge never leaves Argus.

  • Claude Code
  • Codex
  • Cursor
  • OpenCode
  • anything that speaks MCP

Examples of clients, not a supported list. The protocol is the contract, and Argus certifies nobody's client.

How the MCP channel works

Claude Codemcp

  1. you

    ask argus if we can log the raw webhook body

  2. argus

    Not that one. You told me it carries card numbers, and your secrets live in Vault rather than in logs. Log the event id and reference it.

Your AI

Use your own AI.

Argus ships no model. Point it at whatever speaks the protocol: a hosted API, or something running on hardware you own.

Run it on your own machines and your code never leaves them.

Examples of servers that speak it, not a supported list. Argus implements the protocol and certifies nobody's server.

What Argus needs from a model

  • OpenAI
  • Ollama
  • Gemini
  • vLLM
  • DeepSeek
  • LM Studio
  • Mistral
  • Groq
  • OpenRouter
  • Regolo