envcheck is a lightweight CLI tool that validates your development environment against project requirements. Say goodbye to "works on my machine" problems!
- Fast - Written in Rust, single binary, no dependencies
- Simple - Just add a
.envcheck.yamlfile to your project - Comprehensive - Check tools, versions, env vars, ports, and files
- Clean Output - Clear, colored output with actionable suggestions
- Cross-platform - Works on macOS, Linux, and Windows
- Community-driven - Easy to extend with new validators
# Using cargo
cargo install envcheck
# Or download from releases
# https://github.com/dotandev/envcheck/releases- Create a
.envcheck.yamlfile in your project root:
version: "1"
tools:
- name: node
version: ">=18.0.0"
required: true
- name: docker
required: true
env_vars:
- name: DATABASE_URL
required: true
ports:
- 3000
files:
- path: .env
required: true- Run
envcheck:
$ envcheck
Running environment checks...
✓ node 18.17.0 found
✓ docker found
✗ DATABASE_URL is not set
Set DATABASE_URL environment variable
✓ Port 3000 is available
✓ .env exists
--- 1 issue(s) found. Fix them to continue.Check if tools are installed and optionally verify versions:
tools:
- name: node
version: ">=18.0.0" # Supports >=, <=, >, <, =
required: true
- name: docker
required: false # Optional tools won't fail the checkSupported tools out of the box:
node,npm,go,rust,cargo,python,docker,git,java,ruby
Validate that required environment variables are set:
env_vars:
- name: DATABASE_URL
required: true
- name: DEBUG
required: falseCheck if ports are available:
ports:
- 3000
- 5432
- 8080Verify that required files exist:
files:
- path: .env
required: true
- path: config/database.yml
required: falseWe love contributions! This project is designed to be community-driven. Here are some ways you can help:
- Report bugs - Open an issue if you find a bug
- Suggest features - Have an idea? We'd love to hear it
- Improve docs - Help make our documentation better
- Add validators - Add support for new tools, languages, or checks
- Write tests - Help us improve test coverage
Check out our CONTRIBUTING.md for detailed guidelines.
Looking to contribute? Check out issues labeled good first issue - these are perfect for newcomers!
See the examples/ directory for sample configurations:
# Clone the repo
git clone https://github.com/dotandev/envcheck.git
cd envcheck
# Build
cargo build
# Run tests
cargo test
# Run locally
cargo run -- --helpMIT License - see LICENSE for details
Inspired by tools like Redis - built by the community, for the community.
Made by the envcheck community