dukotah/injectkit — LLM prompt-injection scan

Red-team your own LLM application for prompt injection in CI. Runs the injectkit attack corpus against an endpoint you own or are authorized to test, emits SARIF for GitHub code-scanning, and fails the build on a severity threshold. Defensive / authorized-use only.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
configPath to a .injectkit.yaml config file (relative to the workspace). Optional; if omitted, injectkit looks for .injectkit.yaml in the repo root. CLI inputs below override values from the file.no""
targetTarget kind: "anthropic", "http", "mcp", or "mock". "mock" runs the built-in deterministic target (no network, no key) and is handy for trying the Action out.no""
urlEndpoint URL for the http target (ignored for other kinds).no""
modelModel id for the target (e.g. claude-opus-4-8).no""
judgeEnable the optional Anthropic LLM judge for sharper grading ("true"/"false"). Requires anthropic-api-key. Off by default.nofalse
judge-modelModel id for the LLM judge (default claude-haiku-4-5).no""
fail-onMinimum finding severity that fails the build: info | low | medium | high | critical. Default high.nohigh
techniquesComma-separated list of techniques/tags to include (e.g. "direct_injection,jailbreak"). Default: all bundled attacks.no""
formatReport format written to the output file: terminal | json | markdown | sarif | html. Default sarif (for code-scanning upload).nosarif
outPath to write the report file. Default injectkit-results.sarif.noinjectkit-results.sarif
upload-sarifUpload the SARIF result to GitHub code-scanning ("true"/"false"). Only effective when format is sarif. Requires the calling workflow to grant `security-events: write`. Default true.notrue
anthropic-api-keyANTHROPIC_API_KEY for the anthropic target and/or the LLM judge. Pass a repository secret; never hard-code. Not needed for http/mock targets.no""
injectkit-versionVersion/spec of injectkit to install (passed to pip). Default installs the copy checked out in the workspace if present, else the latest release from PyPI.no""
working-directoryDirectory to run the scan from (where .injectkit.yaml lives).no.
namedescription
exit-codeThe injectkit scan exit code (0 = under threshold, non-zero = failed).
report-pathAbsolute path to the written report file.
sarif-pathPath to the SARIF file when format is sarif (else empty).
totalTotal number of attacks run.
failedNumber of attacks that succeeded against the target (findings).
highest-severityHighest finding severity, or 'none'.