DevMate is a developer companion CLI tool designed to streamline project analysis, environment checks, Git summaries, file audits, JSON operations, system health monitoring, and safe process cleanup. It serves as an all-in-one diagnostic and automation utility for developers, DevOps engineers, and teams seeking efficient workflows.
Key Features:
Project Analysis: Audits projects or individual files to detect languages, frameworks, dependencies, and potential risks while providing actionable recommendations.
Environment Inspection: Examines .env files to identify missing or unused variables, ensuring consistency across development environments.
Git Summaries: Provides concise overviews of repository states, including commit history, branches, contributors, and churn metrics.
JSON Tools: Validates, formats, minifies, and diffs JSON files for seamless integration into workflows.
System Health Checks: Monitors system status, installed tools, updates, and resource usage to maintain optimal performance.
File Audits: Searches, summarizes, and identifies duplicate files while respecting Git ignore rules.
Audience & Benefit:
Ideal for developers and teams who need a reliable, scriptable diagnostic tool. DevMate automates repetitive manual checks, improves workflow efficiency, and provides consistent, actionable insights across projects and environments. Its --json output makes it particularly useful for integrating diagnostics into CI/CD pipelines or custom scripts.
DevMate can be installed via winget once the package is available.
README
DevMate
DevMate is a developer diagnostics CLI for project analysis, env files, Git, JWTs, files, system health, installed tools, updates, and safe cleanup.
It is designed to be useful both for humans in a terminal and for scripts through --json output.
What DevMate Does
analyze: audits projects or individual source files with language/framework detection, LOC stats, dependency summaries, health scoring, warnings, recommendations, and optional detailed architecture/git/complexity insight.
setup: first-run onboarding for the current project.
doctor: checks important developer tools for the detected project stack.
system: shows one-shot or live system status.
files: searches, summarizes, trees, and finds duplicate files while respecting gitignore rules.
env: inspects .env files and compares expected/used variables.
git: summarizes repository state, commits, branches, and contributors.
json: validates, formats, minifies, and diffs JSON.
jwt: generates, decodes, and verifies HMAC JWTs.
kill: safely previews and terminates selected resource-heavy processes.
update / uninstall: manages DevMate based on how it was installed.
5-Minute Setup
Windows
The planned Windows install path is winget:
winget install ADELA.Devmate
Until the winget package is accepted, install from GitHub Releases after the first release is published:
If you extracted with File Explorer, open the folder that contains devmate.exe, press and hold shift and right-click inside the folder, choose Open in Terminal, then run:
.\devmate.exe setup
To make devmate work from any terminal, add the folder that contains devmate.exe to your user PATH.
tar -xzf devmate-macos.tar.gz
cd devmate-v0.1.6-*-apple-darwin
./devmate setup
mkdir -p ~/.local/bin
cp devmate ~/.local/bin/devmate
chmod +x ~/.local/bin/devmate
Make sure ~/.local/bin is on your PATH, then open a new terminal and verify:
devmate --version
devmate setup
If macOS blocks the binary because it was downloaded from the internet, open System Settings > Privacy & Security and allow DevMate, or remove the quarantine attribute:
devmate setup
devmate doctor
devmate analyze
devmate system
devmate files stats
setup is the onboarding command. It detects the current project, lists missing required/recommended/optional tools, and suggests the next commands to try.
Update
devmate update
devmate update detects the install method and runs the right package-manager command when possible:
manual GitHub Release download: downloads the latest release and replaces the current executable after DevMate exits
Preview first:
devmate update --dry-run
devmate update --json
Uninstall
devmate uninstall
devmate uninstall asks before removing anything. It uses winget or cargo when DevMate was installed that way. For a manual zip/tar install, it schedules the current devmate executable for deletion after DevMate exits and reminds you to remove that folder from PATH.
Package-manager installs update through the package manager. Manual GitHub Release installs start a background updater that downloads the latest release for your OS and replaces the current executable after DevMate exits.
It asks for confirmation unless --yes is supplied. Manual zip/tar installs delete the current executable after DevMate exits; package-manager installs use the package manager.
It reports duplicates, empty values, malformed lines, variables referenced by source code, values missing from .env, and differences against .env.example.
It reports branch state, clean/dirty status, modified files, ahead/behind counts, recent commits, contributors, and branches.
files
Searches, visualizes, and audits files while respecting gitignore-style rules and always skipping common heavy folders such as .git, node_modules, and target.
decode without a secret performs unverified inspection. decode --secret verifies while still showing the decoded header and claims. verify returns verified claims only.
system
Shows system information.
devmate system [--json] [--watch] [--interval ]
Examples:
devmate system
devmate system --json
devmate system --watch
devmate system --watch --interval 2
--watch opens a live dashboard view with clearer CPU, RAM, disk, network, battery, GPU, and Rust status. It samples on the selected interval, keeps the CPU sampler warm for more stable readings, and redraws only when visible values change. Press Ctrl+C to stop it. If you still see repeated blocks or broken table borders, your shell may be running an old installed binary; check with where.exe devmate and reinstall.
doctor
Checks installed developer tools and versions.
devmate doctor [path] [--json]
Examples:
devmate doctor
devmate doctor C:\path\to\project
devmate doctor --json
Doctor checks baseline tools such as Git and common editors, then adds project-relevant checks inferred from files such as Cargo.toml, package.json, pyproject.toml, go.mod, Dockerfile, and lockfiles.
Tools are labeled:
required: needed for the detected project stack
recommended: useful for normal workflows
optional: nice to have, but not a failure if missing
kill
Safely previews resource-heavy processes and asks before terminating anything.
PowerShell may be running an installed binary instead of the one you just built.
where.exe devmate
If it points to C:\Users\User\.cargo\bin\devmate.exe, update it:
cargo install --path .
Or run the local release binary directly:
.\target\release\devmate.exe system
GitHub Release Install Fails
Make sure the version in the download URL exists on GitHub Releases:
https://github.com/GOALLINNOOUT/Devmate/releases
If the zip is downloaded from a browser, Windows may mark it as downloaded from the internet. Right-click the zip or extracted executable, open Properties, and choose Unblock if Windows shows that option.
Broken Table Characters
Current DevMate source uses ASCII table borders. If you see mojibake or broken box-drawing characters, you are almost certainly running an older installed binary.
Cargo Warning About C:\Users\User
If Cargo prints warn: could not canonicalize path C:\Users\User, that is a Cargo/environment warning and not a DevMate runtime failure.