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.1 — stable. 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

New to UDS? The Getting started guide walks through installation, your first scan, reading the dashboard, fixing findings and turning on protection, with real example output.

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

python -m pip install universal-dev-security

The package on PyPI is identical to the assets of the GitHub release (same SHA-256). Prefer an isolated install? Use pipx install universal-dev-security, or the checksum-verifying installers described in docs/installation.md.

Install at least Gitleaks; uds doctor shows the official install command for every scanner. 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.1

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.1
File Size Uploaded Provenance Actions
universal_dev_security-1.0.1.tar.gz 133.2 kB With provenance Details for universal_dev_security-1.0.1.tar.gz

Built distribution (wheel)

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

Total release size: 224.8 kB

Release files / universal_dev_security-1.0.1.tar.gz

Download URL universal_dev_security-1.0.1.tar.gz
Size 133.2 kB
Tags Source
SHA-256 checksum
How to use checksums
da8233d48420f9f08b6398bcbdd06d620d4b4acf345b5b5629215ec119280596
BLAKE2b-256 checksum
How to use checksums
77f8073b2637f1f29d6941f439dafce00fcd86ee2427bff41eb0f6d443c7f902
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.1-py3-none-any.whl

Download URL universal_dev_security-1.0.1-py3-none-any.whl
Size 91.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fb2d706c5b4317974e9e0a66808b013621efcf0b6dfe36f52b58a6adfedcd68a
BLAKE2b-256 checksum
How to use checksums
ef250c96cbfa4fd9a5ddb1460f730ca2aa66313ad6a07de172716ecac05693ba
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.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.

Full provenance

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

Select from 2 files

Attestation for universal_dev_security-1.0.1.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.1 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