AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Goose Acp Integration

skill-humanerd-drew-opencode-drewgent-goose-acp-integration · by humanerd-drew

Integrate Drewgent with ACP (Agent Client Protocol) agents. Reverse-engineered from goose's Rust ACP provider implementation.

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add skill-humanerd-drew-opencode-drewgent-goose-acp-integration

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-humanerd-drew-opencode-drewgent-goose-acp-integration)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Goose Acp Integration? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Goose ACP Integration for Drewgent

What is ACP

Agent Client Protocol (ACP) is a JSON-RPC-based standard for communicating with coding agents (GitHub: agentclientprotocol).

goose uses ACP to connect to agents like Claude Code as provider (subprocess communication over stdio):

goose → claude-agent-acp (NPM) → Claude Code CLI → Anthropic API

Key ACP providers in goose:

  • claude_acp.rs — Claude Code via @agentclientprotocol/claude-agent-acp
  • codex_acp.rs — OpenAI Codex
  • copilot_acp.rs — GitHub Copilot

Key Protocol Types (agentclientprotocol schema)

InitializeRequest/Response   // handshake
NewSessionRequest/Response    // create session
PromptRequest/Response       // send messages
SessionNotification          // async events (tool calls, permissions, completion)
  - ToolCallStart { id, name, kind, raw_input }
  - ToolCallComplete { id, raw_output, content[], is_error }
  - PermissionRequest { request: RequestPermissionRequest }
  - Complete(StopReason, Option)
ToolCallContent / ToolCallStatus
RequestPermissionResponse

How goose connects to Claude Code

// crates/goose/src/providers/claude_acp.rs
let config = AcpProviderConfig {
    command: resolved_command,  // path to claude-agent-acp
    args: vec![],
    env: vec![],
    work_dir: current_dir,
    mcp_servers: extension_configs_to_mcp_servers(&extensions),  // Drewgent tools as MCP
    session_mode_id: Some(mode_mapping[&goose_mode].clone()),
    // mode_mapping:
    //   Auto → bypassPermissions (fully autonomous)
    //   Approve → default (ask before risky)
    //   SmartApprove → acceptEdits (auto-accept edits)
    //   Chat → plan (plan only)
};
AcpProvider::connect(name, model, goose_mode, config).await

AcpProvider (crates/goose/src/acp/provider.rs):

  • Spawns subprocess (stdio JSON-RPC)
  • Sends initialize then newSession
  • Streams SessionNotification back (tool calls, permissions)
  • Sends tool results via CallToolResult

Drewgent Implementation Points

1. ACP Provider Tool

Spawn any ACP agent as subprocess, communicate via newline-delimited JSON-RPC over stdio.

2. MCP Extension Bridge

Convert Drewgent tools → MCP server definitions → pass to ACP agent via mcp_servers config.

3. Permission Tiers

Map Drewgent P0-P6 brain rules to ACP permission decisions (AllowAlways/AllowOnce/RejectOnce/RejectAlways/Cancel).

Implementation Plan

Phase 1: tools/acp_provider.py — subprocess spawn + JSON-RPC over stdio + session lifecycle Phase 2: Delegate to Claude Code via claude-agent-acp, pass Drewgent tools as MCP servers Phase 3: Permission callback system bridging Drewgent P0 rules to ACP permission requests

References

  • goose ACP provider impl: crates/goose/src/providers/{claude_acp,codex_acp,copilot_acp}.rs
  • ACP core: crates/goose/src/acp/provider.rs
  • ACP macros: crates/goose-acp-macros/src/lib.rs
  • Protocol schema: agent_client_protocol Rust crate (github.com/agentclientprotocol)
  • ACP npm adapter: @agentclientprotocol/claude-agent-acp
  • Docs: https://goose-docs.ai/docs/guides/acp-providers

Gotchas

  1. STDIO transport — newline-delimited JSON-RPC, no HTTP
  2. Mode mapping — each ACP agent has different mode strings; configured per-provider
  3. MCP servers — must follow Model Context Protocol schema
  4. Permission suspension — ACP agent waits for async permission response; cannot block main loop
  5. Nested sessions — set env_remove to prevent infinite nesting (e.g., CLAUDECODE env var)

Related

  • [[@action/skills/SKILL-INDEX]]
  • [[@action/skills/agent-protocol/DESCRIPTION]]

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.