🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

agent-cli-detector

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

agent-cli-detector

Detect whether a JavaScript CLI is running inside a coding agent.

Source
npmnpm
Version
0.1.1
Version published
Weekly downloads
2.2M
-0.4%
Maintainers
1
Weekly downloads
 
Created
Source

agent-cli-detector

Detect whether a JavaScript CLI is running inside a coding agent.

The package is designed around environment-variable detection and data-driven agent definitions. Parent-process inspection is available as an experimental opt-in feature for callers that can tolerate best-effort process-tree detection.

Install

Install from npm:

npm install agent-cli-detector

Library usage

import { detectAgent, isRunningFromAgent } from "agent-cli-detector";

const result = detectAgent();

if (result.detected) {
  console.log(`running from ${result.agent.name}`);

  if (result.agent.sessionId) {
    console.log(`session: ${result.agent.sessionId}`);
  }
}

if (isRunningFromAgent()) {
  // Adjust CLI behavior for agent-driven execution.
}

CLI usage

npx agent-cli-detector
npx agent-cli-detector --json

After installing the package, the CLI command is available as detect-agent:

detect-agent
detect-agent --json

Exit codes:

  • 0: a coding agent was detected
  • 1: no coding agent was detected

Result shape

detectAgent() returns a normalized agent identity instead of the internal detector definition:

{
  detected: true,
  agent: {
    id: "cursor",
    name: "Cursor",
    sessionId: "d9e9cd60-2e1c-487c-9bc7-fceee5e9c3a2"
  }
}

sessionId is normalized from agent-specific environment variables when available, such as CODEX_THREAD_ID, CURSOR_CONVERSATION_ID, CLAUDE_CODE_SESSION_ID, ANTIGRAVITY_TRAJECTORY_ID, KIRO_SESSION_ID, KILO_RUN_ID, and COPILOT_AGENT_SESSION_ID.

Supported agents

The built-in detector uses environment variables by default:

  • environment: matches agent-specific environment variables in process.env

Process-tree inspection is experimental and turned off by default. Enable it explicitly if you need best-effort parent-process matching:

const result = detectAgent({ experimentalProcessTree: true });

Process-tree inspection has only been tested on macOS and does not work on Windows.

AgentEnvironment strategyProcess-tree strategySession ID
AntigravityANTIGRAVITY_AGENT=1, ANTIGRAVITY_TRAJECTORY_IDantigravityANTIGRAVITY_TRAJECTORY_ID
Claude CodeCLAUDECODE=1, CLAUDE_CODE_SESSION_IDclaudeCLAUDE_CODE_SESSION_ID
ClineCLINE_WRAPPER_PATHcline-
CodexCODEX_CI=1, CODEX_SHELL=1, CODEX_THREAD_IDcodexCODEX_THREAD_ID
CursorCURSOR_AGENT=1, CURSOR_CONVERSATION_IDcursorCURSOR_CONVERSATION_ID
Devin-command containing devin-
Gemini CLIGEMINI_CLI=1gemini-
GitHub Copilot CLICOPILOT_CLI=1, COPILOT_AGENT_SESSION_ID, COPILOT_RUN_APP=1github-copilot-cli or copilotCOPILOT_AGENT_SESSION_ID
KiroKIRO_SESSION_IDcommand containing kiroKIRO_SESSION_ID
Kilo CodeKILO=1, KILOCODE_VERSION, KILO_RUN_IDkilo or kilocodeKILO_RUN_ID
OpenCode-opencode-
PiPI_CODING_AGENT=true--

Some sandboxes block ps, and process names can vary by launcher, so process-tree detection should be treated as experimental.

Extending

Add an agent by supplying an AgentDefinition:

import { detectAgent, defaultAgents } from "agent-cli-detector";

const result = detectAgent({
  agents: [
    ...defaultAgents,
    {
      id: "my-agent",
      name: "My Agent",
      env: [{ name: "MY_AGENT", value: "1" }],
      process: [{ pattern: /^my-agent$/i }]
    }
  ]
});

Add a detection strategy by implementing DetectionStrategy:

import type { DetectionStrategy } from "agent-cli-detector";

const strategy: DetectionStrategy = {
  name: "my-strategy",
  detect(context) {
    return [];
  }
};

License

MIT

Keywords

agent

FAQs

Package last updated on 26 Jun 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts