# RepoPrompt Pair Programming Guide RepoPrompt is a powerful MCP (Model Context Protocol) server that enables sophisticated AI pair programming workflows. This guide explains how to use RepoPrompt with Claude Code for complex development tasks. ## Overview The pair programming mode allows Claude Code to collaborate with other AI models (like OpenAI's O1/O3 or Google's Gemini) by: - Claude Code acts as a **context manager** - gathering files, managing tokens, and handling tools - Another AI model acts as the **planner/executor** - providing deep reasoning and implementation - Both models work together continuously throughout the task ## Key Benefits 1. **Leverages Model Strengths**: Claude excels at tool use and navigation; reasoning models excel at complex problem-solving 2. **Optimal Context Management**: Reasoning models work best with complete context upfront rather than incremental discovery 3. **Continuous Collaboration**: Maintains conversation state and file context between messages 4. **Higher Quality Output**: More considered implementations for complex tasks ## Installation ### Prerequisites - Claude Code with MCP support - RepoPrompt MCP server installed ### Quick Setup ```bash # Install RepoPrompt if not already installed claude mcp add RepoPrompt -- /path/to/repoprompt_cli # Verify installation claude mcp list # Restart Claude Code to load the server # Use Cmd+R or restart from command line ``` ## Basic Workflow ### 1. Select Your Working Files First, identify and select files relevant to your task: ``` # List current selection manage_selection action="list" include_stats=true # Add specific files manage_selection action="add" paths=["src/main.ts", "src/utils.ts", "tests/main.test.ts"] # Or replace entire selection manage_selection action="replace" paths=["src/auth/login.ts", "src/auth/session.ts"] # Clear selection to start fresh manage_selection action="clear" ``` **Tips:** - Keep total context under 100K tokens (ideally ~60K) - Select only directly relevant files - Use `get_code_structure` to preview large files efficiently ### 2. Set Your Task Description Write a clear prompt describing what you want to accomplish: ``` set_prompt_state prompt="Implement user authentication with JWT tokens, including login, logout, and session management" ``` ### 3. Start the Pair Programming Session Begin with planning mode to have the AI create a detailed implementation plan: ``` chat_send mode="plan" message="Let's implement the authentication system as described" ``` ### 4. Execute the Plan Switch to edit mode to implement the changes: ``` chat_send mode="edit" message="Now let's implement the authentication module" ``` ## Advanced Features ### File Discovery Workflow Before starting, use these tools to find relevant files: ``` # Get project structure get_file_tree type="files" # Search for specific patterns search pattern="authentication" mode="both" # Preview file structure without full content get_code_structure paths=["src/auth.ts", "src/server.ts"] # Read specific files read_file path="src/config/auth.config.ts" ``` ### Context Management Strategy 1. **Start Minimal**: Begin with core files only 2. **Add Dependencies**: Include related files as needed 3. **Monitor Token Count**: Check with `manage_selection action="list" include_stats=true` 4. **Update Between Tasks**: Use `replace` when switching focus ### Working with Multiple Models RepoPrompt supports various AI models. List available presets: ``` list_models ``` Choose a specific model for your task: ``` chat_send mode="plan" model="DeepAnalysis" message="Analyze our authentication architecture" ``` ## Practical Examples ### Example 1: Adding a New Feature ``` # 1. Clear previous context manage_selection action="clear" # 2. Find relevant files search pattern="session manager" mode="both" # 3. Select core files manage_selection action="add" paths=["src/session-manager.ts", "src/types/session.ts", "tests/session.test.ts"] # 4. Set the task set_prompt_state prompt="Add session expiration and automatic cleanup features" # 5. Plan the implementation chat_send mode="plan" message="Design session expiration system with configurable timeouts" # 6. Execute the plan chat_send mode="edit" message="Implement the session expiration features" ``` ### Example 2: Debugging Complex Issues ``` # 1. Gather error context search pattern="error.*websocket" mode="content" # 2. Select relevant files manage_selection action="replace" paths=["src/websocket.ts", "src/error-handler.ts", "logs/recent-errors.log"] # 3. Describe the issue set_prompt_state prompt="WebSocket connections dropping intermittently under high load" # 4. Analyze with reasoning model chat_send mode="plan" message="Investigate and fix WebSocket stability issues" ``` ### Example 3: Refactoring ``` # 1. Select files to refactor manage_selection action="add" paths=["src/old-api.ts", "src/handlers/*.ts"] # 2. Set refactoring goals set_prompt_state prompt="Refactor API to use async/await instead of callbacks, maintain backward compatibility" # 3. Plan the refactor chat_send mode="plan" message="Create refactoring plan preserving all existing functionality" # 4. Execute incrementally chat_send mode="edit" message="Start refactoring the authentication handlers" ``` ## Best Practices ### 1. Context Selection - Start with minimal context and add as needed - Include test files when modifying code - Add configuration files for system-wide changes - Remove files that are no longer relevant ### 2. Prompt Writing - Be specific about requirements - Include constraints (e.g., "maintain backward compatibility") - Mention relevant technologies and patterns - Specify testing requirements ### 3. Mode Selection - Use `plan` mode for: - Complex architectural decisions - Multi-file refactoring - New feature design - Use `edit` mode for: - Direct implementation - Bug fixes with clear solutions - Following an established plan - Use `chat` mode for: - General discussions - Code exploration - Understanding existing code ### 4. Session Management - Continue existing chats for related work: ``` chat_tools action="list" chat_send chat_id="existing-id" message="Continue the refactoring" ``` - Start new chats for unrelated tasks - Name your chats for easy identification: ``` chat_send new_chat=true chat_name="Auth System Refactor" message="Starting auth refactor" ``` ## Troubleshooting ### Common Issues 1. **Token Limit Exceeded** - Check current usage: `manage_selection action="list" include_stats=true` - Remove unnecessary files: `manage_selection action="remove" paths=["large-file.ts"]` - Use code structure instead of full content for large files 2. **Model Not Responding** - Reasoning models can be slow, especially on complex tasks - Wait for completion before sending follow-up messages - Consider breaking large tasks into smaller chunks 3. **Context Lost Between Messages** - Ensure you're continuing the same chat session - Verify file selection hasn't changed: `manage_selection action="list"` - Check chat history: `chat_tools action="log"` 4. **Edit Mode Not Working** - Ensure you have write permissions for target files - Verify files exist and are selected - Check for syntax errors in previous edits ### Getting Help - Use `chat_tools action="log"` to review conversation history - Check file selection state with `manage_selection action="list"` - Verify model availability with `list_models` - Ensure RepoPrompt is running: `claude mcp list` ## Advanced Workflows ### Multi-Stage Development For complex features spanning multiple components: 1. **Stage 1: Architecture Planning** ``` manage_selection action="replace" paths=["docs/architecture.md", "src/index.ts"] chat_send mode="plan" message="Design microservice architecture" ``` 2. **Stage 2: Core Implementation** ``` manage_selection action="replace" paths=["src/core/*.ts", "src/types/*.ts"] chat_send mode="edit" message="Implement core service logic" ``` 3. **Stage 3: Integration** ``` manage_selection action="add" paths=["src/api/*.ts", "tests/integration/*.ts"] chat_send mode="edit" message="Add API endpoints and integration tests" ``` ### Collaborative Review Use RepoPrompt for code review and improvements: ``` # Select files for review manage_selection action="replace" paths=["src/new-feature/*.ts"] # Set review criteria set_prompt_state prompt="Review for security vulnerabilities, performance issues, and code style" # Get detailed analysis chat_send mode="plan" message="Perform comprehensive code review" ``` ## Tips for Success 1. **Let Models Play to Their Strengths** - Claude: File navigation, tool use, quick edits - O1/O3: Deep reasoning, complex algorithms, architecture - Gemini: Large context analysis, pattern recognition 2. **Maintain Clear Separation** - Planning: High-level design and approach - Execution: Actual code changes - Verification: Testing and validation 3. **Use Appropriate Context** - Include enough context for understanding - But not so much that it overwhelms the model - ~60K tokens is often the sweet spot 4. **Iterate Thoughtfully** - Start with planning before jumping to implementation - Review plans before execution - Test incrementally ## Conclusion RepoPrompt's pair programming mode enables sophisticated AI collaboration for complex development tasks. By leveraging multiple models' strengths and maintaining careful context management, you can tackle challenging problems more effectively than with a single model alone. Remember: The key is using Claude Code as an intelligent context manager while letting reasoning models handle complex problem-solving. This division of labor produces higher quality results than either model working alone.