ACP (Agent Client Protocol)#
gptme implements the Agent Client Protocol (ACP), allowing it to be used as a coding agent from any ACP-compatible editor such as Zed and JetBrains IDEs.
This enables a seamless integration where your editor can leverage gptme’s powerful toolset (code execution, file editing, web browsing, etc.) directly within your development workflow.
Note
ACP support is currently in development. Phase 1 (basic integration) is complete. Future phases will add tool call reporting, session persistence, and enhanced features.
Installation#
To use gptme as an ACP agent, install with the acp extra:
pipx install 'gptme[acp]'
Or with pip:
pip install 'gptme[acp]'
Usage#
Running the Agent#
Start the gptme ACP agent:
# Via module
python -m gptme.acp
The agent communicates via stdio using the ACP protocol, making it compatible with any ACP client.
Editor Integration#
Zed Editor
Zed has native ACP support. To use gptme as your coding agent:
Install gptme with ACP support
Configure Zed to use gptme as the agent command
The agent will be available in Zed’s agent panel
JetBrains IDEs
JetBrains IDEs with ACP plugin support can integrate with gptme similarly. Configure the plugin to use python -m gptme.acp as the agent command.
Architecture#
The ACP implementation in gptme consists of:
- GptmeAgent
The main agent class implementing the ACP interface. It:
Handles
initializeto set up the gptme environmentCreates sessions via
new_sessionwith proper loggingProcesses prompts through gptme’s chat infrastructure
Streams responses back to the client
- Session Management
Each ACP session maps to a gptme conversation with:
Isolated log directory
Working directory context
Full tool access (code execution, file editing, etc.)
Protocol Methods#
The agent implements the following ACP methods:
- initialize
Negotiates protocol version and initializes gptme. Called once when a client connects.
- new_session
Creates a new gptme session with:
Unique session ID
Working directory context
Initial system prompts and tool configuration
- prompt
Handles user prompts by:
Converting ACP content to gptme messages
Running through gptme’s chat step
Streaming responses via
session/updateReturning completion status
Configuration#
The ACP agent uses gptme’s standard configuration. You can customize:
Model: Set via
GPTME_MODELenvironment variable or configTools: All gptme tools are available by default
Working Directory: Inherited from the
new_sessionrequest
Example configuration in ~/.config/gptme/config.toml:
[general]
model = "anthropic/claude-sonnet-4-20250514"
[tools]
# Tools are auto-confirmed in ACP mode
# Configure allowlist if needed
allowlist = ["python", "shell", "patch", "save"]
Capabilities#
Through ACP, gptme provides:
Code Execution: Run Python and shell commands
File Operations: Read, write, and patch files
Web Browsing: Search and read web pages
Context Awareness: Workspace and project understanding
Conversation Memory: Persistent session history
Development Roadmap#
Phase 1: Basic Integration ✅ Complete
Agent initialization and session creation
Prompt handling with response streaming
Full tool access through gptme
Phase 2: Tool Call Reporting 🚧 In Progress
Report tool executions to client
Permission request workflow
Status lifecycle tracking
Phase 3: Session Persistence 🚧 In Progress
Save and restore sessions
Cancellation support
Session metadata management
Phase 4: Polish & Documentation 🚧 Current
Comprehensive documentation
Example configurations
Integration guides
See Issue #977 for implementation progress.
Troubleshooting#
- “agent-client-protocol package not installed”
Install with:
pip install 'gptme[acp]'
Agent not responding
Check that gptme is properly configured
Verify your model API keys are set
Check stderr for error messages (ACP uses stdout for protocol)
Tool execution not working
Ensure tools are not blocked by configuration
Check working directory permissions