IDE integration overview
What is the agent client protocol (ACP)?
The Agent Client Protocol (ACP) is a standardized communication protocol that enables code editors and IDEs to interact with AI agents. ACP defines how clients (like code editors) and agents (like Faheem Code) communicate through a JSON-RPC 2.0 interface.
Supported IDEs
| IDE | Support Level | Setup Guide |
|---|---|---|
| Zed | Native | Built-in ACP support |
| Toad | Native | Universal terminal interface |
| VS Code | Community Extension | Via VSCode ACP extension |
| JetBrains | Native | IntelliJ, PyCharm, WebStorm, etc. |
Prerequisites
Before using Faheem Code with any IDE, you must:
-
Install Faheem Code CLI following the installation instructions
-
Configure your LLM settings using the
/settingscommand:faheemcode# Then use /settings to configure
The ACP integration will reuse the credentials and configuration from your CLI settings stored in ~/.faheem-code/settings.json.
How it works
- Your IDE launches
faheemcode acpas a subprocess - Communication happens via JSON-RPC 2.0 over stdio
- Faheem Code uses your configured LLM and runtime settings
- Results are displayed in your IDE's interface
The ACP command
The faheemcode acp command starts Faheem Code as an ACP server:
# Basic ACP server
faheemcode acp
# With LLM-based approval
faheemcode acp --llm-approve
# Resume a conversation
faheemcode acp --resume <conversation-id>
# Resume the latest conversation
faheemcode acp --resume --last
ACP options
| Option | Description |
|---|---|
--resume [ID] | Resume a conversation by ID |
--last | Resume the most recent conversation |
--always-approve | Auto-approve all actions |
--llm-approve | Use LLM-based security analyzer |
--streaming | Enable token-by-token streaming |
Confirmation modes
Faheem Code ACP supports three confirmation modes to control how agent actions are approved:
Always ask (default)
The agent will request user confirmation before executing each tool call or prompt turn. This provides maximum control and safety.
faheemcode acp # defaults to always-ask mode
Always approve
The agent will automatically approve all actions without asking for confirmation. Use this mode when you trust the agent to make decisions autonomously.
faheemcode acp --always-approve
LLM-based approval
The agent uses an LLM-based security analyzer to evaluate each action. Only actions predicted to be high-risk will require user confirmation, while low-risk actions are automatically approved.
faheemcode acp --llm-approve
Changing modes during a session
You can change the confirmation mode during an active session using slash commands:
| Command | Description |
|---|---|
/confirm always-ask | Switch to always-ask mode |
/confirm always-approve | Switch to always-approve mode |
/confirm llm-approve | Switch to LLM-based approval mode |
/help | Show all available slash commands |
Choosing an IDE
High-performance editor with native ACP support. Best for speed and simplicity.
Universal terminal interface. Works with any terminal, consistent experience.
Popular editor with community extension. Great for VS Code users.
IntelliJ, PyCharm, WebStorm, etc. Best for JetBrains ecosystem users.
Resuming conversations in IDEs
You can resume previous conversations in ACP mode. Since ACP mode doesn't display an interactive list, first find your conversation ID:
faheemcode --resume
This shows your recent conversations:
Recent Conversations:
--------------------------------------------------------------------------------
1. abc123def456 (2h ago)
Fix the login bug in auth.py
2. xyz789ghi012 (yesterday)
Add unit tests for the user service
--------------------------------------------------------------------------------
Then configure your IDE to use --resume <id> or --resume --last. See each IDE's documentation for specific configuration.
See also
- ACP Documentation - Full protocol specification
- Terminal Mode - Use Faheem Code in the terminal
- Resume Conversations - Detailed resume guide