Skip to main content

Developer workstation security and hygiene sweeps -- secrets, deps, gitignore, SSH keys, AI editor configs, cargo publish CI, and more

Project description

devguard

devguard scans your developer workspace for security and hygiene issues. It runs a set of sweeps -- automated checks across local repos, SSH keys, dependencies, and more -- and reports findings in one pass.

$ devguard sweep
local_dev:                    142 repos scanned, 0 findings
public_github_secrets:        18 repos scanned, 0 findings
local_dirty_worktree_secrets: 47 repos scanned, 0 findings
gitignore_audit:              3 repos with gaps (1 public)
dependency_audit:             12 vulns across 5 repos (2 critical)
ssh_key_audit:                1 weak key, 2 stale GitHub keys
ai_editor_config_audit:       47 repos checked, 2 errors

Quick start

Requires Python >= 3.11.

pip install devguard
devguard doctor                # check prerequisites (trufflehog, cargo-audit, etc.)
devguard sweep                 # run all enabled sweeps

No spec file is required. Without one, devguard uses built-in defaults. Create devguard.spec.yaml to customize which sweeps run and their parameters.

Sweeps

Security

Sweep Description
public_github_secrets Scan public GitHub repos for committed secrets (TruffleHog).
dependency_audit Check repos for known vulnerabilities in dependencies (npm audit, pip-audit, cargo-audit).
ssh_key_audit Audit local SSH keys for weak algorithms, short key lengths, and stale GitHub deploy keys.
local_dirty_worktree_secrets Scan uncommitted changes in local repos for secrets before they reach a commit.

Hygiene

Sweep Description
gitignore_audit Find repos missing .gitignore or lacking expected ignore patterns for their language.
ai_editor_config_audit Check AI editor configs (Cursor rules, Claude settings) for consistency across repos.
cargo_publish_audit Verify Rust crates have publish CI, correct metadata, and no publish blockers.
publish_audit Audit PyPI and npm repos for correct CI publish pipelines, OIDC trusted publishing, and version/license consistency.

Analysis

Sweep Description
project_flaudit LLM-driven audit (OpenRouter/Gemini): README drift, test gaps, rule violations.

Workspace

Sweep Description
local_dev Scan local repos for accidentally committed large files, binaries, and dev artifacts.

Configuration

Copy devguard.spec.example.yaml to devguard.spec.yaml and edit to taste. The spec file controls which sweeps are enabled, their parameters, and output paths.

Most sweeps work with zero configuration. Sweeps that need external access:

  • public_github_secrets: requires GITHUB_TOKEN (for GitHub API).
  • project_flaudit: requires OPENROUTER_API_KEY.
  • ssh_key_audit with check_github: true: requires GITHUB_TOKEN.
  • dependency_audit: requires audit tools installed (npm, pip-audit, cargo-audit).

Environment variables can be set in .env or exported in your shell.

Pre-commit hooks

devguard ships .pre-commit-hooks.yaml with three hooks: devguard-gitignore, devguard-ai-config, and devguard-secrets. Add to your .pre-commit-config.yaml:

- repo: https://github.com/arclabs561/devguard
  rev: main
  hooks:
    - id: devguard-gitignore
    - id: devguard-secrets

Library usage

Sweep modules can be imported directly for scripting or integration:

from devguard.sweeps.ssh_key_audit import audit_ssh_keys
from devguard.sweeps.dependency_audit import audit_dependencies

Development

pip install -e ".[dev]"       # editable install for development
pytest
ruff check .
mypy devguard/

License

MIT

Legacy: Service monitoring (npm, Vercel, Fly.io, GitHub)

devguard originally provided unified monitoring for npm packages, GitHub repositories, and Fly.io/Vercel deployments. This functionality still exists but is secondary to the sweep system.

Monitored services

  • npm packages for security vulnerabilities
  • GitHub repositories for Dependabot security alerts
  • Fly.io deployments for health status
  • Vercel deployments for deployment status
  • Container/Dockerfile security best practices
  • Secret scanning (TruffleHog or regex fallback)
  • AWS IAM security posture for satellite nodes
  • AWS Cost monitoring with budget alerts
  • API usage/credits for LLM providers (OpenRouter, Anthropic, OpenAI, Perplexity, Groq)
  • Firecrawl API credit usage
  • Tavily API usage tracking
  • Tailscale mesh network health
  • Domain/SSL certificate expiry
  • Docker Swarm cluster health
  • Red team security testing for deployment endpoints
  • Web dashboard for real-time monitoring
  • MCP server for AI agent integration

Legacy commands

devguard check           # run monitoring checks
devguard check --watch   # continuous monitoring
devguard mcp             # start MCP server
devguard dashboard       # start web dashboard
devguard discover        # auto-discover resources to monitor
devguard config          # show current configuration
devguard auth gh         # authenticate with GitHub
devguard auth-status     # show auth status for all services

Legacy configuration

Set environment variables in .env:

GITHUB_TOKEN=your_github_token
VERCEL_TOKEN=your_vercel_token
FLY_API_TOKEN=your_fly_token
SNYK_TOKEN=your_snyk_token
GITHUB_ORG=your_org_name
NPM_PACKAGES_TO_MONITOR=package1,package2
GITHUB_REPOS_TO_MONITOR=owner/repo1,owner/repo2
FLY_APPS_TO_MONITOR=app1,app2
VERCEL_PROJECTS_TO_MONITOR=project1,project2
DASHBOARD_ENABLED=false
DASHBOARD_HOST=0.0.0.0
DASHBOARD_PORT=8080
DASHBOARD_API_KEY=your_secure_key

Architecture (legacy)

  • devguard: Main orchestrator managing checkers and reports
  • BaseChecker: Abstract base class for all checkers
  • Reporter: Output formatting, webhooks, email delivery
  • Checkers: NpmChecker, GitHubChecker, VercelChecker, FlyChecker, ContainerChecker, SecretChecker, AWSIAMChecker, RedTeamChecker

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devguard-0.2.3.tar.gz (277.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devguard-0.2.3-py3-none-any.whl (177.5 kB view details)

Uploaded Python 3

File details

Details for the file devguard-0.2.3.tar.gz.

File metadata

  • Download URL: devguard-0.2.3.tar.gz
  • Upload date:
  • Size: 277.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devguard-0.2.3.tar.gz
Algorithm Hash digest
SHA256 e2c3c39c4ca3c106cd3be17384ad698ee5e97aac151f918c83ad7ce9d56d1324
MD5 14b02223c8b2e62420e38bae0c3277ea
BLAKE2b-256 1d3e72da20ab46d0acfdcb69d268c7c1a8219ae54d012b5fffeb5f2fe81de496

See more details on using hashes here.

Provenance

The following attestation bundles were made for devguard-0.2.3.tar.gz:

Publisher: publish.yml on arclabs561/devguard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devguard-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: devguard-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 177.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devguard-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 38bfc1a615ff0f8cbec55bc1a6dd7207752467051068abf018732940ac27c3e0
MD5 88d644efe25b9b9a876fd9d5e7d199fa
BLAKE2b-256 461861876505325684d878ac31aba07998726fb165f2bdd0769ebb670cd8e8ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for devguard-0.2.3-py3-none-any.whl:

Publisher: publish.yml on arclabs561/devguard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page