DevReady

io.github.Evalogical-Inc由 GitHub 帳號 Evalogical-Inc 發布v1.3.0更新於 Nov 7, 2026

Read-only check that a machine meets a project's declared tool and runtime versions.

概覽

AI 產生的概覽

唯讀的 MCP 伺服器,檢查本機已安裝的 Python、Git、Node 與 npm 版本是否符合專案宣告的版本需求。

可以做什麼
  • 依專案宣告的工具與執行環境版本需求檢查本機環境
  • 針對每項需求給出 PASS、WARN 或 FAIL 結果與修正建議
  • 比對已安裝的 Python、Git、Node.js、npm 與 .nvmrc、.python-version、package.json engines、pyproject.toml requires-python 等宣告
  • 只回傳結構化資料,不含原始檔案或指令輸出
適用情境
適合在助理準備安裝、建置或測試專案之前,先確認機器是否符合宣告的工具版本,而不是猜測建置失敗的原因。也適用於新人上手、教學與 CI 式預檢情境。
執行需求
以本機 stdio 程序執行,通常透過 uvx 從 PyPI 套件 devready-cli 啟動,因此需要安裝 uv(或 pipx)。未宣告任何帳號、API 金鑰、環境變數或標頭。僅限桌面端,不使用網路。
安裝前請注意
設計上為唯讀:不安裝、不修改、不刪除任何內容,不發起網路請求,不上傳遙測,也不輸出環境變數的值。檢查通過並不保證專案一定能順利建置;預發布版本與特殊版本範圍會標示為略過而非猜測。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 DevReady,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

🩺 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] [npm] [DevReady] [Website] [License: MIT] [Python 3.10+] [Dependencies: 0] [Status: stable]


[Demo of running devready check in a terminal]

One command, every requirement checked, exact fixes shown.


What is DevReady?

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:

  1. Reads the versions the project says it needs (.nvmrc, .python-version, package.json engines, pyproject.toml requires-python).
  2. Compares them with what is actually installed on your machine (Python, Node.js, npm, Git, and so on).
  3. Reports PASS, WARN or FAIL for each item, with what to fix. The exit code is 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.

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

console
$ 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.

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-awareReads 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 designNever installs, edits or deletes. Never prints env values. No network. No telemetry.
🤖 Agent-readyStable, versioned JSON schema, a Claude Code plugin, an MCP server and AGENTS.md. Agents check first instead of guessing.
🛡️ Prompt-injection safeOutput 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 dependenciesPure Python standard library. Installs in a second, runs anywhere Python 3.10+ does.
⚙️ CI-friendlyDocumented 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:

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

From npm (runs the same PyPI release through uvx or pipx, so one of them must be installed):

bash
npx devready-cli check

No Python tooling yet (for example a JavaScript-only machine)? uv installs without Python, and uvx then runs DevReady with no further setup:

bash
# 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 check

From a clone (for development):

bash
git 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]"

Usage

bash
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
Exit codeMeaning
0No blocking failures
1A project requirement is not met
2Invalid usage (e.g. bad --project path)
3Internal error
StatusMeaning
passRequirement met
warnTool missing, or a soft pin (.nvmrc, .python-version) differs
failA hard requirement (engines, requires-python) is not met
skipNot evaluated (tool absent, or requirement syntax not understood)
errorDevReady couldn't run the check

JSON output

json
{  "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 in CI (GitHub Actions)

yaml
- uses: Evalogical-Inc/[email protected]  with:    skip: project.ports                  # optional; also: only, format, project, version

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.

yaml
- 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

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.

Add the badge

Tell contributors your project declares its requirements and can be checked with one command. Paste this into your README:

markdown
[![DevReady](https://img.shields.io/badge/DevReady-%E2%9C%93%20ready-2ea44f)](https://github.com/Evalogical-Inc/devReady)

[DevReady]

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 (the MCP server needs uv; the rest works without it once devready-cli is installed):

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

Any MCP client (Codex, Cursor, ...) - one read-only tool, check_environment. Also listed in the MCP Registry as io.github.Evalogical-Inc/devready:

toml
# ~/.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 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.

Limitations

  • 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, 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.
  • 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 project's (.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).

Roadmap

  • Docker CLI + daemon reachability, .tool-versions, .env key-name diff, disk space, git identity, devready explain
  • Port-in-use checks, more ecosystems (Go, Rust, Java, Ruby, .NET, pnpm/yarn/bun), JUnit/SARIF output, fix --plan, GitHub Action
  • .devready.json config, --baseline snapshots
  • Platform-specific checks (Windows, macOS/Linux build tools, WSL)
  • Docker compose validity, image platform, Docker Desktop engine
  • Exact version-switch commands in suggestions (first: fnm)
  • Monorepo --recursive, org --policy file, VS Code extension (see ROADMAP.md)
  • 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.

bash
ruff check . && ruff format --check . && pytest

About Evalogical

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.

License

MIT © Evalogical Inc

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

來源:README.md,提交 2f193ea

工具

1

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

版本歷史

3
  1. v1.3.0最新Nov 4, 2026
  2. v1.2.0Oct 26, 2026
  3. v1.1.2Oct 23, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分