DevSecOps toolkit for AI-assisted secure development
This guide follows the same scanner onboarding anchors as README.md.
./scripts/run-scan.sh
Expected output: security scan starts and creates scan-report.json in the project root.
git clone https://github.com/Twodragon0/claudesec.git
cd claudesec
./scripts/run-scan.sh
./scanner/claudesec scan -d .
./scanner/claudesec scan --category cloud
./scanner/claudesec scan --severity high,critical
./scripts/setup.sh /path/to/project
Expected output: workflow templates and reusable actions are copied into the target repository.
./scripts/setup.sh /path/to/project
templates/prowler.ymltemplates/security-scan-suite.ymltemplates/codeql.ymltemplates/dependency-review.yml.github/actions/token-expiry-gate.github/actions/datadog-ci-collectCLAUDESEC_STRICT_SSOCLAUDESEC_TOKEN_EXPIRY_GATE_MODECLAUDESEC_TOKEN_EXPIRY_PROVIDERSCLAUDESEC_TOKEN_EXPIRY_STRICT_PROVIDERSexport OKTA_OAUTH_TOKEN="<okta-oauth-access-token>"
./scanner/claudesec scan -c saas
Expected output: SaaS checks run with OAuth-first paths; strict mode (if enabled) fails on missing required scopes.
Okta automation should prefer scoped OAuth tokens over SSWS tokens.
OKTA_OAUTH_TOKENOKTA_API_TOKENCLAUDESEC_STRICT_OKTA_SCOPES=1CLAUDESEC_OKTA_REQUIRED_SCOPESexport OKTA_ORG_URL="https://dev-123456.okta.com"
export OKTA_OAUTH_TOKEN="<okta-oauth-access-token>"
export CLAUDESEC_OKTA_REQUIRED_SCOPES="okta.users.read,okta.policies.read,okta.logs.read"
export CLAUDESEC_STRICT_OKTA_SCOPES=1
./scanner/claudesec scan -c saas
See Okta OAuth guidance.
./scanner/claudesec dashboard --serve --host 127.0.0.1 --port 11665
Expected output: dashboard is generated and served locally at http://127.0.0.1:11665.
./scanner/claudesec scan -c saas
export GH_TOKEN_EXPIRES_AT="2026-04-30T08:30:00Z"
export OKTA_OAUTH_TOKEN_EXPIRES_AT="2026-04-30T09:00:00Z"
export CLAUDESEC_TOKEN_EXPIRY_WARNING_24H="24h"
export CLAUDESEC_TOKEN_EXPIRY_WARNING_7D="7d"
./scanner/claudesec dashboard --serve --host 127.0.0.1 --port 11665
DD_API_KEY=<your-dd-api-key> DD_APP_KEY=<your-dd-app-key> DD_SITE=datadoghq.com ./scanner/claudesec dashboard
KUBECONFIG or kubeconfig in .claudesec.yml, the scanner auto-discovers from conventional paths: configs/dev/kubeconfig, configs/staging/kubeconfig, ./kubeconfig (relative to the project). Prefer a relative path in .claudesec.yml (e.g. kubeconfig: configs/dev/kubeconfig) so the repo stays portable.kubectl oidc-login (exec auth), run kubectl get nodes once to complete browser sign-in, then run claudesec scan -c prowler or claudesec dashboard -c prowler. The scanner will wait up to 45s for OIDC login when it detects an oidc-login context.