Skip to main content

Universal Dev Security (UDS)

One Security System. Every Project.

UDS is an open-source, local-first security toolkit for developers. It runs industry-standard scanners on any project, normalizes their results into one schema, enforces a central security policy for Git and AI coding agents, and produces a dark, self-contained HTML security dashboard.

Status: 1.0.0 — first stable release. See DEVELOPMENT_STATUS.md for verified functionality, known issues and test results. UDS reports what its scanners find; a clean result is never proof that a project is secure.

What it does

Area Capability
Secrets Gitleaks directory, staged and outgoing-commit scanning (values always redacted)
Code Semgrep static analysis with technology-based rule packs (metrics disabled)
Dependencies OSV-Scanner and Trivy vulnerability scanning
Configuration Trivy misconfiguration scanning (Dockerfile, Kubernetes, Terraform, …)
Policy Central engine: approval for git push, denial of hook bypasses and secret writes, project rules can only add restrictions
Git pre-commit / pre-push hooks that block secrets (fail closed)
AI agents Claude Code PreToolUse hooks; generic uds guard JSON protocol for any agent
GitHub Generated PR workflow with checksum-verified scanners and SARIF upload
Reports JSON, SARIF 2.1.0 and an offline dark HTML dashboard with filters, history and scan comparison
Recovery Checkpoints before every UDS change; rollback that never clobbers later user edits
Fixes Low-risk, reversible fixes verified by your test suite, rolled back automatically if tests fail

Scanner states are explicit — clean, findings, not_installed, not_applicable, skipped, error — and the overall status becomes incomplete when an applicable scanner did not run. Severity is shown only when the scanner supplies it or a published scale (CVSS) defines it; everything else is unclassified. No security score is invented.

Quick start

Requirements: Python 3.11+, Windows, Linux or macOS. Git is recommended.

# Windows (from a release folder containing the wheel and SHA256SUMS)
.\scripts\install.ps1 -Wheel .\dist\1.0.0\universal_dev_security-1.0.0-py3-none-any.whl
# Linux / macOS
sh scripts/install.sh --wheel dist/1.0.0/universal_dev_security-1.0.0-py3-none-any.whl

Then, inside a project:

uds doctor                 # runtime, config and scanner availability (+ official install sources)
uds init                   # create .uds/config.toml (never overwrites)
uds scan                   # run applicable scanners, write JSON + HTML reports, record history
uds dashboard --open       # open the dark HTML dashboard
uds hooks install --apply  # block secrets at commit and push time
uds integrate claude-code --apply   # enforce the UDS policy inside Claude Code

Every command that changes files is a dry run by default and shows a diff; --apply creates a recovery checkpoint first. See docs/installation.md for scanner installation and upgrades, and docs/commands.md for all commands.

Documentation

Safety guarantees

  • No telemetry. The core never contacts the network; scanners' network use is documented and OSV-Scanner (which sends package names/versions to osv.dev) runs only with explicit approval.
  • UDS never installs scanners, never commits, never pushes and never publishes.
  • Existing configuration is merged, never silently overwritten; invalid files are left untouched.
  • Secret values, matched text and raw scanner output never appear in output, reports or history.
  • Global policies cannot be weakened by project configuration or AI tools.

Local Git hooks and AI-agent hooks are defense in depth — keep CI scanning and repository-level protections (for example GitHub push protection) enabled too.

Contributing and security

See CONTRIBUTING.md and SECURITY.md. Changes are listed in CHANGELOG.md.

License

Apache License 2.0. See LICENSE.

Metadata

Release files for universal-dev-security 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for universal-dev-security 1.0.0
File Size Uploaded Provenance Actions
universal_dev_security-1.0.0.tar.gz 129.2 kB With provenance Details for universal_dev_security-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for universal-dev-security 1.0.0
File Interpreter ABI Platform Actions
universal_dev_security-1.0.0-py3-none-any.whl Python 3 none any Details for universal_dev_security-1.0.0-py3-none-any.whl

Total release size: 220.4 kB

Release files / universal_dev_security-1.0.0.tar.gz

Download URL universal_dev_security-1.0.0.tar.gz
Size 129.2 kB
Tags Source
SHA-256 checksum
How to use checksums
184feae6bff3fe609fb2ff2c94c9bd39819f113694dee7b95f3e0f15b2f55f55
BLAKE2b-256 checksum
How to use checksums
41eae1adbb33f030cf7d336c67d3bffca59f8585a66eb5663bf3b116bd394364
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

Release files / universal_dev_security-1.0.0-py3-none-any.whl

Download URL universal_dev_security-1.0.0-py3-none-any.whl
Size 91.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d257478f346351fa19d9f23e70ac692c8fdbf5b9778501aed3574b06ae3bbcdf
BLAKE2b-256 checksum
How to use checksums
d3772c0c9bfbe09f70e6b9e69e27dce08d39aca4236755cbdafc37aae856a0f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

Security for universal-dev-security 1.0.0

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for universal_dev_security-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page