Overview
Gentleman.Dots includes six AI assistants, but only one should be enabled at a time to avoid keybinding conflicts and unexpected behavior. By default, OpenCode is enabled with the Gentleman agent.Plugin Status Management
All AI plugin states are managed in a single file:Current Default State
The default configuration:OpenCode is the only AI plugin enabled by default. This provides the full Gentleman experience.
How to Switch Plugins
Switching Examples
- OpenCode → Avante
- OpenCode → CopilotChat
- OpenCode → Claude Code
- OpenCode → CodeCompanion
- OpenCode → Gemini
Use case: You want visual diff management and cursor planning mode.
Configuration Changes
After Restart
- OpenCode keybindings (
<leader>a*) will be inactive - Avante sidebar will be available on the left side
- Built-in Gentleman system prompt is included
Key Avante Features
- Visual diff accept/reject
- Cursor planning mode
- Sidebar layout (30% width, left side)
- Copilot integration with Claude Sonnet 4
Comparison Table
| Plugin | Default | Keybind Prefix | Layout | Special Requirements |
|---|---|---|---|---|
| OpenCode | ✅ Enabled | <leader>a | Left sidebar | OpenCode CLI |
| Avante | Disabled | Varies | Left sidebar (30%) | Build from source |
| CopilotChat | Disabled | Chat commands | Horizontal | GitHub Copilot subscription |
| CodeCompanion | Disabled | <leader>a | Left chat | None (multiple providers) |
| Claude Code | Disabled | <leader>a | Left terminal (30%) | Claude Code CLI |
| Gemini | Disabled | Via CLI | N/A | Gemini CLI |
Keybinding Conflicts
Many plugins use similar keybinding prefixes. Here’s what to watch for:Keybinding Overview
| Plugin | Toggle | Chat | Actions | Other |
|---|---|---|---|---|
| OpenCode | <leader>aa | <leader>ai | Built-in prompts | <leader>as (select) |
| Avante | Custom | Sidebar | Visual diffs | Auto-opens |
| CopilotChat | N/A | :CopilotChat | N/A | Various commands |
| CodeCompanion | N/A | <leader>ac | <leader>aa | <leader>ae (explain) |
| Claude Code | <leader>ac | N/A | <leader>aa (accept) | <leader>ar (resume) |
| Gemini | Via CLI | Via CLI | Via CLI | External tool |
Verifying the Switch
Check Loaded Plugins
After restarting Neovim, verify with Lazy:Look for your enabled plugin. It should show as loaded (not lazy-loaded or disabled).
Test Keybindings
Try a keybinding specific to the new plugin:
- Avante: Visual select code, check for Avante sidebar
- CopilotChat: Run
:CopilotChat - CodeCompanion: Run
:CodeCompanion - Claude Code: Press
<leader>ac - Gemini: Run
gemini-cliin terminal
Switching Back to OpenCode
To return to the default Gentleman experience:CLI Tool Requirements
Some plugins require external CLI tools:OpenCode
OpenCode
Claude Code
Claude Code
Gemini
Gemini
CopilotChat
CopilotChat
Requires GitHub Copilot subscription.No additional CLI tools needed, but you must have:
- Active GitHub Copilot subscription
- Authenticated Copilot in Neovim
Avante
Avante
No external CLI required, but may need to build from source:
CodeCompanion
CodeCompanion
No external CLI required. Uses built-in adapters for various providers:
- Copilot (requires GitHub subscription)
- GPT-4o/4.1 (requires OpenAI API key)
- Gemini 2.5 Pro (requires Google API key)
Troubleshooting
Plugin not loading after switch
Plugin not loading after switch
Symptoms: New plugin isn’t active after restart.Solutions:
- Verify you set
enabled = trueindisabled.lua - Check plugin-specific config files (some have their own
enabledflag) - Run
:Lazy syncto ensure plugins are installed - Completely close and restart Neovim (not just
:source) - Check for errors:
:messages
Both plugins active simultaneously
Both plugins active simultaneously
Symptoms: Keybindings from multiple plugins responding.Solutions:
- Verify only ONE plugin has
enabled = trueindisabled.lua - Check plugin-specific configs (some plugins aren’t in
disabled.lua) - Restart Neovim completely
- Use
:Lazyto confirm only one AI plugin is loaded
Keybindings not working
Keybindings not working
Symptoms: New plugin’s keybindings don’t respond.Solutions:
- Verify plugin is loaded:
:Lazy - Check for conflicting mappings:
:map <leader>a - Review plugin’s config file for keybinding definitions
- Some plugins require triggering (e.g.,
:CopilotChatfirst) - Check
:messagesfor errors
Missing CLI tool errors
Missing CLI tool errors
Symptoms: Errors about missing Then restart Neovim.
opencode, claudecode, or gemini.Solutions:Install the required CLI tool:Build errors with Avante
Build errors with Avante
Symptoms: Avante fails to build on installation.Solutions:
- Ensure build tools are installed:
- Try manual build:
- Check Avante documentation for platform-specific requirements
Best Practices
Test Before Committing
When switching plugins, test thoroughly before relying on it for production work.
Document Your Choice
Keep a note of which plugin you’re using and why, especially if you switch frequently.
Learn One Deeply
Rather than switching often, pick one AI plugin and learn it deeply for maximum productivity.
Backup Configs
Keep a backup of
disabled.lua with different combinations if you experiment frequently.Recommended Plugin for Different Use Cases
| Use Case | Recommended Plugin | Why |
|---|---|---|
| Full Gentleman experience | OpenCode | Custom agent, modern CLI tools, MCP integration |
| Visual diff management | Avante | Cursor planning, visual accept/reject |
| GitHub Copilot user | CopilotChat | Official integration, 15+ prompts |
| Multi-provider flexibility | CodeCompanion | Supports Copilot, OpenAI, Gemini |
| Direct Claude access | Claude Code | Native Claude CLI integration |
| Google Gemini user | Gemini | Simple Gemini CLI integration |
Next Steps
AI Overview
Review all available AI integration options
OpenCode Setup
Deep dive into OpenCode configuration
Gentleman Agent
Learn about the Gentleman agent philosophy