Runtime-agnostic JS utils for detecting environments, runtimes, CI providers, and AI coding agents.
Detects the current JavaScript runtime based on global variables, following the WinterCG Runtime Keys proposal.
import { runtime, runtimeInfo } from "std-env";
console.log(runtime); // "" | "node" | "deno" | "bun" | "workerd" ...
console.log(runtimeInfo); // { name: "node" }Individual named exports: isNode, isBun, isDeno, isNetlify, isEdgeLight, isWorkerd, isFastly
Note
isNode is also true in Bun/Deno with Node.js compatibility mode. Use runtime === "node" for strict checks.
See ./src/runtimes.ts for the full list.
Detects the current CI/CD provider based on environment variables.
import { isCI, provider, providerInfo } from "std-env";
console.log({ isCI, provider, providerInfo });
// { isCI: true, provider: "github_actions", providerInfo: { name: "github_actions", isCI: true } }Use detectProvider() to re-run detection. See ./src/providers.ts for the full list.
Detects if the environment is running inside an AI coding agent.
import { isAgent, agent, agentInfo } from "std-env";
console.log({ isAgent, agent, agentInfo });
// { isAgent: true, agent: "claude", agentInfo: { name: "claude" } }Set the AI_AGENT env var to explicitly specify the agent name. Use detectAgent() to re-run detection.
Supported agents: cursor, claude, devin, replit, gemini, codex, auggie, opencode, kiro, goose, pi
import { env, isDevelopment, isProduction } from "std-env";| Export | Description |
|---|---|
hasTTY |
stdout TTY is available |
hasWindow |
Global window is available |
isCI |
Running in CI |
isColorSupported |
Terminal color output supported |
isDebug |
DEBUG env var is set |
isDevelopment |
NODE_ENV is dev or development |
isLinux |
Linux platform |
isMacOS |
macOS (darwin) platform |
isMinimal |
Minimal environment (CI, test, or no TTY) |
isProduction |
NODE_ENV is production |
isTest |
NODE_ENV is test |
isWindows |
Windows platform |
platform |
Value of process.platform |
nodeVersion |
Node.js version string (e.g. "22.0.0") |
nodeMajorVersion |
Node.js major version number (e.g. 22) |
See ./src/flags.ts for details.
| Export | Description |
|---|---|
env |
Universal process.env (works across all runtimes) |
nodeENV |
Current NODE_ENV value (empty string if unset) |
MIT