Hero Supervisor CLI Example
This example demonstrates how to use the hive-supervisor CLI tool for managing actors and jobs in the Hero ecosystem.
Prerequisites
- 
Redis Server: Make sure Redis is running on
localhost:6379# Install Redis (macOS) brew install redis # Start Redis redis-server - 
Zinit Process Manager: Install and configure Zinit
# Install Zinit (example for Linux/macOS) # Follow Zinit installation instructions for your platform - 
Actor Binaries: The configuration references actor binaries that need to be available:
/usr/local/bin/osis_actor/usr/local/bin/sal_actor/usr/local/bin/v_actor/usr/local/bin/python_actor
For testing purposes, you can create mock actor binaries or update the paths in
config.tomlto point to existing binaries. 
Configuration
The config.toml file contains the supervisor configuration:
- Global settings: Redis URL and Zinit socket path
 - Actor configurations: Binary paths and environment variables for each actor type
 
Usage Examples
1. Build the CLI
# From the supervisor directory
cargo build --bin hive-supervisor --release
2. Actor Management
# Show help
./target/release/hive-supervisor --config examples/cli/config.toml --help
# List all configured actors
./target/release/hive-supervisor --config examples/cli/config.toml actors list
# Start all actors
./target/release/hive-supervisor --config examples/cli/config.toml actors start
# Start specific actors
./target/release/hive-supervisor --config examples/cli/config.toml actors start osis_actor sal_actor
# Check actor status
./target/release/hive-supervisor --config examples/cli/config.toml actors status
# Stop all actors
./target/release/hive-supervisor --config examples/cli/config.toml actors stop
# Restart specific actor
./target/release/hive-supervisor --config examples/cli/config.toml actors restart osis_actor
3. Job Management
# Create a job with inline script
./target/release/hive-supervisor --config examples/cli/config.toml jobs create \
  --script 'print("Hello from OSIS actor!");' \
  --script-type osis \
  --caller-id "user123" \
  --context-id "session456"
# Create a job from file
./target/release/hive-supervisor --config examples/cli/config.toml jobs create \
  --file examples/cli/sample_script.rhai \
  --script-type osis \
  --caller-id "user123" \
  --context-id "session456"
# List all jobs
./target/release/hive-supervisor --config examples/cli/config.toml jobs list
# Check job status
./target/release/hive-supervisor --config examples/cli/config.toml jobs status <JOB_ID>
# View job logs
./target/release/hive-supervisor --config examples/cli/config.toml jobs logs <JOB_ID>
# Stop a job
./target/release/hive-supervisor --config examples/cli/config.toml jobs stop <JOB_ID>
4. Interactive REPL Mode
# Enter REPL mode for OSIS scripts
./target/release/hive-supervisor --config examples/cli/config.toml repl \
  --caller-id "user123" \
  --context-id "session456" \
  --script-type osis \
  --timeout 60
# In REPL mode, you can:
# - Type scripts directly and press Enter to execute
# - Type 'help' for available commands
# - Type 'exit' or 'quit' to leave REPL mode
5. Verbose Logging
# Enable debug logging
./target/release/hive-supervisor --config examples/cli/config.toml -v actors status
# Enable trace logging
./target/release/hive-supervisor --config examples/cli/config.toml -vv actors status
# Disable timestamps
./target/release/hive-supervisor --config examples/cli/config.toml --no-timestamp actors status
Sample Scripts
The sample_scripts/ directory contains example scripts for different actor types:
hello_osis.rhai- Simple OSIS/HeroScript examplesystem_sal.rhai- SAL system operation examplemath_v.v- V language calculation exampledata_python.py- Python data processing example
Troubleshooting
Common Issues
- 
Redis Connection Error
- Ensure Redis is running: 
redis-cli ping - Check the Redis URL in 
config.toml 
 - Ensure Redis is running: 
 - 
Zinit Socket Error
- Verify Zinit is running and the socket path is correct
 - Check permissions on the socket file
 
 - 
Actor Binary Not Found
- Update binary paths in 
config.tomlto match your system - Ensure actor binaries are executable
 
 - Update binary paths in 
 - 
Permission Denied
- Check file permissions on configuration and binary files
 - Ensure the user has access to the Zinit socket
 
 
Debug Mode
Run with verbose logging to see detailed operation information:
RUST_LOG=debug ./target/release/hive-supervisor --config examples/cli/config.toml -vv actors status
Configuration Customization
You can customize the configuration for your environment:
- Update Redis URL: Change 
redis_urlin the[global]section - Update Zinit Socket: Change 
zinit_socket_pathfor your Zinit installation - Actor Paths: Update binary paths in actor sections to match your setup
 - Environment Variables: Add or modify environment variables for each actor type
 
Integration with Hero Ecosystem
This CLI integrates with the broader Hero ecosystem:
- Job Queue: Uses Redis for job queuing and status tracking
 - Process Management: Uses Zinit for actor lifecycle management
 - Script Execution: Supports multiple script types (OSIS, SAL, V, Python)
 - Monitoring: Provides real-time status and logging capabilities
 
For more information about the Hero ecosystem, see the main project documentation.