- Protocol
- ACP
- Type
- SDK
- Stars
- 69
- License
- Apache-2.0
- Last push
- Nov 7, 2026
About use-acp
use-acp is an open-source ACP SDK by marimo-team, written mainly in TypeScript. React hooks for connecting to ACP servers over WebSockets. It has 69 GitHub stars and uses the Apache-2.0 license, and its code was last pushed on Nov 7, 2026.
New to ACP? Our ACP Protocol guide explains how it works and lists other projects built on it.
At a glance
- Protocol
- ACP
- Type
- SDK
- Language
- TypeScript
- License
- Apache-2.0
- GitHub stars
- 69
- Last push
- Nov 7, 2026
- Latest release
- use-acp 0.2.6
- Released
- Jan 12, 2026
Listed from public GitHub data, checked 2026-11-08. Not scanned by AgenticMart.
Questions about use-acp
What is use-acp?
React hooks for connecting to ACP servers over WebSockets It is listed as a ACP SDK, maintained in the marimo-team/use-acp repository on GitHub.
How do I install use-acp?
The project's README gives this command: npm install use-acp. Read the README for setup steps and requirements before running it.
Is use-acp an official ACP project?
No. It is a community project built on ACP, not published by the organisation that runs the protocol.
What license does use-acp use?
It is published under the Apache-2.0 license. Check the license file in the repository before using it commercially.
Is use-acp still maintained?
Its code was last pushed on Nov 7, 2026, and it had 69 GitHub stars when we checked on 2026-11-08. Look at recent issues and releases in the repository for a fuller picture.
README
use-acp
React hooks for Agent Client Protocol (ACP) over WebSockets.
Features
- WebSocket connection management
- Reactive state management
- Notifications timeline for ACP events
- Permission request/response handling
- Full TypeScript support
Installation
npm install use-acp
# or
pnpm add use-acp
Usage
Basic Usage
import { useAcpClient } from 'use-acp';
function App() {
const {
connect,
disconnect,
connectionState,
notifications,
pendingPermission,
resolvePermission,
} = useAcpClient({
wsUrl: 'ws://localhost:8080',
autoConnect: true
});
return (
<div>
<div>Status: {connectionState.status}</div>
<button onClick={connectionState.status === 'connected' ? disconnect : connect}>
{connectionState.status === 'connected' ? 'Disconnect' : 'Connect'}
</button>
{pendingPermission && (
<div>
<h3>Permission Request</h3>
{pendingPermission.options.map((option) => (
<button key={option.optionId} onClick={() => resolvePermission(option)}>
{option.name}
</button>
))}
</div>
)}
<div>Notifications: {notifications.length}</div>
<ul>
{notifications.map((notification) => (
<li key={notification.id}>{JSON.stringify(notification)}</li>
))}
</ul>
</div>
);
}
API Reference
useAcpClient({ wsUrl, autoConnect?, reconnectAttempts?, reconnectDelay? })
Returns: { connect(), disconnect(), connectionState, notifications, clearNotifications(), pendingPermission, resolvePermission(), rejectPermission(), agent }
Utils
import { groupNotifications, mergeToolCalls } from 'use-acp';
// Group notifications by their type
// This helps when displaying notifications in a timeline
const groupedNotifications = groupNotifications(notifications);
// Merge tool calls with the same toolCallId
const mergedToolCalls = mergeToolCalls(toolCalls);
Development
pnpm install
pnpm test # run tests
pnpm build # build library
pnpm dev # run demo, http://localhost:5173
Example Agents
# Gemini ACP
npx -y stdio-to-ws "npx @google/gemini-cli --experimental-acp"
# Claude Code ACP
npx -y stdio-to-ws "npx @zed-industries/claude-code-acp"
# Codex ACP
npx -y stdio-to-ws "npx @zed-industries/codex-acp"
License
Apache 2.0
More ACP projects
All 20 →Agent Client Protocol
Specification, schema and Rust crate for connecting editors to agents
Claude Agent ACP
Adapter that lets ACP clients use the Claude Agent SDK
Codex ACP
ACP server that exposes Codex CLI to ACP clients