projd
projd scans a software project directory and prints a structured project
report.
When stdout is an interactive terminal, projd scan renders a table-first
terminal report. When stdout is redirected or --output is used, Markdown and
JSON remain stable for automation.
Terminal output has four styles:
table: default human-readable report with structured tables.compact: table columns without box borders, useful for CI logs.plain: legacy line-oriented output with stable ASCII-friendly formatting.cinematic: static sci-fi HUD report for high-signal terminal screenshots and demos.
cinematic is intentionally static. It keeps the same scanner data and respects
--color, --no-unicode, and --width, while rendering a neon-noir style
header, signal matrix, language spectrum, telemetry grid, and alert feed.
projd tui <path> opens a full-screen live terminal HUD built with Ratatui and
Crossterm. It animates the health core, signal matrix, language spectrum,
telemetry grid, and alert feed from the same scan model. Keyboard controls are:
q/Esc to quit, r to rescan, and Tab to rotate panel focus. Use
projd tui <path> --snapshot to render one deterministic frame to stdout for
tests, demos, or non-interactive terminals.
The report aggregates repeated build systems, dependency ecosystems, code line statistics, and test commands so workspace scans stay compact.
The terminal report also shows source-control state, license type, and known CI
providers detected by projd-core.
projd-core now provides a shared project health summary with a grade, score,
risk level, and signal evidence. The CLI renders that same model in terminal,
Markdown, and JSON output so future GUI views do not need separate health logic.
By default, repeated risks are grouped by code and severity. Use --details
to expand detail tables for CI files, dependency manifests, license paths, test
sources, and individual risk findings.
Color output is semantic: headings, status values, bars, lockfile counts, and
risk severities use different colors when --color enables ANSI output.
The scanner implementation lives in projd-core so the CLI and GUI share the
same project model.