🩺 devmedic
A health check for your developer machine. Find what's hogging your ports, RAM and disk, spot git work that isn't backed up, and clean up safely — all from one friendly terminal UI. Works 100% offline. No accounts, no telemetry, nothing leaves your machine.
_ _ _
__| | ___ __ __ _ __ ___ ___ __| |(_) ___
/ _` | / _ \\ \ / /| '_ ` _ \ / _ \ / _` || | / __|
| (_| || __/ \ V / | | | | | || __/| (_| || || (__
\__,_| \___| \_/ |_| |_| |_| \___| \__,_||_| \___| HEALTH 92/100 A
Why?
Every developer hits these, over and over:
- 😤
Error: listen EADDRINUSE: address already in use :::3000 - 💾 Disk full — from 40 forgotten
node_modules,.venvs andtarget/folders - 🐢 Machine slow — three dev servers you started last week are still running
- 😱 "Did I ever push that project?"
devmedic answers all of them in seconds.
Install
Requires Linux (built and tested on Ubuntu) and Python 3.9+. On Windows, use it inside WSL for now; native support is planned.
With pipx (recommended)
sudo apt install pipx && pipx ensurepath # once
pipx install devmedic
With pip
pip install devmedic # inside a virtualenv, or: pip install --user devmedic
From a clone
git clone https://github.com/yaswanthme007/devmedic.git
cd devmedic
./install.sh # uses pipx if present, otherwise a dev-mode link in ~/.local/bin
Dev mode needs sudo apt install python3-psutil python3-rich (already present on most Ubuntu
desktops).
Usage
devmedic # interactive menu — pick a section with ↑↓ / 1-8 / Enter
devmedic all # everything on one screen (also used when output is piped)
devmedic watch # live full-screen monitor: CPU/RAM graphs, net speed, ports
Sections (open from the menu, or directly):
| Command | Shows |
|---|---|
devmedic system |
CPU model, per-core usage, load, temperature, battery |
devmedic memory |
RAM/swap and the biggest apps (browser tabs grouped together) |
devmedic storage |
Usage of every real partition |
devmedic network |
IPs, Wi-Fi, traffic, listening ports |
devmedic tools |
Installed versions of git, python, node, go, rust, docker … |
devmedic projects |
Dev processes by project + every git repo's status |
devmedic cleanup |
How much space caches and junk folders are wasting |
devmedic notes |
The doctor's recommendations, with exact commands |
Fix things:
devmedic ports [-a] # what's listening, and from which project folder
devmedic kill 3000 # free port 3000 (SIGTERM, then SIGKILL if needed)
devmedic junk [PATH] # node_modules, .venv, target/, .next … with sizes
devmedic junk --older 30 --clean # pick stale ones to delete: 1,3,5-8 / all
devmedic caches # pip npm yarn pnpm cargo go gradle maven … + system
devmedic caches --clean pip npm # or --clean all (skips risky ones like Trash)
devmedic repos [PATH] # uncommitted, unpushed, stashed, or no remote at all
devmedic procs [-v] # dev processes grouped by project, RAM/CPU/ports
Safety
devmedic is careful by design:
- Nothing is deleted without confirmation (unless you pass
-y). - Conservative junk detection:
target/only next toCargo.toml/pom.xml, venvs only if they containpyvenv.cfg. Genericbuild/anddist/folders are never touched. - Never runs
sudo. System fixes (journal, apt, snap, docker) are printed for you to copy. - Only kills what you confirm, and can't touch other users' processes.
- Offline and private: no network requests, no data collection.
Development
./install.sh --dev # edits take effect immediately
python3 -m unittest discover -s tests -v # run the tests
Ideas and pull requests are welcome! Please open an issue first for big changes.
License
Metadata
Release files for devmedic 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| devmedic-0.2.0.tar.gz | 32.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devmedic-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 65.0 kB
Release files / devmedic-0.2.0.tar.gz
| Download URL | devmedic-0.2.0.tar.gz |
|---|---|
| Size | 32.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c998425531cb877c1d2136790c4ce14260aca7c72ca426a6139fde0a25176ded
|
|
BLAKE2b-256 checksum How to use checksums |
56d4851a25303195d80131a257535e7b8c02271ab281eb29c3894fefc52d4886
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / devmedic-0.2.0-py3-none-any.whl
| Download URL | devmedic-0.2.0-py3-none-any.whl |
|---|---|
| Size | 32.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de1003c8427e29b0448a7a34db2ceb6481c2a9685b1eecbe916ee7e029695fb7
|
|
BLAKE2b-256 checksum How to use checksums |
7965932276d37bca1c1dcc5d35750f5048b18f5f5b2314aecf66d22e256c784c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency log