secfoo
Turn any AI coding agent into a disciplined security reviewer.
Same standards, same report, every run.
Website · Getting started · CLI · Docs
Point Claude Code, Cursor, Antigravity, Gemini CLI, or Codex at a target.
Pick architecture review, threat modeling, SAST, and the rest of the catalog.
Browse every result in a local dashboard — secfoo serve, on your machine.
pip install secfoo
secfoo run --skill sast --target https://github.com/org/repo --agent claude
secfoo serve
You need an agent CLI already installed and authenticated
(--agent claude|agent|agy|gemini|codex), or an API key with the built-in
api agent — see Install.
A 30-second look at the dashboard
Screenshots are from a real local secfoo serve against public vulnerable-app targets.
What you get
- A skill is a brief, not a parser. secfoo hands your coding agent a structured prompt and a target, then collects a report in a fixed shape.
- One dashboard for the program. Coverage, dispositions, STRIDE, design verdicts, and findings across every project you have scanned.
- Local first. Runs and
secfoo servestay on your machine. Optionalsecfoo cloud loginsyncs to an org portal that is not in this repo. - Concurrent by default. Several
--skillflags run at the same time. - CI-ready.
--fail-on high,--max-cost 2.00,--json, and distinct exit codes for "the scan broke" vs "policy failed". Details in docs/REFERENCE.md.
Activity catalog
| Activity | Skill ID |
|---|---|
| Security Architecture Review | security-architecture-review |
| Threat Modeling | threat-modeling |
| SAST — Static Code Analysis | sast |
| SCA — Reachability & Upgrade Triage | sca-reachability |
| Secret Scanning | secret-scanning |
| Prompt Review | prompt-review |
| Deployment Readiness | deployment-readiness |
| Responsible AI Compliance | responsible-ai-compliance |
Run one, or several together. What each report actually contains is in docs/REFERENCE.md.
Install
pip install secfoo # PyPI, Python 3.10+
npm install -g @rakfortltd/secfoo # npm, no Python needed
docker run --rm ghcr.io/rakfortltd/secfoo --help
No agent CLI? Use an API key:
pip install "secfoo[api]"
export OPENAI_API_KEY=... # or ANTHROPIC_API_KEY / GEMINI_API_KEY
secfoo run --skill sast --agent api --target https://github.com/org/repo
Universal install scripts, standalone binaries, CI flags, spend tracking,
and configuration live in docs/REFERENCE.md.
Developing this repo: pip install -e ".[dev]".
Learn more
- docs/REFERENCE.md — catalog, dashboards, assessments, config, distribution
- Getting started
- CLI reference
- Running an assessment
- Editions
Contributing
PRs welcome — see CONTRIBUTING.md and CODE_OF_CONDUCT.md. Security issues go through SECURITY.md, not a public issue.
Metadata
Release files for secfoo 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| secfoo-0.3.1.tar.gz | 233.6 kB | Without provenance | Details for secfoo-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| secfoo-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for secfoo-0.3.1-py3-none-any.whl |
Total release size: 549.7 kB
Release files / secfoo-0.3.1.tar.gz
| Download URL | secfoo-0.3.1.tar.gz |
|---|---|
| Size | 233.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
54fc14bc6386920d5abe58f1d272d3152b26b92a5acb7dee392501855dc3de31
|
|
BLAKE2b-256 checksum How to use checksums |
029a108a538a0778552cb43859d77216d3b6a27db3a7ddc60fc737613bc5d2e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Release files / secfoo-0.3.1-py3-none-any.whl
| Download URL | secfoo-0.3.1-py3-none-any.whl |
|---|---|
| Size | 316.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4da9b99215c3524d15aff53e588c03b61c366567ccf37c4d8a9a284240d8bc2a
|
|
BLAKE2b-256 checksum How to use checksums |
d9b8f528ee6f79ac04d63a997c229e8779820eed91a9c1cff37b8607c2dba0a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Security for secfoo 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.