The extension is configured within the codecompanion.nvim setup function under the extensions.history key.
Key Configuration Areas
Chat Management
auto_save: Boolean to enable/disable automatic session saving.keymap: Keymap to open history from chat buffer (default: gh).save_chat_keymap: Keymap to save chat manually (default: sc).picker: Choose between "telescope", "snacks", "fzf-lua", or "default".auto_generate_title: Enables automatic title generation.title_generation_opts: Configure adapter, model, and refresh_every_n_prompts for titles.
Summary System
create_summary_keymap: Keymap to generate summary (default: gcs).browse_summaries_keymap: Keymap to browse summaries (default: gbs).generation_opts: Configure adapter, model, context_size, and system_prompt for summaries.
Memory System (Requires VectorCode CLI)
auto_create_memories_on_summary_generation: Automatically index summaries.vectorcode_exe: Path to the vectorcode executable.index_on_startup: Whether to index existing memories on startup.
require("codecompanion").setup({
extensions = {
history = {
enabled = true,
opts = {
keymap = "gh",
save_chat_keymap = "sc",
auto_save = true,
expiration_days = 0,
picker = "telescope",
auto_generate_title = true,
title_generation_opts = {
adapter = nil,
model = nil,
refresh_every_n_prompts = 0,
max_refreshes = 3,
format_title = function(original_title) return original_title end
},
summary = {
create_summary_keymap = "gcs",
browse_summaries_keymap = "gbs",
generation_opts = {
adapter = nil,
model = nil,
context_size = 90000,
include_references = true,
include_tool_outputs = true,
system_prompt = nil,
format_summary = nil,
},
},
memory = {
auto_create_memories_on_summary_generation = true,
vectorcode_exe = "vectorcode",
tool_opts = { default_num = 10 },
notify = true,
index_on_startup = false,
},
}
}
}
})