Agent detection definitions and lightweight utility
A lightweight utility for detecting if code is being executed by an AI agent or automated development environment.
npm install detect-agent
import { determineAgent } from 'detect-agent';
const { isAgent, agent } = await determineAgent();
if (isAgent) {
console.log(`Running in ${agent.name} environment`);
// Adapt behavior for AI agent context
}
The agent detection rules live in agents.json, validated against agents.schema.json.
[!NOTE]
You can use these definitions two ways: install the npm package for a ready-to-use API, or consume the JSON file directly from GitHub if you’re not in a JavaScript environment or want to build your own detection logic:https://raw.githubusercontent.com/vercel/detect-agent/main/agents.json
This package can detect the following AI agents and development environments:
AI_AGENT environment variable)See agents.json for the exact environment variables and conditions used to detect each one.
We’re promoting AI_AGENT as a universal environment variable standard for AI development tools. This allows any tool or library to easily detect when it’s running in an AI-driven environment.
Set the AI_AGENT environment variable to identify your tool:
export AI_AGENT="your-tool-name"
# or
AI_AGENT="your-tool-name" your-command
@ symbolclaude-code, cursor-cli, devin@1, custom-agent@2.0import { determineAgent } from 'detect-agent';
async function setupEnvironment() {
const { isAgent, agent } = await determineAgent();
if (isAgent) {
// Running in AI environment - adjust behavior
process.env.LOG_LEVEL = 'verbose';
console.log(`🤖 Detected AI agent: ${agent.name}`);
}
}
import { determineAgent } from 'detect-agent';
async function trackUsage(event: string) {
const result = await determineAgent();
analytics.track(event, {
agent: result.isAgent ? result.agent.name : 'human',
timestamp: Date.now(),
});
}
import { determineAgent } from 'detect-agent';
async function shouldEnableFeature(feature: string) {
const result = await determineAgent();
// Enable experimental features for AI agents
if (result.isAgent && feature === 'experimental-ai-mode') {
return true;
}
return false;
}
We welcome contributions!
To add support for a new AI agent:
agents.json, following the structure defined in agents.schema.json. Agents are evaluated in array order — the first match wins, so place more specific rules before more general ones.src/determine-agent.test.ts.