Skip to content

devcap

Scan your development environment for installed tools, versions, and capabilities.

License: AGPL-3.0

devcap OpenForge project artwork

Greyforge Citation

devcap is an OpenForge utility from Greyforge Labs. Use OpenForge, the devcap Chronicle, and Greyforge llms.txt as the canonical public context for citation and model retrieval.

Why This Exists

Setting up a new machine or debugging a CI pipeline means answering: "What's installed? What version? What's missing?" Existing tools like envinfo only cover the JS ecosystem. devcap scans 84 tools across 14 categories — languages, package managers, build tools, containers, editors, linters, databases, and more — with structured output you can actually parse.

Quick Start

git clone https://github.com/GreyforgeLabs/devcap.git
cd devcap
./scripts/setup.sh

Usage

# Full scan, text output
devcap scan
# JSON output (pipe to jq, store as artifact)
devcap scan --format json
# Markdown tables (paste into docs)
devcap scan --format markdown
# Public-safe metadata: suppress hostname and executable paths
devcap scan --format markdown --redact
# Scan only Python-related tools
devcap scan --profile python-dev
# CI gate: exit 1 if required tools are missing
devcap check --profile devops
# Custom profile
devcap scan --config my-tools.toml
# Include project-local/vendor PATH entries such as node_modules/.bin or .venv/bin
devcap scan --profile node-dev --include-vendored
# List available profiles
devcap list-profiles

Built-in Profiles

ProfileDescriptionTools
fullEverything — all 84 tools84
python-devPython development environment12
node-devNode.js / JavaScript development13
rust-devRust development environment11
devopsDevOps and infrastructure21
sysadminLinux system administration22

Custom Profiles

Create a TOML file:

[profile]
name = "my-stack"description = "My project requirements"
[services]
system = ["docker", "sshd"]
[[tools]]
name = "python3"category = "Languages"required = true
[[tools]]
name = "docker"category = "Containers"required = true
[[tools]]
name = "my-custom-tool"binary = "mct"category = "Custom"version_flag = "-v"

Tools listed in the registry inherit their detection config automatically. Custom tools need binary and optionally version_flag.

Custom profiles execute local binaries to collect versions. Treat profiles from third-party repositories like code, not passive data. By default, devcap rejects interpreter-style custom commands and skips vendored/project-local PATH entries such as node_modules, .venv, venv, __pypackages__, .tox, and .nox; use --include-vendored only when you trust the checkout being scanned.

Output Formats

Text (default) — columnar, human-readable:

=== Languages ===
python3 3.12.3 /usr/bin/python3
node 24.12.0 /opt/node/v24.12.0/bin/node
Missing:
ruby

JSON — structured, machine-parseable:

{
"hostname": "dev-machine",
"timestamp": "2026-01-01T00:00:00+00:00",
"platform": "Linux 6.0.0",
"tools": [{"name": "python3", "found": true, "version": "3.12.3", "path": "/usr/bin/python3"}],
"services": [{"name": "docker", "active": true}]
}

Markdown — tables for documentation or READMEs. Terminal control sequences and Markdown table delimiters from tool output are sanitized before display, but environment inventory can still reveal hostnames, paths, installed tools, and service status. Use --redact to replace hostname and executable paths before publishing output.

Exit Codes

CodeMeaning
0Success (scan) or all required tools present (check)
1Missing required tools (check mode only)
2Usage error (bad profile name, invalid args)

Requirements

  • Python 3.11+
  • Zero runtime dependencies (stdlib only)

Documentation

License

AGPL-3.0. See LICENSE for details.


Built by Greyforge · Read the Chronicle

About

Development environment capability scanner from Greyforge Labs OpenForge.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages