iFlow CLI SDK for Rust
A powerful Rust SDK for interacting with iFlow using the Agent Communication Protocol (ACP). This SDK provides both simple query functions and full bidirectional client for complex interactions.
Features
- 🚀 Automatic Process Management - SDK automatically starts and manages iFlow process
- 🔌 Stdio Communication - Communicate with iFlow via stdio
- 🔌 WebSocket Communication - Communicate with iFlow via WebSocket for better performance and reliability
- 🔄 Bidirectional Communication - Real-time streaming messages and responses
- 🛠️ Tool Call Management - Fine-grained permission control for tool execution
- 📋 Task Planning - Receive and process structured task plans
- 🔍 Raw Data Access - Debug and inspect protocol-level messages
- ⚡ Async/Await Support - Modern async Rust with full type safety
TODO
- 🤖 Sub-agent Support - Track and manage multiple AI agents via
agent_id
Installation
Add this to your Cargo.toml:
[]
= "0.1.0"
Or install directly from the crate.io or GitHub repository:
# or
Quick Start
Simple Query
use query;
async
Message Types
The SDK handles various message types from iFlow:
Message::Assistant { content }- AI assistant responsesMessage::ToolCall { id, name, status }- Tool execution requestsMessage::Plan { entries }- Structured task plansMessage::TaskFinish { reason }- Task completion signalsMessage::Error { code, message }- Error notificationsMessage::User { content }- User message echoes
Examples
Run the examples:
# Simple query example
# use WebSocket communication instead of stdio.
# MCP Servers
Architecture
The SDK is organized into several modules:
client- Main IFlowClient implementation with stdio communicationtypes- Type definitions and message structuresprocess_manager- iFlow process lifecycle managementquery- Convenience functions for simple querieserror- Error types and handlinglogger- Message logging functionality
Requirements
- Rust 1.90+
- iFlow CLI installed with
--experimental-acpsupport (or use auto-start feature)
Development
Building
Testing
# Run specific test suites
# e2e tests
Running with logging
RUST_LOG=debug
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Who is using this SDK?
- iflow-cli-action: Automate software development tasks within your GitHub repositories with iFlow CLI.