HAIP CLI

A command-line interface for the Human-Agent Interaction Protocol (HAIP), providing tools for testing, monitoring, and interacting with HAIP servers.
Features
- Multiple Transport Support - WebSocket, SSE, and HTTP streaming
- Real-time Monitoring - Monitor server events with filtering and formatting
- Performance Testing - Test server connectivity and performance
- Health Checks - Check server health and status
- Message Sending - Send text messages, tool calls, and run commands
- Interactive Mode - Connect and interact with servers in real-time
- Comprehensive Logging - Verbose output and detailed error reporting
Installation
From Source
git clone https://github.com/haiprotocol/haip-cli.git
cd haip-cli
npm install
npm run build
npm link
From NPM
npm install -g @haip/cli
Quick Start
1. Check Server Health
haip health
2. Connect to a Server
haip connect ws://localhost:8080
3. Send a Message
haip send text "Hello, HAIP!"
4. Monitor Events
haip monitor --follow
5. Test Performance
haip test --message-count 100
Commands
haip connect <url>
Connect to a HAIP server and maintain an interactive connection.
Options:
-t, --transport <type> - Transport type (websocket, sse, http-streaming)
--token <token> - JWT authentication token
--timeout <ms> - Connection timeout in milliseconds
--reconnect-attempts <count> - Maximum reconnection attempts
--reconnect-delay <ms> - Base reconnection delay in milliseconds
-v, --verbose - Enable verbose output
Examples:
haip connect ws://localhost:8080
haip connect http://localhost:8080 --transport sse --token your-jwt-token
haip connect ws://localhost:8080 --timeout 5000 --reconnect-attempts 5
haip send
Send messages to a HAIP server.
haip send text <message>
Send a text message.
Options:
-u, --url <url> - Server URL
-t, --transport <type> - Transport type
--token <token> - JWT authentication token
-c, --channel <channel> - Message channel (USER, AGENT, SYSTEM)
--author <author> - Message author
--run-id <id> - Run ID
--thread-id <id> - Thread ID
-v, --verbose - Enable verbose output
Examples:
haip send text "Hello, world!"
haip send text "Hello" --channel AGENT --author bot
haip send text "Hello" --run-id run-123 --thread-id thread-456
haip send tool <tool> [params...]
Call a tool with parameters.
Options:
-u, --url <url> - Server URL
-t, --transport <type> - Transport type
--token <token> - JWT authentication token
-c, --channel <channel> - Message channel
--run-id <id> - Run ID
--thread-id <id> - Thread ID
-v, --verbose - Enable verbose output
Examples:
haip send tool echo message="Hello World"
haip send tool calculator expression="2+2"
haip send tool weather location="London" units="celsius"
haip send run
Start a new run.
Options:
-u, --url <url> - Server URL
-t, --transport <type> - Transport type
--token <token> - JWT authentication token
--thread-id <id> - Thread ID
--metadata <json> - Run metadata (JSON string)
-v, --verbose - Enable verbose output
Examples:
haip send run
haip send run --thread-id my-thread
haip send run --metadata '{"user":"alice","session":"chat-1"}'
haip monitor
Monitor HAIP server events in real-time.
Options:
-u, --url <url> - Server URL
-t, --transport <type> - Transport type
--token <token> - JWT authentication token
--show-timestamps - Show message timestamps
--show-metadata - Show message metadata
--filter-types <types> - Filter by message types (comma-separated)
--filter-channels <channels> - Filter by channels (comma-separated)
--max-lines <count> - Maximum lines to display
--follow - Follow new messages
-v, --verbose - Enable verbose output
Examples:
haip monitor
haip monitor --filter-types TEXT_MESSAGE_START,TOOL_CALL
haip monitor --filter-channels USER,AGENT
haip monitor --follow --show-metadata
haip test
Test HAIP server connectivity and performance.
Options:
-u, --url <url> - Server URL
-t, --transport <type> - Transport type
--token <token> - JWT authentication token
--message-count <count> - Number of test messages to send
--message-size <bytes> - Size of test messages in bytes
--delay <ms> - Delay between messages in milliseconds
--timeout <ms> - Test timeout in milliseconds
--validate-responses - Validate server responses
-v, --verbose - Enable verbose output
Examples:
haip test
haip test --message-count 1000 --delay 10
haip test --message-size 8192 --message-count 100
haip test --validate-responses
haip health
Check HAIP server health status.
Options:
-u, --url <url> - Server URL
--timeout <ms> - Request timeout in milliseconds
--format <format> - Output format (text, json)
Examples:
haip health
haip health --format json
haip health --url http://my-server:8080
haip version
Show version information.
haip info
Show system information.
haip examples
Show usage examples.
Configuration
The HAIP CLI can be configured using environment variables:
HAIP_DEFAULT_URL=ws://localhost:8080
HAIP_DEFAULT_TRANSPORT=websocket
HAIP_DEFAULT_TOKEN=your-jwt-token
HAIP_TIMEOUT=10000
HAIP_RECONNECT_ATTEMPTS=3
HAIP_RECONNECT_DELAY=1000
HAIP_VERBOSE=false
HAIP_COLOR=true
Development
Prerequisites
- Node.js 16.0.0 or higher
- npm 8.0.0 or higher
Setup
git clone https://github.com/haiprotocol/haip-cli.git
cd haip-cli
npm install
npm run build
npm test
npm run test:coverage
npm run lint
npm run lint:fix
Development Mode
npm run dev
npm link
Testing
The CLI includes comprehensive tests:
npm test
npm run test:coverage
npm run test:unit
npm run test:integration
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
License
MIT License - see LICENSE file for details.
Protocol Version
This SDK implements HAIP version 1.1.2. For protocol documentation, see the HAI Protocol Specification.