DotDoctor is a Linux CLI utility for diagnosing development environment issues and checking available system updates.
- Development environment checks (binary availability, version checks, PATH integrity, shell config sanity, directory permissions)
- Live terminal dashboard and plain report mode
- Optional interactive auto-fix flow for actionable findings
- System dry-run update audit (
--sys) for Arch packages, AUR, Flatpak, firmware, and Oh-My-Zsh - System upgrade flow (
--sysup) with strict failure handling
- AUR parsing recognizes flagged packages, including out-of-date markers from AUR helper output
- Exit codes from update commands are handled strictly (
pacman/yay,flatpak,fwupdmgr) - Fatal network and mirror failures are treated as hard failures
- Mirror fallback is attempted when package sync fails with mirror/network symptoms
- Fatal update failures terminate with exit code
1
- Python
>=3.11 - Linux environment
- Optional system tools for extended checks and updates:
checkupdatesyayflatpakfwupdmgrcachyos-rate-mirrorsorreflector
Using local repository:
python -m venv .venv
source .venv/bin/activate
pip install -e .Install dev dependencies:
pip install -e .[dev]Run default scan:
dotdoctorRun profile explicitly:
dotdoctor scan --profile python-devRun without fullscreen UI:
dotdoctor scan --no-uiExport JSON report:
dotdoctor scan --json-output artifacts/report.jsonRun system dry-run checks:
dotdoctor --sysRun system upgrades:
dotdoctor --sysupDotDoctor supports YAML-based configuration and profiles.
- Default file:
dotdoctor.yml - Example file:
dotdoctor.example.yml - Override path:
--config /path/to/config.yml
Run tests:
.venv/bin/pytest --tb=shortsrc/dotdoctor/domain: entities, models, config schemas, portssrc/dotdoctor/application: use-cases and system update flowssrc/dotdoctor/infrastructure: check implementations and config loadingsrc/dotdoctor/cli: Typer commands and terminal renderingtests/: unit and integration test suites