Runtime Agnostic Env Info
641
stars
258
commits
TypeScript
primary language
Sep 7, 2026
updated
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]
isNodeis alsotruein Bun/Deno with Node.js compatibility mode. Useruntime === "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", ci: 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, junie
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/development or MODE is development |
isLinux | Linux platform |
isMacOS | macOS (darwin) platform |
isMinimal | MINIMAL env is set, CI, test, or no TTY |
isProduction | NODE_ENV or MODE is production |
isTest | NODE_ENV is test or TEST env is set |
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) |
process | Universal process shim (works across all runtimes) |
nodeENV | Current NODE_ENV value (undefined if unset) |
MIT
TypeScript
100.0%
Runtime Agnostic Env Info
641
stars
258
commits
TypeScript
primary language
Sep 7, 2026
updated
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]
isNodeis alsotruein Bun/Deno with Node.js compatibility mode. Useruntime === "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", ci: 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, junie
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/development or MODE is development |
isLinux | Linux platform |
isMacOS | macOS (darwin) platform |
isMinimal | MINIMAL env is set, CI, test, or no TTY |
isProduction | NODE_ENV or MODE is production |
isTest | NODE_ENV is test or TEST env is set |
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) |
process | Universal process shim (works across all runtimes) |
nodeENV | Current NODE_ENV value (undefined if unset) |
MIT
TypeScript
100.0%