Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions doc/configuration/adapters-acp.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,15 @@ require("codecompanion").setup({
})
```

## Setup: Cline CLI

To use [Cline CLI](https://cline.bot/cli) within CodeCompanion, you'll need to take the following steps:

1. [Install](https://docs.cline.bot/getting-started/installing-cline#cli) Cline CLI.
2. Authenticate by running `cline auth`.
3. Select the `cline_cli` adapter in your chat buffer


## Setup: Codex

To use OpenAI's [Codex](https://openai.com/codex/), install an ACP-compatible adapter like [this](https://github.com/zed-industries/codex-acp) one from [Zed](https://zed.dev).
Expand Down
3 changes: 2 additions & 1 deletion doc/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ CodeCompanion is a Neovim plugin which enables you to code with AI, using LLMs a
- :speech_balloon: [Copilot Chat](https://github.com/features/copilot) meets [Zed AI](https://zed.dev/blog/zed-ai), in Neovim
- :zap: Integrates Neovim with LLMs and Agents in the CLI
- :electric_plug: Support for LLMs from Anthropic, Copilot, GitHub Models, DeepSeek, Gemini, Mistral AI, Novita, Ollama, OpenAI, Azure OpenAI, HuggingFace and xAI out of the box (or bring your own!)
- :robot: Support for [Agent Client Protocol](https://agentclientprotocol.com/overview/introduction), enabling coding with agents like [Augment Code](https://docs.augmentcode.com/cli/overview), [Cagent](https://github.com/docker/cagent) from Docker, [Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview), [Codex](https://openai.com/codex), [Copilot CLI](https://github.com/features/copilot/cli), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Goose](https://block.github.io/goose/), [Cursor CLI](https://cursor.com/docs/cli/overview), [Kimi CLI](https://github.com/MoonshotAI/kimi-cli), [Kiro](https://kiro.dev/cli/), [Mistral Vibe](https://github.com/mistralai/mistral-vibe) and [OpenCode](https://opencode.ai)
- :robot: Support for [Agent Client Protocol](https://agentclientprotocol.com/overview/introduction), enabling coding with agents like [Augment Code](https://docs.augmentcode.com/cli/overview), [Cagent](https://github.com/docker/cagent) from Docker, [Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview), [Cline CLI](https://docs.cline.bot/home), [Codex](https://openai.com/codex), [Copilot CLI](https://github.com/features/copilot/cli), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Goose](https://block.github.io/goose/), [Cursor CLI](https://cursor.com/docs/cli/overview), [Kimi CLI](https://github.com/MoonshotAI/kimi-cli), [Kiro](https://kiro.dev/cli/), [Mistral Vibe](https://github.com/mistralai/mistral-vibe) and [OpenCode](https://opencode.ai)
- :heart_hands: User contributed and supported [adapters](/configuration/adapters-http#community-adapters)
- :battery: Support for [Model Context Protocol (MCP)](/model-context-protocol)
- :rocket: [Inline transformations](/usage/inline.html), code creation and refactoring
Expand All @@ -47,6 +47,7 @@ CodeCompanion uses [HTTP](configuration/adapters-http) and [ACP](configuration/a
- Augment Code (`auggie_cli`) - Requires an API key
- Cagent (`cagent`)
- Claude Code (`claude_code`) - Requires an API key or a Claude Pro subscription
- Cline CLI (`cline_cli`)
- Codex (`codex`) - Requires an API key
- Copilot (`copilot`) - Requires a token which is created via `:Copilot setup` in [Copilot.vim](https://github.com/github/copilot.vim)
- Gemini CLI (`gemini_cli`) - Requires an API key or a Gemini Pro subscription
Expand Down
64 changes: 64 additions & 0 deletions lua/codecompanion/adapters/acp/cline_cli.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
local helpers = require("codecompanion.adapters.acp.helpers")

---@class CodeCompanion.ACPAdapter.ClineCLI: CodeCompanion.ACPAdapter
return {
name = "cline_cli",
formatted_name = "Cline CLI",
type = "acp",
roles = {
llm = "assistant",
user = "user",
},
opts = {
vision = true,
},
commands = {
default = {
"cline",
"--acp",
},
},
defaults = {
mcpServers = {},
timeout = 20000, -- 20 seconds
-- mode = "plan", -- Optional: Set default agent mode (e.g., "plan", "act")
},
parameters = {
protocolVersion = 1,
clientCapabilities = {
fs = { readTextFile = true, writeTextFile = true },
},
clientInfo = {
name = "CodeCompanion.nvim",
version = "1.0.0",
},
},
handlers = {
---@param self CodeCompanion.ACPAdapter
---@return boolean
setup = function(self)
return true
end,

---Manually handle authentication
---@param self CodeCompanion.ACPAdapter
---@return boolean
auth = function(self)
return true
end,

---@param self CodeCompanion.ACPAdapter
---@param messages table
---@param capabilities table
---@return table
form_messages = function(self, messages, capabilities)
return helpers.form_messages(self, messages, capabilities)
end,

---Function to run when the request has completed. Useful to catch errors
---@param self CodeCompanion.ACPAdapter
---@param code number
---@return nil
on_exit = function(self, code) end,
},
}
1 change: 1 addition & 0 deletions lua/codecompanion/config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ local defaults = {
auggie_cli = "auggie_cli",
cagent = "cagent",
claude_code = "claude_code",
cline_cli = "cline_cli",
codex = "codex",
cursor_cli = "cursor_cli",
copilot_acp = "copilot_acp",
Expand Down
Loading