Migration Guide: vim-chatgpt → vim-llm-agent

February 20, 2026 · View on GitHub

Overview

This plugin has been renamed from vim-chatgpt to vim-llm-agent to better reflect its capabilities as a full-featured LLM agent supporting multiple providers (OpenAI, Anthropic, Google, Ollama, OpenRouter).

Full backwards compatibility is maintained - all old configuration variables and directory names continue to work.

What Changed

Repository Name

  • Old: vim-chatgpt
  • New: vim-llm-agent

Configuration Variables

All configuration variables now use the g:llm_agent_ prefix, but old g:chat_gpt_ variables still work as fallbacks.

Old VariableNew VariableDescription
g:chat_gpt_api_keyg:llm_agent_api_keyAPI key for your provider
g:chat_gpt_modelg:llm_agent_modelModel to use
g:chat_gpt_providerg:llm_agent_providerProvider (openai, anthropic, etc.)
g:chat_gpt_max_tokensg:llm_agent_max_tokensMax tokens in response
g:chat_gpt_temperatureg:llm_agent_temperatureSampling temperature
g:chat_gpt_session_modeg:llm_agent_session_modeEnable persistent sessions
g:chat_gpt_enable_toolsg:llm_agent_enable_toolsEnable tool execution
g:chat_gpt_require_plan_approvalg:llm_agent_require_plan_approvalRequire plan approval
g:chat_gpt_require_tool_approvalg:llm_agent_require_tool_approvalRequire tool approval
g:chat_gpt_log_levelg:llm_agent_log_levelLogging verbosity
g:chat_gpt_recent_history_sizeg:llm_agent_recent_history_sizeRecent history window size

Project Directory

  • Old: .vim-chatgpt/
  • New: .vim-llm-agent/
  • Fallback: If .vim-chatgpt/ exists, it will be used automatically

Commands

All commands remain unchanged and continue to work:

CommandDescription
:AskMain chat interface
:GenerateCommitGenerate git commit message
:GptGenerateContextGenerate project context
:GptGenerateSummaryGenerate conversation summary
:GptBeSet agent persona

Note: The Gpt prefix in commands is kept for backwards compatibility and brevity.

Migration Options

Your existing configuration continues to work. No action needed.

" This continues to work indefinitely
let g:chat_gpt_api_key = $OPENAI_API_KEY
let g:chat_gpt_model = 'gpt-4'

Option 2: Gradual Migration

Update variables at your own pace. Mix and match old and new:

" Mix old and new - both work
let g:llm_agent_api_key = $ANTHROPIC_API_KEY
let g:chat_gpt_model = 'claude-3-5-sonnet-20241022'

Option 3: Full Migration

Update all variables to new names:

" New configuration style - FULLY SUPPORTED variables
let g:llm_agent_provider = 'anthropic'        " ✅ Supported
let g:llm_agent_model = 'claude-3-5-sonnet-20241022'  " ✅ Supported
let g:llm_agent_key = $ANTHROPIC_API_KEY     " ✅ Supported
let g:llm_agent_max_tokens = 8192            " ✅ Supported
let g:llm_agent_temperature = 0.7            " ✅ Supported
let g:llm_agent_lang = 'Spanish'             " ✅ Supported
let g:llm_agent_log_level = 2                " ✅ Supported
let g:llm_agent_recent_history_size = 30480  " ✅ Supported

" Note: The following still use old names internally (backwards compatible):
let g:chat_gpt_enable_tools = 1
let g:chat_gpt_require_plan_approval = 1
let g:chat_gpt_session_mode = 1
let g:chat_gpt_suppress_display = 0

Project Directory Migration

Automatic Migration

The plugin automatically handles directory migration:

  1. First checks for .vim-llm-agent/
  2. Falls back to .vim-chatgpt/ if it exists
  3. Creates .vim-llm-agent/ for new projects

Manual Migration (Optional)

To migrate your existing project data:

# In your project directory
mv .vim-chatgpt .vim-llm-agent

Or keep using .vim-chatgpt/ - it will continue to work.

Installation

Update Plugin Manager Config

vim-plug:

" Old
Plug 'username/vim-chatgpt'

" New
Plug 'username/vim-llm-agent'

Vundle:

" Old
Plugin 'username/vim-chatgpt'

" New
Plugin 'username/vim-llm-agent'

Pathogen:

# Old
cd ~/.vim/bundle
git clone https://github.com/username/vim-chatgpt.git

# New
cd ~/.vim/bundle
mv vim-chatgpt vim-llm-agent
cd vim-llm-agent
git remote set-url origin https://github.com/username/vim-llm-agent.git

Deprecation Timeline

No deprecation planned. The old variable names and directory names will continue to work indefinitely to ensure backwards compatibility.

Questions?

If you have any issues with the migration, please open an issue on GitHub.