Skip to main content

🩺 DevReady

"Works on my machine" - finally answered before it wastes your afternoon.

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 Website License: MIT Python 3.10+ Dependencies: 0 Status: alpha


The problem

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.

The fix

$ 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)

No changes were made to your system.

Output above is from a real run (pins deliberately set to impossible values to show failures). Exit code 1 when a requirement is unmet, so it drops straight into CI.

Why DevReady

🎯 Project-aware Reads what your project declares (.nvmrc, .node-version, .python-version, package.json engines, pyproject.toml requires-python) and compares it to what is installed. Not just "is Node installed?"
🔒 Read-only by design Never installs, edits or deletes. Never prints env values. No network. No telemetry.
🤖 Agent-ready Stable, versioned JSON schema, a Claude Code plugin, an MCP server and AGENTS.md. Agents check first instead of guessing.
🛡️ Prompt-injection safe Output contains only parsed versions and fixed text, never raw file or command output, so a hostile package.json can't smuggle instructions to your agent (tested).
📦 Zero dependencies Pure Python standard library. Installs in a second, runs anywhere Python 3.10+ does.
⚙️ CI-friendly Documented exit codes, JSON output, tested on Linux, macOS and Windows in CI.

Who it's for

  • 🧑‍🎓 Students & bootcamp learners: plain-language results instead of cryptic stack traces.
  • 🧑‍💻 Developers switching projects: one command tells you what's off before you lose an hour.
  • 👩‍🏫 Maintainers & educators: put devready check in your README's setup steps and cut "it doesn't work" issues.
  • 🏗️ CI & platform teams: fail fast with a clear preflight step.
  • 🤖 AI-agent users: give Claude Code / Codex a ground-truth environment check.

Install

Install from PyPI:

pipx install devready-cli
# or run without installing:
uvx --from devready-cli devready check

From a clone (for development):

git clone https://github.com/Evalogical-Inc/devReady && cd devReady
python -m venv .venv
# Windows: .venv\Scripts\Activate.ps1    macOS/Linux: source .venv/bin/activate
python -m pip install -e ".[dev]"

Usage

devready check                    # human-readable report for the current directory
devready check --project ../app   # inspect another project's pins
devready check --format json      # machine-readable (see docs/schema.json)
devready explain docker.daemon    # what a check means and how to fix it
devready mcp                      # run as an MCP server over stdio
devready --version
Exit code Meaning
0 No blocking failures
1 A project requirement is not met
2 Invalid usage (e.g. bad --project path)
3 Internal error
Status Meaning
pass Requirement met
warn Tool missing, or a soft pin (.nvmrc, .python-version) differs
fail A hard requirement (engines, requires-python) is not met
skip Not evaluated (tool absent, or requirement syntax not understood)
error DevReady couldn't run the check

JSON output

{
  "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": ""
    }
  ]
}

Use it with AI coding agents

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:

/plugin marketplace add Evalogical-Inc/devReady
/plugin install devready --marketplace Evalogical-Inc/devReady

Any MCP client (Codex, Cursor, ...) - one read-only tool, check_environment:

# ~/.codex/config.toml (verify keys against your Codex version)
[mcp_servers.devready]
command = "uvx"
args = ["--from", "devready-cli", "devready", "mcp"]

Anything else - drop AGENTS.md in your repo, or copy skills/devready. Details in docs/agents.md.

Safety & privacy

  • Fixed command lists with timeouts; no shell, no user-built commands.
  • Project files are read only if regular files ≤ 1 MB (symlinks skipped) and are never executed.
  • Environment variable values are never read into output. Nothing leaves your machine.
  • A passing report does not guarantee your project builds.

See SECURITY.md to report a vulnerability.

Limitations (alpha)

  • Checks today: Python, Git (+ identity set), Node.js, npm, project pins (.nvmrc, .node-version, .python-version, .tool-versions, package.json engines, pyproject.toml requires-python), .env.example vs .env key names, Docker CLI + daemon (only when the project has a Dockerfile/compose file), and free disk space.
  • The version-range matcher covers common npm/PEP 440 syntax; pre-releases and exotic ranges report skip rather than guess.
  • The Python version compared is the interpreter running DevReady, not necessarily your project's virtualenv.

Roadmap

  • Docker CLI + daemon reachability, .tool-versions, .env key-name diff, disk space, git identity, devready explain
  • Port-in-use checks (ports read from compose files)
  • More ecosystems (Go, Rust, Java, Ruby pins)
  • Standalone binaries

Have a setup problem DevReady should catch? Open an issue. Early feedback shapes the roadmap.

Contributing

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.

ruff check . && pytest

License

MIT © Evalogical Inc

If DevReady saved you an afternoon, a ⭐ helps others find it.

Metadata

Release files for devready-cli 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for devready-cli 0.0.3
File Size Uploaded
devready_cli-0.0.3.tar.gz 29.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for devready-cli 0.0.3
File Interpreter ABI Platform
devready_cli-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 46.6 kB

Release files / devready_cli-0.0.3.tar.gz

Download URL devready_cli-0.0.3.tar.gz
Size 29.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9fc90e550fd87eae9efc9006bfa81ad42d4ae307771015771f760a49d1f36aeb
BLAKE2b-256 checksum
How to use checksums
3c2ffa99a15d850e049afc06ac468b25680841750dcbb8fe15ef267cc8d987cc
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 Oct 16, 2026.

Transparency log

Release files / devready_cli-0.0.3-py3-none-any.whl

Download URL devready_cli-0.0.3-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
17cf2d4602e9d09d078f1bcd15471765a976df26d492777d8e7eb2489a77cdd7
BLAKE2b-256 checksum
How to use checksums
bec3d9f19579621096c11da0d36745f805ba16db676856c40c643beeee655fa3
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 Oct 16, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.4

2 release files

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page