return { 'azorng/goose.nvim', config = function() require('goose').setup({ keymap = { global = { toggle = 'xg', -- Open goose. Close if opened open_input = 'xx', -- Opens and focuses on input window on insert mode open_input_new_session = 'xX', -- Opens and focuses on input window on insert mode. Creates a new session open_output = 'xo', -- Opens and focuses on output window toggle_focus = 'xt', -- Toggle focus between goose and last window close = 'xq', -- Close UI windows toggle_fullscreen = 'xf', -- Toggle between normal and fullscreen mode select_session = 'xs', -- Select and load a goose session goose_mode_chat = 'xmc', -- Set goose mode to `chat`. (Tool calling disabled. No editor context besides selections) goose_mode_auto = 'xma', -- Set goose mode to `auto`. (Default mode with full agent capabilities) configure_provider = 'xp', -- Quick provider and model switch from predefined list diff_open = 'xd', -- Opens a diff tab of a modified file since the last goose prompt diff_next = 'x]', -- Navigate to next file diff diff_prev = 'x[', -- Navigate to previous file diff diff_close = 'xc', -- Close diff view tab and return to normal editing diff_revert_all = 'xra', -- Revert all file changes since the last goose prompt diff_revert_this = 'xrt', -- Revert current file changes since the last goose prompt }, window = { submit = '', }, }, }) end, dependencies = { 'nvim-lua/plenary.nvim', { 'MeanderingProgrammer/render-markdown.nvim', }, }, }