vantura 0.1.1
vantura: ^0.1.1 copied to clipboard
An AI Agentic Framework for Flutter. Build LLM-powered agents that reason, use tools, remember conversations, and stream responses in real-time. Works with any OpenAI-compatible API.
🚀 Vantura #
Give your Flutter app a brain. No backend required. #
Vantura is an Agentic AI Framework for Flutter that lets you build LLM-powered agents that reason, use tools, remember conversations, and stream responses in real-time — entirely on the client.

🌟 Why Vantura? #
Adding an intelligent agent usually means building a complex Python backend, managing server latency, and handling API auth between client and server. Vantura changes that.
- No Backend Needed: Your agent lives inside your app and talks directly to any OpenAI-compatible API.
- Local Tool Calling: Your agent can query your local database, check device sensors, or navigate screens without a server middleman.
- Privacy-First: User data stays on the device. Perfect for healthcare, finance, and enterprise.
- Pure Dart Core: Zero native code. Zero platform channels. Just one simple SDK.
🔥 Key Features #
- 🧠 ReAct Reasoning Loop — Agents autonomously decide when to think, call tools, and respond.
- 🛠️ Typed Tool System — Define custom tools in minutes with type-safe arguments and human-in-the-loop confirmation.
- 🔄 Real-Time Streaming — Token-by-token streaming for smooth, typewriter-style chat interfaces.
- 💾 Automatic Smart Memory — LLM-powered summarization and pruning keeps context within token limits.
- 🤝 Agent Coordination — Seamlessly hand off conversations between specialist agents (e.g., Support -> Billing).
- 🔌 Provider Agnostic — Works with Groq, OpenAI, Ollama, Mistral, or any OpenAI-compatible API.
- 📊 Telemetry & Usage — Built-in token tracking and error hooks for robust framework logging.
🚀 Quick Start in 30 Seconds #
1. Initialize the Client #
import 'package:vantura/core/index.dart';
final client = VanturaClient(
apiKey: 'your-api-key',
baseUrl: 'https://api.groq.com/openai/v1/chat/completions',
model: 'llama-3.3-70b-versatile',
);
2. Create the Agent #
final agent = VanturaAgent(
instructions: 'You are a helpful business assistant.',
memory: VanturaMemory(sdkLogger, client),
tools: [...getStandardTools(), MyLocalTool()],
client: client,
);
3. Run and Stream #
await for (final chunk in agent.runStreaming('Create an invoice for John')) {
if (chunk.textChunk != null) {
stdout.write(chunk.textChunk); // typewriter effect
}
}
🏗️ Use Cases #
| Industry | Use Case |
|---|---|
| 🏪 Business | "Create an invoice for Alice for 5 units of product X." (Calls local DB tool) |
| 📊 Analytics | "How is my revenue today compared to last week?" (Calls aggregation tool) |
| 🏥 Healthcare | "Show me my upcoming appointments for today." (Privacy-safe local query) |
| 🛒 E-commerce | "Add the blue sneakers to my cart and apply coupon SUMMER20." (Chain of actions) |
📊 How Vantura Compares #
| Feature | Raw API Wrapper | Backend (LangChain) | Vantura (Flutter) |
|---|---|---|---|
| Platform | Any | Server-only | Mobile-Native |
| Tool Calling | Manual parsing | ✅ | ✅ Typed + local context |
| Memory | Build yourself | ✅ | ✅ Auto-summarize |
| Latency | High | High | Low (Client-direct) |
| Data Privacy | External | External | 100% On-Device |
🛠️ Built-in Tools #
| Tool | Capability |
|---|---|
CalculatorTool |
Basic arithmetic (add, subtract, etc.) |
NetworkConnectivityTool |
Real-time internet status checks |
DeviceInfoTool |
OS and Platform metadata |
ApiTestTool |
External HTTP GET/POST requester |
Register them via getStandardTools() or build your own by extending VanturaTool<T>.
🎨 Markdown Renderer Included #
Vantura comes with a zero-dependency Markdown renderer for Flutter. Render headers, bold, italics, code blocks, and bullet lists with one widget:
import 'package:vantura/markdown/markdown.dart';
MarkdownText('### Hello **Vantura**', isUser: false)
🤝 Contributing #
We welcome contributions! Whether it's adding new tools, improving the markdown renderer, or fixing bugs, check out our GitHub to get started.
📄 License #
This project is licensed under the BSD 3-Clause License — see the LICENSE file for details.
Built with ❤️ for the Flutter community.