The ultimate A2A (Agent-to-Agent) troubleshooting and debugging tool
A powerful command-line utility for debugging, monitoring, and inspecting A2A servers. Connect to A2A servers, list tasks, view conversation histories, and inspect task statuses with ease.
This project is in its early stages of development.
Breaking changes are expected as we actively develop and refine the tool. Use with caution in production environments and be prepared for API changes, configuration format updates, and command-line interface modifications between versions.
We recommend pinning to specific versions in your scripts and monitoring the CHANGELOG.md for breaking changes.
- Server Connectivity: Test connections to A2A servers and retrieve agent information
 - Task Management: List, filter, and inspect tasks with detailed status information
 - Real-time Streaming: Submit streaming tasks and monitor real-time agent responses
 - Streaming Summaries: Summaries with Task IDs, durations, and event counts
 - Conversation History: View detailed conversation histories and message flows
 - Agent Information: Retrieve and display agent cards with capabilities
 - Configuration Management: Set, get, and list configuration values with namespace commands
 - Flexible Configuration: Support for configuration files and environment variables
 - Debug Logging: Comprehensive logging with configurable verbosity levels
 - Namespace Commands: Organized command structure with 
configandtasksnamespaces - Multiple Output Formats: Support for YAML (default) and JSON output formats for structured data
 
Use our install script to automatically download and install the latest binary:
curl -fsSL https://raw.githubusercontent.com/inference-gateway/a2a-debugger/main/install.sh | bashOr download and run the script manually:
wget https://raw.githubusercontent.com/inference-gateway/a2a-debugger/main/install.sh chmod +x install.sh ./install.shInstall Options:
- Install specific version: 
./install.sh --version v1.0.0 - Custom install directory: 
INSTALL_DIR=~/bin ./install.sh - Show help: 
./install.sh --help 
go install github.com/inference-gateway/a2a-debugger@latestDownload the latest binary from the releases page.
git clone https://github.com/inference-gateway/a2a-debugger.git cd a2a-debugger task buildTest connection to an A2A server:
a2a connect --server-url http://localhost:8080Set server URL in configuration:
a2a config set server-url http://localhost:8080List all tasks:
a2a tasks listGet specific task details:
a2a tasks get <task-id>View conversation history:
a2a tasks history <context-id>The A2A Debugger uses a namespace-based command structure for better organization:
a2a config set <key> <value> # Set a configuration value a2a config get <key> # Get a configuration value a2a config list # List all configuration valuesa2a tasks list # List available tasks a2a tasks get <task-id> # Get detailed task information a2a tasks history <context-id> # Get conversation history for a context a2a tasks submit <message> # Submit a task and get response a2a tasks submit-streaming <msg> # Submit streaming task with real-time responses and summarya2a connect # Test connection to A2A server a2a agent-card # Get agent card informationCreate a configuration file at ~/.a2a.yaml:
server-url: http://localhost:8080 timeout: 30s debug: false insecure: false output: yaml # or json--server-url: A2A server URL (default: http://localhost:8080)--timeout: Request timeout (default: 30s)--debug: Enable debug logging--insecure: Skip TLS verification--config: Config file path--output, -o: Output format (yaml|json) (default: yaml)
--state: Filter by task state (submitted, working, completed, failed)--context-id: Filter by context ID--limit: Maximum number of tasks to return (default: 50)--offset: Number of tasks to skip (default: 0)--include-history: Include conversation history in the output (default: false)
--history-length: Number of history messages to include
# Set server URL in config $ a2a config set server-url http://localhost:8080 β
 Configuration updated: server-url = http://localhost:8080 # Get current server URL $ a2a config get server-url server-url = http://localhost:8080 # List all configuration $ a2a config list π Configuration: server-url = http://localhost:8080 timeout = 30s debug = false$ a2a connect --server-url http://localhost:8080 β
 Successfully connected to A2A server! Agent Information: Name: My A2A Agent Description: A helpful assistant agent Version: 1.0.0 URL: http://localhost:8080 Capabilities: Streaming: true Push Notifications: false State Transition History: true$ a2a tasks list --state working --limit 5 π Tasks (Total: 23, Showing: 5) 1. Task ID: task-abc123 Context ID: ctx-xyz789 Status: working Message ID: msg-456 Role: assistant 2. Task ID: task-def456 Context ID: ctx-uvw123 Status: working Message ID: msg-789 Role: userBy default, tasks list excludes conversation history to keep output manageable. Use --include-history to show complete task data:
# Without history (default - cleaner output) $ a2a tasks list --limit 1 # With history (complete task data including conversation) $ a2a tasks list --limit 1 --include-history$ a2a tasks get task-abc123 οΏ½ Task Details ID: task-abc123 Context ID: ctx-xyz789 Status: completed Current Message: Message ID: msg-456 Role: assistant Parts: 1 1. Kind: text Text: Hello! How can I help you today?$ a2a tasks history ctx-xyz789 π¬ Conversation History for Context: ctx-xyz789 Task: task-abc123 (Status: completed) 1. [user] msg-123 1: I need help with my project 2. [assistant] msg-456 1: Hello! How can I help you today?By default, all commands output structured data in YAML format. You can switch to JSON using the -o flag:
# YAML output (default) $ a2a tasks list --limit 2 tasks: - id: task-abc123 context_id: ctx-xyz789 kind: task status: state: completed message: message_id: msg-456 role: assistant artifacts: [] metadata: {} - id: task-def456 context_id: ctx-uvw123 kind: task status: state: working message: message_id: msg-789 role: user artifacts: [] metadata: {} total: 23 showing: 2 # JSON output $ a2a tasks list --limit 2 -o json { "tasks": [ { "id": "task-abc123", "context_id": "ctx-xyz789", "kind": "task", "status": { "state": "completed", "message": { "message_id": "msg-456", "role": "assistant" } }, "artifacts": [], "metadata": {} } ], "total": 23, "showing": 2 }- Go 1.25 or later
 - Task for build automation
 
task generate # Generate code from schemas task lint # Run linting task build # Build the application task test # Run tests task clean # Clean build artifacts- Make your changes
 - Run 
task generateto update generated files - Run 
task lintto check code quality - Run 
task buildto verify compilation - Run 
task testto ensure all tests pass 
- Inference Gateway - Main project
 - A2A ADK - Agent Development Kit
 - Go SDK - Go SDK for Inference Gateway
 - TypeScript SDK - TypeScript SDK
 - Python SDK - Python SDK
 - Documentation - Project documentation
 
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.