Detect your dev environment in one command.
Runtimes, languages, package managers, cloud CLIs, containers, git info, and project type — structured for humans, agents, and CI.
Every time an AI agent starts a session, it burns tokens probing its environment: "What version of Node? Is Docker available? Am I in CI? What kind of project is this?" Each check is a separate shell command and a separate round-trip.
env-probe gives you all of that in one command — formatted for humans, agents, or pipelines.
$ env-probe
# Environment Probe
**Scanned:** 2026-05-12T05:00:00.000Z
## System
- **Platform:** darwin arm64 (25.4.0)
- **Host:** macmini
- **User:** dustin
- **Shell:** /bin/zsh
- **CPU:** Apple M2 Pro (12 cores)
- **Memory:** 16.0 GB
- **Uptime:** 3d 14h 22m
## Runtimes
- **node:** 24.15.0
- **python:** 3.12.4
- **go:** 1.22.0
## Cloud & DevOps CLIs
- **docker:** 27.0.3
- **gh:** 2.62.0
## Environment Context
- Native host (no container/CI detected)
## Git
- **version:** 2.47.0
## Project
- **Root:** /path/to/project
- **Type:** node
- **Package Manager:** pnpm
npm install -g @builtbyecho/env-probeOr run directly:
npx @builtbyecho/env-probe# Markdown summary (default)
env-probe
# JSON for programmatic use
env-probe --json
# Compact single-line summary
env-probe --compact
# Probe a specific project directory
env-probe -p /path/to/repo
# Combine options
env-probe -p . -f json| Option | Default | Description |
|---|---|---|
--format, -f |
markdown |
Output format: json, markdown, or compact |
--json |
— | Shorthand for --format json |
--compact, -c |
— | Shorthand for --format compact |
--markdown, -m |
— | Shorthand for --format markdown |
--project, -p |
auto-detect | Path to project directory for type detection |
--help, -h |
— | Show help |
When no --project path is given, env-probe auto-detects the git repo root.
import { probe, toMarkdown, toCompact } from "@builtbyecho/env-probe";
// Get structured probe data
const data = probe({ path: "/my/project" });
// Format output
console.log(toMarkdown(data)); // Human/agent-readable markdown
console.log(toCompact(data)); // Single-line compact summary
console.log(JSON.stringify(data, null, 2)); // Raw JSON{
"timestamp": "2026-05-12T05:00:00.000Z",
"system": {
"platform": "darwin",
"arch": "arm64",
"release": "25.4.0",
"hostname": "macmini",
"username": "dustin",
"shell": "/bin/zsh",
"cpuCores": 12,
"cpuModel": "Apple M2 Pro",
"memoryGB": 16.0,
"uptime": "3d 14h 22m"
},
"runtimes": {
"node": { "version": "24.15.0", "raw": "v24.15.0" },
"npm": { "version": "11.4.0", "raw": "11.4.0" },
"python": { "version": "3.12.4", "raw": "Python 3.12.4" }
},
"packageManagers": {
"homebrew": { "version": "4.3.0", "raw": "Homebrew 4.3.0" }
},
"cloudCLIs": {
"docker": { "version": "27.0.3", "raw": "Docker version 27.0.3" },
"gh": { "version": "2.62.0", "raw": "gh version 2.62.0" }
},
"containers": {
"inDocker": false,
"inWSL": false,
"inCI": false,
"ciName": null
},
"git": { "version": "2.47.0", "raw": "git version 2.47.0" },
"project": {
"root": "/my/project",
"type": "node",
"packageManager": "pnpm"
}
}| Category | What's Found |
|---|---|
| System | Platform, arch, hostname, user, shell, CPU model/cores, memory, uptime |
| Runtimes | Node, npm, npx, Deno, Bun, Python, pip, Ruby, Go, Rust, Java |
| Package Managers | Homebrew, Yarn, pnpm, Cargo, Gem, pipx |
| Cloud & DevOps | AWS, GCloud, Azure, Vercel, Netlify, Fly.io, Docker, kubectl, gh, Supabase |
| Containers | Docker detection, WSL detection, CI detection (GitHub Actions, GitLab CI) |
| Git | Git version |
| Project | Project type (node/rust/go/python/ruby), package manager detection |
You could. But that's 20+ commands, 20+ round-trips, and you still need to parse each version string differently. env-probe does it in one shot with structured output.
The --compact flag gives you a single line that's perfect for agent context windows:
darwin/arm64 | node:24.15.0 | npm:11.4.0 | python:3.12.4 | docker:27.0.3 | gh:2.62.0
This package includes an OpenClaw/Claude-style skill under skills/ that teaches agents to probe their environment before starting work, reducing wasted commands and token spend.
MIT © BuiltByEcho