feat: add init command with agent scanning and cross-platform setup - #8
Merged
Conversation
Interactive command that scans for installed coding agents (Claude Code, Cursor, Windsurf, Claude Desktop, Codex CLI), lets users select which to configure, and sets up each with confirmation. Key design decisions: - CLI-based setup for agents with native commands (claude, codex) - Atomic config file writes (temp + rename) for others to prevent corruption - Full DI with ExecService, PromptService, FileSystemService for safe testing - Pure mergeServerConfig() for JSON operations, extensively tested - Does not require auth — uses lightweight deps, not createContainer() - Only catches ExitPromptError (Ctrl+C), rethrows unexpected errors Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements the `githits init` CLI command that scans for installed coding agents (Claude Code, Cursor, VS Code, Windsurf, Cline, Claude Desktop, Codex CLI, Gemini CLI, Google Antigravity), detects their configuration status, and sets up GitHits MCP integration via config-file or CLI methods. Includes cross-platform support (macOS, Linux, Windows) for agent detection paths using getAppDataPath(), comprehensive test coverage with platform stubbing for all three OS variants, and proper environment variable isolation for APPDATA on Windows. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds two new agents to init command scanning: - Kiro (config-file, ~/.kiro/, mcpServers, remote URL) - OpenCode (config-file, binary detection via which/where, "mcp" serversKey, array-based command format) Introduces optional detectBinary field on AgentDefinition for agents that should be detected by binary presence on PATH rather than config directory existence. Updates scanAgents to try binary detection before directory detection. Changes default mock exec to return exitCode 1 to prevent false positives in binary detection tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Project uses bun (bun.lock), so npm's lockfile should not be tracked. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Removes Kiro from the init command's agent scanning and all associated test fixtures and assertions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add shell:true on Windows for .cmd/.ps1 shim resolution in exec-service. Broaden Claude Desktop detection with LOCALAPPDATA and Programs paths. Add OpenCode directory fallback detection alongside binary detection. Fix lint issues (unused imports, non-null assertion). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Require CLI agents to be detected via executable availability instead of dot-directories. Align OpenCode Windows config paths and update init tests/docs to match the new detection contract.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
githits initCLI command that scans for 9 coding agents (Claude Code, Cursor, VS Code, Windsurf, Cline, Claude Desktop, Codex CLI, Gemini CLI, Google Antigravity), detects installation and configuration status, and sets up GitHits MCP integration via config-file or CLI methods.getAppDataPath()with properAPPDATAhandling on Windows.ExecService,FileSystemService,PromptService) for dependency injection and testability.confirm3prompt for yes/no/cancel flows.This PR was created off of this PR
Test plan
bun test— 376 tests pass across 27 filesbun run typecheck— cleanbun run format:check— cleanbun run build— clean🤖 Generated with Claude Code