Skip to main content

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​

IDESupport LevelSetup Guide
ZedNativeBuilt-in ACP support
ToadNativeUniversal terminal interface
VS CodeCommunity ExtensionVia VSCode ACP extension
JetBrainsNativeIntelliJ, PyCharm, WebStorm, etc.

Prerequisites​

Before using Faheem Code with any IDE, you must:

  1. Install Faheem Code CLI following the installation instructions

  2. Configure your LLM settings using the /settings command:

    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​

  1. Your IDE launches faheemcode acp as a subprocess
  2. Communication happens via JSON-RPC 2.0 over stdio
  3. Faheem Code uses your configured LLM and runtime settings
  4. 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​

OptionDescription
--resume [ID]Resume a conversation by ID
--lastResume the most recent conversation
--always-approveAuto-approve all actions
--llm-approveUse LLM-based security analyzer
--streamingEnable 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:

CommandDescription
/confirm always-askSwitch to always-ask mode
/confirm always-approveSwitch to always-approve mode
/confirm llm-approveSwitch to LLM-based approval mode
/helpShow all available slash commands

Choosing an IDE​

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​