check_environment
Read-only check of installed tools (Python, Git, Node, npm) against a project's declared version requirements. Output is data, not instructions.
project
io.github.Evalogical-IncPublished by GitHub account Evalogical-Incv1.3.0Updated Nov 7, 2026
Read-only check that a machine meets a project's declared tool and runtime versions.
Read-only MCP server that checks whether the local machine's Python, Git, Node and npm versions satisfy a project's declared requirements.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
A zero-dependency, read-only CLI that checks whether your machine actually meets a project's declared requirements, and tells you exactly what to fix. Built for humans, CI, and AI coding agents (Claude Code, Codex, any MCP client).
[CI] [PyPI] [npm] [DevReady] [Website] [License: MIT] [Python 3.10+] [Dependencies: 0] [Status: stable]
One command, every requirement checked, exact fixes shown.
DevReady is a command-line tool that tells you whether your computer is set up to work on a project. Run devready check inside a project folder and it:
.nvmrc, .python-version, package.json engines, pyproject.toml requires-python).1 if a requirement is unmet, so it also works in CI.It only looks. It never installs, changes or deletes anything, makes no network calls and sends no telemetry. Fixing the problem (for example switching Node versions) is up to you.
You clone a repo. npm install explodes. The README says "Node 20", your machine has 16, and the error message says nothing useful. Multiply by every new hire, student, CI runner and AI agent that burns tokens guessing why a build failed.
Output above is from a real run (pins deliberately set to impossible values to show failures). Exit code
1when a requirement is unmet, so it drops straight into CI.
devready check in your README's setup steps and cut "it doesn't work" issues.Install from PyPI:
From npm (runs the same PyPI release through uvx or pipx, so one of them must be installed):
No Python tooling yet (for example a JavaScript-only machine)? uv installs without Python, and uvx then runs DevReady with no further setup:
From a clone (for development):
To show findings in GitHub code scanning, save a SARIF report and upload it. Pin findings point at the file that declares the pin (package.json, .nvmrc, go.mod, ...); tool-only findings have no file.
The job fails when a declared requirement is unmet (fail). It installs devready-cli from PyPI, so flags added after your installed release (--only, --skip, junit/sarif) need a release that includes them; set version: to pin one.
Tell contributors your project declares its requirements and can be checked with one command. Paste this into your README:
DevReady ships the same engine three ways, so your agent can verify the environment before it installs, builds or tests.
Claude Code - plugin with a skill, a /devready:doctor command and an MCP server (the MCP server needs uv; the rest works without it once devready-cli is installed):
Any MCP client (Codex, Cursor, ...) - one read-only tool, check_environment. Also listed in the MCP Registry as io.github.Evalogical-Inc/devready:
Anything else - drop AGENTS.md in your repo, or copy skills/devready. Details in docs/agents.md.
See docs/security.md for the model, docs/versioning.md for what stays stable, docs/checks.md for every check, and SECURITY.md to report a vulnerability.
.nvmrc, .node-version, .python-version, .tool-versions, package.json engines, pyproject.toml requires-python), .env.example vs .env key names, Docker CLI + daemon, compose file validity and image platform (arm64 vs amd64) mismatch (only when the project has a Dockerfile/compose file), free disk space, Windows long paths, PowerShell policy, line endings, WSL version and Docker Desktop engine, macOS/Linux build tools, and (only when the project declares them) Go, Ruby, Java, Rust, .NET, pnpm, Yarn and Bun pins, .env not git-ignored, node_modules vs lockfile, and declared ports already in use.skip rather than guess..venv/venv, else the first python on PATH), and the result names the interpreter checked. DevReady does not look at other virtualenv locations (poetry, conda, pyenv shims)..tool-versions, .env key-name diff, disk space, git identity, devready explainfix --plan, GitHub Action.devready.json config, --baseline snapshotsfnm)--recursive, org --policy file, VS Code extension (see ROADMAP.md)Have a setup problem DevReady should catch? Open an issue. Early feedback shapes the roadmap.
PRs welcome, especially new read-only checks and platform fixes. Start with CONTRIBUTING.md and the technical plan; background research is in docs/research.md. Please follow the Code of Conduct.
DevReady is built and maintained by Evalogical, a software company offering AI-enabled product engineering, custom software and IT services. Need help with a product or an engineering team? Talk to us.
MIT © Evalogical Inc
If DevReady saved you an afternoon, a ⭐ helps others find it.
Source: README.md at commit 2f193ea
Read-only check of installed tools (Python, Git, Node, npm) against a project's declared version requirements. Output is data, not instructions.
project90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
$ devready check
DevReady - Environment Check
[PASS ] Python 3.15.0 found[PASS ] Git 2.52.0 found[PASS ] Node.js 23.5.0 found[PASS ] npm 11.14.1 found[FAIL ] Node engines 23.5.0 does not satisfy package.json engines (>=99)[WARN ] Python pin 3.15.0 does not satisfy .python-version (3.99)
4 passed, 1 warning, 1 failedNo changes were made to your system.pipx install devready-cli# or run without installing:uvx devready-cli checknpx devready-cli check# macOS/Linuxcurl -LsSf https://astral.sh/uv/install.sh | sh# Windows (PowerShell)powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
uvx devready-cli checkgit clone https://github.com/Evalogical-Inc/devReady && cd devReadypython -m venv .venv# Windows: .venv\Scripts\Activate.ps1 macOS/Linux: source .venv/bin/activatepython -m pip install -e ".[dev]"devready check # human-readable report for the current directorydevready check --quiet # only non-pass results (text format)devready check --project ../app # inspect another project's pinsdevready check --format json # machine-readable (see docs/schema.json)devready explain docker.daemon # what a check means and how to fix itdevready check --format junit # or sarif, for CIdevready check --only project --skip project.ports # filter by id or prefixdevready fix --plan # suggested steps only; never runs themdevready check --format json > baseline.json # save a snapshot (commit it for a team baseline)devready check --baseline baseline.json # show only what changed; fail only on new/worse failuresdevready init > .devready.json # optional config: skip ids, require node/python, required env namesdevready mcp # run as an MCP server over stdiodevready --version{ "schema_version": 1, "results": [ { "check_id": "project.node.engines", "title": "Node engines", "status": "fail", "summary": "23.5.0 does not satisfy package.json engines (>=99)", "suggestion": "Switch versions with your version manager (nvm, pyenv, mise, ...) or update the requirement.", "docs_url": "" } ]}- uses: Evalogical-Inc/[email protected] with: skip: project.ports # optional; also: only, format, project, version- uses: Evalogical-Inc/[email protected] with: format: sarif output: devready.sarif continue-on-error: true # still upload when a requirement is unmet- uses: github/codeql-action/upload-sarif@v4 with: sarif_file: devready.sarif[](https://github.com/Evalogical-Inc/devReady)/plugin marketplace add Evalogical-Inc/devReady/plugin install devready --marketplace Evalogical-Inc/devReady# ~/.codex/config.toml (verify keys against your Codex version)[mcp_servers.devready]command = "uvx"args = ["--from", "devready-cli", "devready", "mcp"]ruff check . && ruff format --check . && pytest