Zed Editor Integration
January 13, 2026 ยท View on GitHub
LLxprt Code integrates with the Zed editor as an AI assistant using the Agent Communication Protocol (ACP). This guide covers setup, configuration, and usage.
Prerequisites
- Zed Editor: Download from zed.dev
- LLxprt Code: Installed globally via npm (
npm install -g @vybestack/llxprt-code) - Provider API Keys: API keys for your chosen provider(s)
Quick Start
1. Find Your LLxprt Binary Path
First, locate your llxprt installation:
# On macOS/Linux
which llxprt
# Or use whereis
whereis llxprt
# Common locations:
# - macOS (Homebrew): /opt/homebrew/bin/llxprt or /usr/local/bin/llxprt
# - Linux: /usr/local/bin/llxprt or ~/.npm-global/bin/llxprt
# - npm global: Check with: npm config get prefix
2. Configure Zed Settings
Open Zed settings (Cmd+, on macOS, Ctrl+, on Linux) and add llxprt under agent_servers:
{
"agent_servers": {
"llxprt": {
"command": "/path/to/llxprt",
"args": ["--experimental-acp"]
}
}
}
Replace /path/to/llxprt with the path from step 1.
Configuration Approaches
There are two main ways to configure LLxprt for Zed:
Approach 1: Profile-Based (Recommended)
Best for: Users who want to save configurations and easily switch between them.
First, create and save a profile in LLxprt:
# Launch llxprt interactively
llxprt
# Inside llxprt, configure your provider
/provider anthropic
/model claude-sonnet-4-5-20250929
/auth anthropic enable # or use /key or /keyfile
# Save the profile
/profile save my-claude-profile
# Set as default (optional)
/profile set-default my-claude-profile
Then configure Zed to use the profile:
{
"agent_servers": {
"llxprt-claude": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--profile-load",
"my-claude-profile",
"--yolo"
]
}
}
}
Flags explained:
--experimental-acp: Enables ACP mode for Zed integration (required)--profile-load <name>: Loads a saved profile configuration--yolo: Auto-approves actions without confirmation prompts (optional)
Approach 2: Direct Flags
Best for: Users who want explicit control or don't want to manage profiles.
Configure provider, model, and authentication directly in Zed settings:
{
"agent_servers": {
"llxprt-claude": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"anthropic",
"--model",
"claude-sonnet-4-5-20250929",
"--keyfile",
"/Users/username/.config/anthropic/api-key.txt",
"--yolo"
]
}
}
}
Available flags:
--provider <name>: Provider to use (anthropic, openai, gemini, groq, etc.)--model <name>: Model name/ID--key <apikey>: API key directly (not recommended for security)--keyfile <path>: Path to file containing API key--baseurl <url>: Custom base URL for OpenAI-compatible providers--set <key=value>: Set ephemeral settings (can be repeated)--yolo: Auto-approve all actions
Provider-Specific Examples
Claude (Anthropic)
Profile-based:
{
"agent_servers": {
"llxprt-claude": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--profile-load",
"claude-profile",
"--yolo"
]
}
}
}
Direct flags:
{
"agent_servers": {
"llxprt-claude": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"anthropic",
"--model",
"claude-sonnet-4-5-20250929",
"--keyfile",
"~/.config/anthropic/key.txt",
"--yolo"
]
}
}
}
OpenAI
Profile-based:
{
"agent_servers": {
"llxprt-gpt4": {
"command": "/opt/homebrew/bin/llxprt",
"args": ["--experimental-acp", "--profile-load", "openai-profile"]
}
}
}
Direct flags:
{
"agent_servers": {
"llxprt-gpt4": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"openai",
"--model",
"gpt-4-turbo-preview",
"--keyfile",
"~/.config/openai/key.txt"
]
}
}
}
Google Gemini
Profile-based:
{
"agent_servers": {
"llxprt-gemini": {
"command": "/opt/homebrew/bin/llxprt",
"args": ["--experimental-acp", "--profile-load", "gemini-profile"]
}
}
}
Direct flags:
{
"agent_servers": {
"llxprt-gemini": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"gemini",
"--model",
"gemini-2.0-flash-exp",
"--keyfile",
"~/.config/gemini/key.txt"
]
}
}
}
Cerebras (via OpenAI-compatible API)
Profile-based:
{
"agent_servers": {
"llxprt-cerebras": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--profile-load",
"cerebrasqwen3",
"--yolo"
]
}
}
}
Direct flags:
{
"agent_servers": {
"llxprt-cerebras": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"openai",
"--baseurl",
"https://api.cerebras.ai/v1",
"--model",
"llama3.3-70b",
"--keyfile",
"~/.config/cerebras/key.txt",
"--set",
"temperature=0.7",
"--yolo"
]
}
}
}
Local Models (Ollama/LM Studio)
Direct flags for Ollama:
{
"agent_servers": {
"llxprt-local": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"openai",
"--baseurl",
"http://localhost:11434/v1",
"--model",
"qwen2.5-coder:32b",
"--key",
"dummy"
]
}
}
}
Advanced Configuration
Using --set for Model Parameters
The --set flag allows you to override ephemeral settings:
{
"agent_servers": {
"llxprt-custom": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"openai",
"--model",
"gpt-4",
"--keyfile",
"~/.openai-key.txt",
"--set",
"temperature=0.3",
"--set",
"max-tokens=4096",
"--set",
"base-url=https://custom-endpoint.com"
]
}
}
}
Multiple Agent Configurations
You can configure multiple agents for different providers:
{
"agent_servers": {
"llxprt-claude": {
"command": "/opt/homebrew/bin/llxprt",
"args": ["--experimental-acp", "--profile-load", "claude"]
},
"llxprt-gpt4": {
"command": "/opt/homebrew/bin/llxprt",
"args": ["--experimental-acp", "--profile-load", "openai"]
},
"llxprt-local": {
"command": "/opt/homebrew/bin/llxprt",
"args": [
"--experimental-acp",
"--provider",
"openai",
"--baseurl",
"http://localhost:11434/v1",
"--model",
"qwen2.5-coder",
"--key",
"dummy"
]
}
}
}
Switch between agents in Zed using the assistant panel.
Debug Logging
Enable Debug Logs
Add the DEBUG environment variable to enable detailed logging:
{
"agent_servers": {
"llxprt-debug": {
"command": "/opt/homebrew/bin/llxprt",
"args": ["--experimental-acp", "--profile-load", "myprofile"],
"env": {
"DEBUG": "llxprt:*"
}
}
}
}
Warning: Debug logging creates large log files in ~/.llxprt/debug/. Only enable when troubleshooting.
Debug Namespaces
You can target specific components:
"env": {
"DEBUG": "llxprt:zed-integration"
}
Common namespaces:
llxprt:*- All debug outputllxprt:zed-integration- Zed integration onlyllxprt:providers:*- All provider debug outputllxprt:providers:anthropic- Anthropic provider onlyllxprt:providers:openai- OpenAI provider onlyllxprt:core:client- Core client operations
Troubleshooting
Issue: "Command not found" or agent won't start
Solution: Verify the llxprt binary path is correct:
which llxprt
# Update the "command" field in Zed settings with this path
Issue: Authentication failures
Solutions:
- Verify API key is valid:
cat ~/.config/provider/key.txt - Check keyfile path is absolute (not relative)
- For OAuth: Run
llxprtand complete/auth <provider> enableflow first - Try using
--keydirectly for testing (not recommended for production)
Issue: Agent appears in list but doesn't respond
Solutions:
- Enable debug logging (add
"env": {"DEBUG": "llxprt:*"}) - Check
~/.llxprt/debug/for error messages - Verify model name is correct for your provider
- Try with
--yoloflag to avoid confirmation prompts
Issue: "Failed to load profile"
Solutions:
- List available profiles:
llxprtthen/profile list - Verify profile name matches exactly (case-sensitive)
- Create profile if missing:
/profile save <name> - Use direct flags approach instead
Issue: Wrong model or provider being used
Solutions:
- Check for conflicting environment variables (
LLXPRT_DEFAULT_PROVIDER, etc.) - Use
--providerand--modelflags explicitly - Avoid mixing
--profile-loadwith conflicting flags
Issue: Rate limiting or quota errors
Solutions:
- Check provider dashboard for quota/limits
- Verify billing is active for your provider account
- Try a different model or provider
- Use
--setto adjust request parameters
Best Practices
- Security: Use
--keyfileinstead of--keyto avoid exposing keys in config files - Simplicity: Use profile-based approach for cleaner configurations
- Multiple Providers: Configure multiple agents to easily switch between providers
- Debug Sparingly: Only enable debug logging when troubleshooting
- YOLO Mode: Use
--yoloto streamline workflow, but understand it auto-approves all actions
Related Documentation
- Zed External Agents Documentation
- LLxprt Configuration Guide
- LLxprt Provider Guide
- LLxprt Profiles Documentation
- LLxprt Authentication Guide
See Also
- Issue #1116 - Documentation improvement tracking
- Discussion #209 - Community discussion on Zed integration