Ailoop is a command-line tool that enables AI agents to communicate with human users through structured interactions. It supports both direct mode (for single-agent scenarios) and server mode (for multi-agent environments), providing a seamless bridge between AI automation and human oversight.
- Ask questions and wait for human responses
- Request authorization for critical actions
- Send notifications with priority levels
- Display images and navigate to URLs
- Channel-based isolation for multi-agent workflows
- Centralized server for multi-agent environments
- Interactive terminal UI with real-time monitoring
- WebSocket-based communication
- Channel management and message history
- Web interface for remote monitoring
- Stream agent output to centralized server
- Support for multiple agent types (Cursor, JSONL, etc.)
- Real-time message broadcasting
- Message history and channel switching
Download the latest release from GitHub Releases:
- Linux GNU:
ailoop-x86_64-unknown-linux-gnu.tar.gz - Linux MUSL:
ailoop-x86_64-unknown-linux-musl.tar.gz - Windows:
ailoop-x86_64-pc-windows-msvc.zip
Extract and add to your PATH, then make executable on Unix systems.
brew install goailoop/cli/ailoopscoop bucket add goailoop https://github.com/goailoop/scoop
scoop install ailoopailoop --versionailoop ask "What is the best approach for this task?"
ailoop ask "Should we proceed?" --timeout 60
ailoop ask "Review this code change" --channel dev-reviewailoop authorize "Deploy version 1.2.3 to production"
ailoop authorize "Delete user data" --timeout 300 --channel admin-opsNote: If no response is received within the timeout period, authorization defaults to DENIED for security.
ailoop say "Build completed successfully"
ailoop say "System alert: High CPU usage detected" --priority high
ailoop say "Critical error occurred" --priority urgent --channel alerts# Stream agent output to server
ailoop forward --channel my-agent
# Forward from file
ailoop forward --input agent-output.jsonl --channel my-agentAsk a question and wait for a human response.
ailoop ask "What is the best approach?" # Simple question
ailoop ask "Should we proceed?" --timeout 60 # With timeout
ailoop ask "Review this code" --channel dev-review # Specific channel
ailoop ask "What is your name?" --json # JSON outputOptions: --channel, -c, --timeout, -t, --server, --json
Request human approval for critical actions.
ailoop authorize "Deploy to production"
ailoop authorize "Delete user data" --timeout 300 --channel admin-ops
ailoop authorize "Execute operation" --jsonOptions: --channel, -c, --timeout, -t, --server, --json
Send notification messages to human users.
ailoop say "Build completed successfully"
ailoop say "High CPU usage" --priority high
ailoop say "Critical error" --priority urgent --channel alertsOptions: --channel, -c, --priority, --server
Available priorities: low, normal, high, urgent
Run ailoop in server mode for multi-agent environments.
ailoop serve # Default port 8080
ailoop serve --port 9000 # Custom port
ailoop serve --host 0.0.0.0 --port 8080 --channel defaultThe server provides an interactive terminal UI showing:
- Server status and metrics
- Queue size and active connections
- Recent activity
Press Ctrl+C to stop the server.
Stream agent output to centralized server.
ailoop forward --channel my-agent
ailoop forward --input agent-output.jsonl --channel my-agent
ailoop forward --transport websocket --url ws://localhost:8080Options: --channel, -c, --agent-type, --format, --transport, --url, --input, --output, --client-id
Set up your configuration interactively.
ailoop config --init
ailoop config --init --config-file ~/.config/ailoop/custom.tomlThe configuration wizard will prompt you for:
- Default timeout for questions
- Default channel name
- Log level (error/warn/info/debug/trace)
- Server bind address and port
Configuration is saved in TOML format at ~/.config/ailoop/config.toml by default.
# Agent asks for code review
ailoop ask "Please review PR #123" --channel code-review --timeout 3600
# Agent requests approval
ailoop authorize "Merge PR #123 to main branch" --channel code-review# Start server for deployment team
ailoop serve --port 8080 --channel deployments
# In another terminal, request deployment approval
ailoop authorize "Deploy v2.1.0 to production" \
--server http://localhost:8080 \
--channel deployments \
--timeout 600# Send urgent alert
ailoop say "Database connection pool exhausted!" \
--priority urgent \
--channel monitoring
# Show monitoring dashboard
ailoop navigate https://monitoring.example.com/dashboard \
--channel monitoring# Start server
ailoop serve --port 8080
# Forward agent output from stdin
agent-command | ailoop forward --channel my-agent
# Forward from file
ailoop forward --input agent-output.jsonl --channel my-agentChannels provide isolation between different workflows or agent instances. Each channel maintains its own message queue and connections.
- Channel names must be 1-64 characters
- Use lowercase alphanumeric characters, hyphens, or underscores
- Must start with a letter or digit
- Default channel is
public
Examples of valid channel names:
productiondev-reviewanalytics_teamchannel-123
- Ensure binary is in your PATH
- Make executable on Unix:
chmod +x ailoop
- Check if the port is already in use:
lsof -i :8080(Linux) ornetstat -an | grep 8080(Windows) - Ensure you have permission to bind to the specified port (ports < 1024 require root/admin)
- Check firewall settings
- Increase timeout value if operations take longer than expected
- Use
--timeout 0to wait indefinitely (not recommended for production)
- Ensure channel names follow the naming convention
- Channel names are case-sensitive
- Avoid special characters except hyphens and underscores
- Verify server is running:
ailoop serve - Check server URL format:
http://localhost:8080orws://localhost:8080for WebSocket - Ensure firewall allows connections on the specified port
- Version:
ailoop --version - Command help:
ailoop <command> --help - Documentation: GitHub Repository
Apache License, Version 2.0 - See LICENSE file for details.
Need help? Open an issue on GitHub.