Run diagnostics on your development environment β detect tools, check versions, verify configs, prescribe fixes.
Features β’ Install β’ Usage β’ Profiles β’ License
π© devdoctor β Development Environment Diagnostics
ββββββββββββββββββββββββββββββββββββββββββββββββ
π
2026-04-01 00:02 Β· mymachine
π₯οΈ System
ββββββββββββββββββββββββββββββββββββββββ
β System Info β Darwin 25.5.0 (arm64) Β· Python 3.14.3
β Shell β zsh (/bin/zsh)
β Homebrew β Homebrew 5.1.1
β Disk Space β 12Gi/228Gi used (36%) β 21Gi available
πΎ Languages & Runtimes
ββββββββββββββββββββββββββββββββββββββββ
β Python β Python 3.14.3
β Node.js β v23.11.0
β Go β go1.25.6 darwin/arm64
β Rust β rustc 1.92.0
π Version Control
ββββββββββββββββββββββββββββββββββββββββ
β Git β git version 2.49.0
β Git Config β user: you <you@email.com>
β SSH Keys β No SSH key found
ββββββββββββββββββββββββββββββββββββββββββββββββ
π Health Score: 88/100 Grade A
[ββββββββββββββββββββββββββββββ]
β Passed: 39 β Warnings: 3 β Failed: 0 Total: 44
- π©Ί Comprehensive Health Check β Scans 40+ items across 10 categories: system, languages, VCS, build tools, DevOps, editors, dev tools, network, security, Python environment
- π¨ Beautiful Terminal Report β Color-coded output with β/β /β icons, health score, and grade (AβD)
- π Health Score β Quantified 0β100 score with visual progress bar
- π§ Fix Suggestions β
--fixflag shows actionable fixes for every issue found - π Multiple Profiles β
all,web,devops,pythonprofiles for focused checks - π JSON Output β Machine-readable
--jsonflag for CI/CD pipelines - π Quiet Mode β
--quietto only show warnings and failures - π Zero Dependencies β Pure Python 3.8+, no pip install needed
- π₯οΈ Cross-Platform β Works on macOS, Linux, and WSL
Direct download (recommended):
# Clone and run
git clone https://github.com/nadonghuang/devdoctor.git
python3 devdoctor/devdoctor.pyOne-liner (no clone needed):
python3 -c "$(curl -fsSL https://raw.githubusercontent.com/nadonghuang/devdoctor/master/devdoctor.py)"Install as a command:
pip install git+https://github.com/nadonghuang/devdoctor.git
devdoctor# Run full diagnostics
python3 devdoctor.py
# Check only web developer essentials
python3 devdoctor.py --profile web
# Show fix suggestions for issues
python3 devdoctor.py --fix
# JSON output for scripts and CI/CD
python3 devdoctor.py --json
# Only show warnings and failures
python3 devdoctor.py --quiet
# Combine flags
python3 devdoctor.py --profile python --fixfrom devdoctor import (
check_system, check_languages, check_vcs,
check_security, check_dev_tools, render_json
)
# Run specific checks
results = check_system() + check_languages() + check_vcs()
# Get JSON output
print(render_json(results))| Profile | Description | Checks |
|---|---|---|
all |
Full checkup (default) | System, Languages, VCS, Packages, Dev Tools, Security, Disk, Network, Dotfiles, Python |
web |
Web developer essentials | System, Languages, VCS, Packages, Dev Tools, Disk, Network |
devops |
DevOps engineer essentials | System, Languages, VCS, Dev Tools, Security, Disk, Network |
python |
Python developer essentials | System, Languages, VCS, Packages, Python env, Disk, Network |
π₯οΈ System
- OS and architecture
- Default shell (zsh/bash/fish)
- Terminal emulator
- Homebrew installation
- Disk space usage
- Dotfiles presence
πΎ Languages & Runtimes
- Python, Node.js, Ruby, Go, Rust, Java, PHP
- Version compatibility checks (e.g., Node.js β₯ 18 LTS)
π Version Control
- Git installation and version
- Git user.name / user.email configuration
- SSH keys for GitHub/GitLab
- GPG signing key setup
π Security
- Firewall status (macOS)
- Suspicious
.envfiles in HOME directory - SSH directory permissions
π οΈ Developer Tools
- Docker, Kubernetes CLI, Terraform, Ansible
- Build tools (Make, CMake, GCC, Clang)
- Editors (VS Code, Cursor, Vim, Nano)
- CLI tools (gh, jq, ripgrep, fd, fzf, bat, eza, delta, lazygit, tmux, htop)
devdoctor/
βββ devdoctor.py # Main script (single file, zero deps)
βββ bin/
β βββ devdoctor # CLI entry point
βββ pyproject.toml # Package configuration
βββ README.md
βββ LICENSE
βββ .gitignore
- Fork the repo
- Create your feature branch:
git checkout -b feature/amazing-check - Add your check function in
devdoctor.py - Make sure it returns
CheckResultobjects - Commit and push:
git commit -m 'Add amazing check' - Open a Pull Request
MIT β see LICENSE for details.
Made with β‘ by nadonghuang
If you find this useful, please give it a β!