feat: Agent Client Protocol implementation of goose (#4511)

This commit is contained in:
Michael Neale
2025-09-05 11:49:26 +10:00
committed by GitHub
parent b5749d6457
commit c55ee2c26f
8 changed files with 707 additions and 2 deletions
+10
View File
@@ -3,6 +3,7 @@ use clap::{Args, Parser, Subcommand};
use goose::config::{Config, ExtensionConfig};
use crate::commands::acp::run_acp_agent;
use crate::commands::bench::agent_generator;
use crate::commands::configure::handle_configure;
use crate::commands::info::handle_info;
@@ -291,6 +292,10 @@ enum Command {
#[command(about = "Run one of the mcp servers bundled with goose")]
Mcp { name: String },
/// Run Goose as an ACP (Agent Client Protocol) agent
#[command(about = "Run Goose as an ACP agent server on stdio")]
Acp {},
/// Start or resume interactive chat sessions
#[command(
about = "Start or resume interactive chat sessions",
@@ -709,6 +714,7 @@ pub async fn cli() -> Result<()> {
Some(Command::Configure {}) => "configure",
Some(Command::Info { .. }) => "info",
Some(Command::Mcp { .. }) => "mcp",
Some(Command::Acp {}) => "acp",
Some(Command::Session { .. }) => "session",
Some(Command::Project {}) => "project",
Some(Command::Projects) => "projects",
@@ -739,6 +745,10 @@ pub async fn cli() -> Result<()> {
Some(Command::Mcp { name }) => {
let _ = run_server(&name).await;
}
Some(Command::Acp {}) => {
let _ = run_acp_agent().await;
return Ok(());
}
Some(Command::Session {
command,
identifier,