Skip to main content

Crate agent_commander

Crate agent_commander 

Source
Expand description

Agent Commander - Main library interface A Rust library to control agents enclosed in CLI commands

Supports multiple CLI agents:

  • claude: Anthropic Claude Code CLI
  • codex: OpenAI Codex CLI
  • opencode: OpenCode CLI
  • agent: @link-assistant/agent (OpenCode fork with native permission modes)
  • qwen: Qwen Code CLI
  • gemini: Gemini CLI

Re-exports§

pub use cli_parser::parse_args;
pub use cli_parser::parse_start_agent_args;
pub use cli_parser::parse_stop_agent_args;
pub use cli_parser::show_start_agent_help;
pub use cli_parser::show_stop_agent_help;
pub use cli_parser::validate_start_agent_options;
pub use cli_parser::validate_stop_agent_options;
pub use cli_parser::StartAgentOptions;
pub use cli_parser::StopAgentOptions;
pub use cli_parser::ValidationResult;
pub use command_builder::build_agent_command;
pub use command_builder::build_docker_stop_command;
pub use command_builder::build_piped_command;
pub use command_builder::build_screen_stop_command;
pub use command_builder::read_only_unsupported_error;
pub use command_builder::supports_read_only;
pub use command_builder::AgentCommandOptions;
pub use permissions::ask_scope;
pub use permissions::ask_unsupported_error;
pub use permissions::build_permission_response;
pub use permissions::normalize_permission_request;
pub use permissions::permission_parity;
pub use permissions::supports_ask;
pub use permissions::NormalizedPermissionRequest;
pub use permissions::PermissionParityRow;
pub use permissions::PermissionRelay;
pub use permissions::ASK_DECISIONS;
pub use permissions::ASK_SUPPORTED_TOOLS;
pub use executor::execute_command;
pub use executor::execute_detached;
pub use executor::setup_signal_handler;
pub use executor::start_command;
pub use executor::ExecutionResult;
pub use executor::ProcessHandle;
pub use result_metadata::build_normalized_result_metadata;
pub use result_metadata::BuildMetadataOptions;
pub use result_metadata::PricingInfo;
pub use result_metadata::ResultMetadata;
pub use streaming::create_input_stream;
pub use streaming::create_output_stream;
pub use streaming::parse_ndjson;
pub use streaming::parse_ndjson_line;
pub use streaming::stringify_ndjson;
pub use streaming::stringify_ndjson_line;
pub use streaming::JsonInputStream;
pub use streaming::JsonOutputStream;
pub use streaming::ParseError;
pub use tools::get_tool;
pub use tools::is_tool_supported;
pub use tools::list_tools;
pub use tools::AgentTool;
pub use tools::ClaudeTool;
pub use tools::CodexTool;
pub use tools::OpencodeTool;
pub use tools::Tool;
pub use tools::ToolRegistry;

Modules§

cli_parser
Parse CLI arguments Simple argument parser without external dependencies
command_builder
Build command strings for different agent tools
executor
Execute commands using tokio
permissions
Permission normalization and relay for the uniform per-command approval (“ask”) mode.
result_metadata
Normalized result metadata for tool-specific agent output.
streaming
JSON Streaming utilities Support for NDJSON (Newline Delimited JSON) input and output
tools
Tool configurations and utilities Provides configuration for different CLI agents: claude, codex, opencode, agent, gemini, qwen
tui
Interactive terminal launch and capture for supported agent clients.

Structs§

Agent
Agent controller
AgentOptions
Agent options for creating a controller
AgentResult
Agent result from stop()
AgentStartOptions
Agent start options
AgentStopOptions
Agent stop options

Functions§

agent
Create an agent controller (convenience function)