Skip to main content

Documentation Index

Fetch the complete documentation index at: https://quintsecurity.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Platform Detection

Quint identifies AI agent platforms through multiple independent systems that converge in the unified session tracker. The detection sources span both the ES extension (OS-level) and the forward proxy (network-level), with 21 platform signatures maintained in sync across both.

Detection Sources


ES Extension: Agent Detection Cascade

The EndpointSecurity extension uses a 4-layer cascade to detect agent processes, evaluated in priority order:

Layer 1: Code Signing (Highest Confidence)

Uses macOS code signing identity verified cryptographically by the kernel. Unforgeable without the vendor’s signing key.
PlatformTeam IDSigning IDsTeam-Only Trust
claude-codeQ6L2SF6YDWcom.anthropic.claude-codeYes
claude-desktopQ6L2SF6YDWcom.anthropic.claudefordesktop, .helperYes
cursorVDXQ22DGB9com.todesktop.230313mzl4w4u92, .helperYes
copilotUBF8T346G9com.microsoft.VSCodeNo (Microsoft has many products)
For vendors with 3 or fewer signing IDs, a TeamID-only match is accepted (covers new products from a known vendor). For vendors with many products (Microsoft), both TeamID and SigningID must match.

Layer 2: Process Name/Path

Falls back to process name (case-insensitive exact) and path (substring) matching. Covers all 21 platforms.

Layer 3: Arg Match

For interpreter processes (node, python, bun, deno), checks command-line arguments for agent script patterns. Catches cases like node /path/to/claude-code/main.js.

Layer 4: Parent Cascade

If the parent process is already tracked as an agent, the child inherits agent status. Captures the full process tree.

Forward Proxy: Network-Level Detection

The proxy adds 5 additional detection layers for traffic that flows through it.

Destination Domain

Confidence: 0.85 - 1.0
DomainPlatformConfidence
api2.cursor.sh / api3.cursor.shcursor1.0
server.codeium.comwindsurf0.95
windsurf-api.codeium.comwindsurf1.0
api.githubcopilot.comcopilot1.0
copilot-proxy.githubusercontent.comcopilot0.95
aichat.augmentcode.comaugment1.0
api.devin.aidevin1.0
api.amp.devamp0.95
api.pearai.devpearai0.95
api.trae.aitrae0.95

HTTP Headers

Confidence: 0.9
HeaderPlatform
x-cursor-checksumcursor
x-cursor-client-versioncursor
copilot-integration-idcopilot
editor-version: vscode-copilot/*copilot
x-codeium-session-idwindsurf
x-windsurf-session-idwindsurf
x-kiro-session-idkiro
x-augment-session-idaugment
x-devin-session-iddevin
x-cline-session-idcline

System Prompt Fingerprint

Confidence: 0.95 When the proxy intercepts request bodies (MITM mode), it inspects system prompts for characteristic substrings:
SubstringPlatform
"You are Claude Code"claude-code
"designed by Cursor"cursor
"GitHub Copilot"copilot
"Windsurf AI"windsurf
"You are Cline"cline
"Continue Dev"continue
"You are Goose"goose
"You are Codex"codex
"Gemini CLI"gemini-cli
"You are Amp"amp
System prompt fingerprinting requires MITM TLS interception. In passthrough mode, request bodies are encrypted end-to-end and this layer is skipped.

User-Agent

Confidence: 0.85
User-Agent SubstringPlatform
claude-codeclaude-code
cursorcursor
copilotcopilot
windsurfwindsurf
aideraider
clinecline
continuecontinue
zedzed
goosegoose

Protocol Fingerprint

Confidence: 0.7
SignalPlatform
Connect RPC + Protobuf encodingwindsurf (Codeium uses Connect protocol)
gRPC with Codeium service pathswindsurf
WebSocket upgrade to MCP endpointVarious (MCP-native platforms)

Process Scanner

The daemon runs a process scanner every 5 seconds that checks the system process table against the same 21 agent signatures used by the ES extension. This provides:
  • Bootstrap discovery — agents already running when the daemon starts (ES only sees new launches)
  • Real start times — recovered via ps etime for accurate session duration
  • Working directories — resolved via lsof when not available from other sources

Confidence Merging

When multiple proxy layers identify the same platform, confidence is boosted:
  • The highest confidence from any single layer is taken as the base score
  • If a second layer agrees, confidence is boosted by +0.05 (capped at 1.0)
  • If three or more layers agree, confidence is boosted by +0.05 again

Retroactive Backfill

When the first request from a new agent cannot be classified (e.g., a plain HTTPS CONNECT with no distinctive headers), the agent is temporarily labeled unknown. As subsequent requests arrive with richer signals (system prompt content, platform-specific headers), Quint:
  1. Reclassifies the agent with the new platform identity
  2. Updates all previous events from that agent session with the correct platform
  3. Recalculates risk scores if the platform change affects policy matching

21 Supported Platforms

Platform IDDisplay NameES DetectionProxy Detection
claude-codeClaude CodeCode signing (Q6L2SF6YDW), process claudeUA, system prompt
claude-browser-extClaude Browser ExtPath Claude.app/Contents/Helpers/chrome-native-host
claude-desktopClaude DesktopCode signing (Q6L2SF6YDW), process Claude
cursorCursorCode signing (VDXQ22DGB9), process cursorDomains api2.cursor.sh, header x-cursor-checksum
copilotGitHub CopilotCode signing (UBF8T346G9 + com.microsoft.VSCode)Domain api.githubcopilot.com, header copilot-integration-id
windsurfWindsurfProcess windsurf, path Windsurf.appDomain server.codeium.com, Connect RPC
kiroKiroProcess kiro, path Kiro.appHeader x-kiro-session-id
codexCodex CLIProcess codex, path codex-cliSystem prompt fingerprint
aiderAiderProcess aiderUA substring, system prompt
clineClineProcess clineHeader x-cline-session-id, system prompt
continueContinueProcess continueSystem prompt, UA substring
augmentAugmentProcess augmentDomain aichat.augmentcode.com
gooseGooseProcess gooseSystem prompt, UA substring
gemini-cliGemini CLIProcess gemini, path gemini-cliSystem prompt Gemini CLI
ampAmpProcess ampDomain api.amp.dev, system prompt
zedZedProcess zed, path Zed.appUA substring
opencodeOpenCodeProcess opencodeUA substring
pearaiPearAIProcess pearai, path PearAI.appDomain api.pearai.dev
traeTraeProcess trae, path Trae.appDomain api.trae.ai
voidVoidProcess void, path Void.appUA substring
devinDevinProcess devinDomain api.devin.ai
The signature lists in the ES extension (AgentSignatures.swift), process scanner (procscan/signatures.go), and agent detect module (agentdetect/fingerprints.go) are kept in sync. CI enforces consistency.