is-agentic-tui
v0.2.0
Published
Detect if code is running inside an agentic TUI (Claude Code, Cursor, Gemini CLI, etc.)
Maintainers
Readme
is-agentic-tui
Detect if your code is running inside an agentic TUI (Text User Interface) application like Claude Code, Cursor Agent, Gemini CLI, or Aider.
Installation
npm install is-agentic-tui
# or
pnpm add is-agentic-tui
# or
yarn add is-agentic-tuiUsage
Check if running in any agentic TUI
import { isAgenticTui } from "is-agentic-tui";
if (isAgenticTui()) {
console.log("Running inside an agentic TUI");
}Identify which agentic TUI
import { whichAgenticTui } from "is-agentic-tui";
const result = whichAgenticTui();
if (result) {
console.log(`Running in ${result.tool}`);
console.log(`Confidence: ${result.confidence}`);
console.log(`Detected via: ${result.signals.join(", ")}`);
}Check for a specific tool
import { isSpecificAgenticTui } from "is-agentic-tui";
if (isSpecificAgenticTui("claude-code")) {
console.log("Running inside Claude Code");
}Supported Tools
| Tool | Environment Variable | Confidence |
|------|---------------------|------------|
| Claude Code | CLAUDECODE=1 | high |
| Claude Code | CLAUDE_CODE_ENTRYPOINT | medium |
| Claude Code | CLAUDE_PATH contains "claude-code" | medium |
| Cursor Agent | CURSOR_AGENT=1 | high |
| Cursor Agent | CURSOR_INVOKED_AS=cursor-agent | medium |
| Gemini CLI | GEMINI_CLI=1 | high |
| Aider | AIDER=1 | high* |
*Aider detection is currently unverified and may need adjustment based on actual Aider behavior.
API
isAgenticTui(): boolean
Returns true if running inside any detected agentic TUI.
whichAgenticTui(): DetectionResult | null
Returns detailed detection information, or null if not in an agentic TUI.
import type { DetectionResult } from "is-agentic-tui";
// DetectionResult has: tool, confidence, and signals propertiesisSpecificAgenticTui(tool: AgenticTui): boolean
Returns true if running inside the specified tool.
Confidence Levels
- High: Definitive signal detected (e.g.,
CLAUDECODE=1) - Medium: Probable signal detected, but less certain (e.g.,
CLAUDE_CODE_ENTRYPOINTwithoutCLAUDECODE=1)
When multiple tools could match, high-confidence matches take priority.
Use Cases
- Adjust output formatting: Simplify or enrich output for AI consumption
- Skip interactive prompts: Auto-accept defaults when an agent is driving
- Enable verbose logging: Help agents understand what's happening
- Disable animations: Remove spinners and progress bars that don't render well
- Modify error messages: Provide more structured errors for agent parsing
License
ISC
