Qodo Acp Adapter banner
mshirlaw mshirlaw

Qodo Acp Adapter

Development community

Description

An experimental ACP (Agent Client Protocol) adapter for Qodo Command, allowing it to work with Zed editor and other ACP-compatible clients.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Qodo ACP Adapter

[![Test](https://github.com/mshirlaw/qodo-acp-adapter/actions/workflows/test.yml/badge.svg)](https://github.com/mshirlaw/qodo-acp-adapter/actions/workflows/test.yml) [![CI](https://github.com/mshirlaw/qodo-acp-adapter/actions/workflows/ci.yml/badge.svg)](https://github.com/mshirlaw/qodo-acp-adapter/actions/workflows/ci.yml)

An experimental ACP (Agent Client Protocol) adapter for Qodo Command, allowing it to work with Zed editor and other ACP-compatible clients.

⚠️ Experimental Status

This is a proof-of-concept implementation showing how to create an ACP adapter for a CLI tool that wasn't designed for programmatic interaction. While functional, it has significant limitations due to the mismatch between Qodo Command's terminal-based design and ACP's programmatic requirements.

Below is a screenshot showing the Qodo ACP Adapter in action within the Zed editor.

Qodo ACP Adapter Example

Architecture

This adapter implements the Agent Client Protocol to bridge between:

  • ACP Clients (like Zed editor) that speak JSON-RPC over stdio
  • Qodo Command CLI tool that expects terminal interaction

Key Components

  1. index.ts - Entry point that sets up the server and handles process lifecycle
  2. acp-agent.ts - Implements the ACP protocol, handling JSON-RPC messages with UUID v7 session IDs
  3. qodo-bridge.ts - Manages Qodo Command subprocess with hardcoded permissions (--permissions=rw --tools=filesystem)
  4. tool-parser.ts - Filters out verbose tool call output to keep messages clean (see Tool Output Filtering below)
  5. types.ts - TypeScript type definitions for ACP protocol and session management
  6. utils.ts - Utility functions for stream conversion between Node.js and Web streams

How It Works

  1. Initialization: When Zed starts the adapter, it sends an initialize request which returns agent capabilities 2