STATIC SECURITY ANALYSIS FOR AI SOFTWARE

Catch risky AI trust-boundary crossings before they ship.

SecChecker inspects AI applications, agents, MCP tools and LLM integrations for security-sensitive code paths. Local. Deterministic. No LLM judge.

$ pip install secchecker
$ secchecker . --type llm
AGENT SETUP

Use SecChecker with your coding agent.

Give Claude Code, Codex, Cursor or another coding agent a repeatable security check it can run after making changes.

CLAUDE CODECODEXCURSOROTHER
VIEW SKILL ↗
View full prompt
Use SecChecker as the deterministic security check for this repository.

1. If SecChecker is not available, install it with:
   pip install secchecker

2. Before completing changes that touch AI, agents, LLMs, MCP, prompts, tools, memory, model output, or AI credentials, run:
   secchecker . --type llm

3. When a machine-readable report is useful, run:
   secchecker . --type llm --format sarif --output secchecker_report.sarif

4. Treat SecChecker findings as deterministic evidence to inspect. Do not silently suppress, downgrade, or dismiss a finding without code evidence.

5. For each finding, explain:
   WHAT — what SecChecker detected
   WHY — why it matters
   WHERE — the file/location reported
   REVIEW — the smallest code area a developer should inspect

6. If you propose a fix, prefer the smallest safe change. Then rerun SecChecker and state whether the finding remains.

SecChecker owns the scan result. Explanations and remediation suggestions are advisory.
01WRITEBuild or generate code
→
02CHECKRun SecChecker
→
03REVIEWInspect the finding
→
04VERIFYRerun after the fix
01 / THE PRODUCT

One command. A security signal you can inspect.

Run SecChecker while you build or in CI. Findings stay close to the code and can be exported into the workflows your team already uses.

secchecker / recorded scan v0.5.1
$ secchecker . --type llm --format sarif --verbose --output secchecker_report.sarif

[*] Scanning: .
[*] Scan type: llm
[*] Format: sarif
[*] 4 finding(s) across 4 file(s)
[+] Report: secchecker_report.sarif
SELECTED FINDING / ACTUAL SARIF OUTPUT
HIGH LLM - Groq API Key
config/service.env · line 19 · path anonymized
LLM - Groq API Key (1 occurrence)

A credential pattern was detected. Review the value and how it is stored.

Recorded from a real repository with SecChecker 0.5.1 on 20 September 2026. File paths are anonymized; credential values are not included. Playback does not run a scan in your browser. Download the anonymized SARIF report ↗

LOCALRun against the repository on your machine.
CI READYUse reports and exit codes in automated checks.
OUTPUTSCLI · JSON · Markdown · XML · SARIF · HTML
02 / THE FINDING

Start with the finding. Open the evidence when you need it.

The default view stays concise. Experienced developers can inspect the exact evidence without changing tools.

HIGHREVIEW
LLM · CREDENTIAL

AI provider credential detected in configuration.

WHATLLM - Groq API Key
WHYA credential value needs review before sharing or shipping.
WHEREconfig/service.env:19
REVIEWInspect the reported value and how it is stored.
03 / NO LLM JUDGE

Security findings should not depend on another model's opinion.

SecChecker produces repeatable static findings. An AI coding agent can explain a result or suggest a change, but it does not own the scan verdict.

CODE→SECCHECKER→EVIDENCE→DEVELOPER Optional afterwards: AI explanation or remediation suggestion.
04 / WHAT IT CHECKS
01

Prompt & context

Flags risky transitions where untrusted content can influence privileged AI context.

02

MCP & tools

Checks tool descriptions, metadata and tool-result handling around sensitive actions.

03

Model output

Surfaces cases where AI-controlled output can flow into consequential execution paths.

04

Agent memory

Looks for unsafe persistence of user-controlled or otherwise untrusted content.

05

Agent control flow

Highlights selected patterns that can make autonomous behaviour harder to constrain or review.

06

AI credentials

Identifies selected credential-handling risks around AI provider integrations.

05 / EVALUATION

Evaluation should expose blind spots, not hide them.

SecChecker is tested against expected detections, safe counterparts, harder variations and real open-source code. These checks are kept distinct so one strong result cannot mask a weakness elsewhere.

PUBLIC PRINCIPLE Repeatable · offline · deterministic
KNOWN CASES

Does it keep catching what it already knows?

Regression checks protect expected behaviour from silently breaking between releases.

SAFE COUNTERPARTS

Does the safer form stay clean?

Safe examples are used to catch obvious overreach and reduce noisy detections.

HARDER VARIANTS

What happens when the code shape changes?

Adversarial variations are used to expose where deterministic rules stop generalising.

REAL CODE

Does it survive outside a synthetic example?

Real open-source AI code is checked to reveal practical false positives and coverage gaps.

NO FINDINGS ≠ SECURE APPLICATION A static scan is one source of evidence. Findings can be false positives or false negatives, and a clean result is not proof of security.
06 / WHERE IT FITS

Put the check where developers already make decisions.

SecChecker is designed for the pre-deployment path: fast enough to run while building, structured enough to use in review, and explicit about what still needs runtime controls.

BUILD

Run locally

Check the repository before opening a pull request.

$ secchecker . --type llm
REVIEW

Gate in CI

Emit machine-readable findings and keep the result next to the code change.

SARIF · JSON · exit codes
BOUNDARY

Know what it is not

SecChecker does not replace code review, threat modelling, red-team testing or runtime policy controls.

STATIC ANALYSIS ≠ RUNTIME ENFORCEMENT
07 / START HERE

Choose the shortest path into SecChecker.

LOCAL SCAN

One command.

pip install secchecker
CODING AGENT

Give the agent the check.

Use the compact agent setup without changing who owns the security result.

CI / REVIEW

Export the result.

SARIF · JSON · Markdown · XML · HTML GITHUB ↗