return {
  "madox2/vim-ai",
  config = function ()
    vim.g.vim_ai_roles_config_file = '/home/jay/.config/nvim/vim-ai-roles.ini'

    local vim_ai_endpoint_url = "http://localhost:11434/v1/chat/completions"
    -- local vim_ai_endpoint_url = "http://192.168.88.11:11434/v1/chat/completions"
    local vim_ai_model = "gemma3:12b"
    local vim_ai_model_large = "deepseek-r1"
    local vim_ai_temperature = 0.3

    local vim_ai_chat_config = {
      engine = "chat",
      options = {
        model = vim_ai_model,
        temperature = vim_ai_temperature,
        endpoint_url = vim_ai_endpoint_url,
        auth_type = "none",
        max_tokens = 0,
        request_timeout = 180,
      },
      ui = {
        code_syntax_enabled = 1,
      },
    }

    local vim_ai_edit_config = {
      engine = "chat",
      options = {
        model = vim_ai_model,
        temperature = vim_ai_temperature,
        endpoint_url = vim_ai_endpoint_url,
        auth_type = "none",
        max_tokens = 0,
        request_timeout = 180,
      },
      ui = {
        paste_mode = 1,
      },
    }

    vim.g.vim_ai_chat = vim_ai_chat_config
    vim.g.vim_ai_complete = vim_ai_edit_config
    vim.g.vim_ai_edit = vim_ai_edit_config

    function git_commit_message_fn(model, intent)
      model = model or vim_ai_model
      intent = intent or ""
      local diff = vim.fn.system('git --no-pager diff --staged')
      local initial_prompt = [[
      You are a Senior Software Engineer responsible for crafting clear and informative Git commit messages. Your goal is to ensure that every commit message contributes to the maintainability and understandability of the codebase.  A well-written commit message allows other developers to quickly grasp the purpose and impact of the changes.

**Here's the structure we'll use for all commit messages:**

1.  **Subject Line (Required):**
    *   Use a conventional prefix: `feat:`, `fix:`, `chore:`, `refactor:`, `docs:`, `test:`, `style:`, `perf:`, `build:`
    *   Keep it concise – 50 characters or less.
    *   Use an imperative verb (e.g., "Add...", "Fix...", "Update...", "Remove...").

2.  **Body (Optional, but recommended):**
    *   Start with a blank line after the subject line.
    *   Provide a brief explanation (3-4 bullet points) of *why* the change was made, not *what* was changed.
    *   Keep lines under 72 characters.
    *   Avoid implementation details.

**Do not include:** Markdown, emojis, or overly detailed code descriptions.

      ]]
      local prompt = [["\n" .. "**Now, generate a Git commit message based on the following changes:**\n```" ]] .. diff .. [[```]]
      local range = 0

      if not (intent == "")
      then 
        prompt = [[Short Description:\n"]] .. intent .. prompt 
      end

      local config = {
        engine = "chat",
        options = {
          model = model,
          initial_prompt = initial_prompt,
          endpoint_url = vim_ai_endpoint_url,
          auth_type = "none",
          temperature = 0.8,
          request_timeout = 240,
        },
      }
      vim.api.nvim_call_function("vim_ai#AIRun", { range, config, prompt })
    end

    vim.api.nvim_create_user_command("GitCommitMessage", function(opts)
      git_commit_message_fn(vim_ai_model, opts.args)
    end, {nargs = '?'})
    vim.api.nvim_create_user_command("GitCommitMessageL", function(opts)
      git_commit_message_fn(vim_ai_model_large, opts.args)
    end, {nargs = '?'})

  end
}
