diff --git a/readme.md b/readme.md index d8499ade..ba7f6231 100644 --- a/readme.md +++ b/readme.md @@ -178,10 +178,11 @@ There are also individual properties to check for each specific AI CLI ```cs var isCopilot = AiCliDetector.IsCopilot; +var isCursor = AiCliDetector.IsCursor; var isAider = AiCliDetector.IsAider; var isClaudeCode = AiCliDetector.IsClaudeCode; ``` -snippet source | anchor +snippet source | anchor diff --git a/src/DiffEngine.Tests/AiCliDetectorTest.cs b/src/DiffEngine.Tests/AiCliDetectorTest.cs index acacd970..49acc380 100644 --- a/src/DiffEngine.Tests/AiCliDetectorTest.cs +++ b/src/DiffEngine.Tests/AiCliDetectorTest.cs @@ -9,6 +9,7 @@ public void Props() #region AiCliDetectorProps var isCopilot = AiCliDetector.IsCopilot; + var isCursor = AiCliDetector.IsCursor; var isAider = AiCliDetector.IsAider; var isClaudeCode = AiCliDetector.IsClaudeCode; diff --git a/src/DiffEngine/AiCliDetector.cs b/src/DiffEngine/AiCliDetector.cs index bb822b90..28a780c6 100644 --- a/src/DiffEngine/AiCliDetector.cs +++ b/src/DiffEngine/AiCliDetector.cs @@ -18,11 +18,18 @@ static AiCliDetector() // https://docs.anthropic.com/en/docs/build-with-claude/claude-cli IsClaudeCode = variables.Contains("CLAUDECODE") || variables.Contains("CLAUDE_CODE_ENTRYPOINT"); + // Cursor + // https://cursor.com/docs/agent/terminal + IsCursor = variables.Contains("CURSOR_AGENT"); + Detected = IsCopilot || IsAider || - IsClaudeCode; + IsClaudeCode || + IsCursor; } + public static bool IsCursor { get; set; } + public static bool IsCopilot { get; } public static bool IsAider { get; }