Native Codeium plugin for Neovim.
Feel free to create an issue/PR if you want to see anything else implemented.
use {
"Exafunction/codeium.nvim",
requires = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
},
config = function()
require("codeium").setup({
})
end
}
{
"Exafunction/codeium.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
},
config = function()
require("codeium").setup({
})
end
},
After installation and configuration, you will need to authenticate with
Codeium. This can be done by running :Codeium Auth
, copying the token from
your browser and pasting it into API token request.
To use Codeium Chat, execute the :Codeium Chat
command. The chat will be opened
in your default browser using the xdg-open command.
config_path
: the path to the config file, used to store the API key.
bin_path
: the path to the directory where the Codeium server will be downloaded to.
api
: information about the API server to use:
host
: the hostname. Example: "codeium.example.com"
. Required when using enterprise modeport
: the port. Defaults to 443
path
: the path prefix to the API server. Default for enterprise: "/_route/api_server"
portal_url
: the portal URL to use (for enterprise mode). Defaults to host:port
enterprise_mode
: enable enterprise mode
detect_proxy
: enable or disable proxy detection
enable_chat
: enable chat functionality
tools
: paths to binaries used by the plugin:
uname
: not needed on Windows, defaults given.
uuidgen
curl
:
gzip
: not needed on Windows, default implemenation given using powershell.exe Expand-Archive instead
language_server
: The path to the language server downloaded from the official source.
wrapper
: the path to a wrapper script/binary that is used to execute any
binaries not listed under tools
. This is primarily useful for NixOS, where
a FHS wrapper can be used for the downloaded codeium server.
After calling setup
, this plugin will register a source in nvim-cmp. nvim-cmp
can then be set up to use this source using the sources
configuration:
cmp.setup({
-- ...
sources = {
-- ...
{ name = "codeium" }
}
})
If you are seeing the codeium
source as unused in :CmpStatus
, make sure that nvim-cmp
setup happens before the codeium.nvim
setup.
To set a symbol for codeium using lspkind, use the Codeium
keyword. Example:
cmp.setup({
-- ...
formatting = {
format = require('lspkind').cmp_format({
mode = "symbol",
maxwidth = 50,
ellipsis_char = '...',
symbol_map = { Codeium = "", }
})
}
})
The plugin log is written to ~/.cache/nvim/codeium.log
.
You can set the logging level to one of trace
, debug
, info
, warn
,
error
by exporting the DEBUG_CODEIUM
environment variable.
This plugin was initially developed by @jcdickinson.