Skip to content

Vantura · Open source · Flutter & Dart

Agents that reason on the device, not on your invoice.

Every other agent framework puts a Python orchestration server between your user and the model. Vantura runs the ReAct loop client-side in Dart — no server to operate, nothing to fall over mid-task, and the sensitive fields never leave the handset.

MIT licensed · OpenAI · Anthropic · Gemini · Groq · Ollama

The loop

Thought, action, observation — until the task is actually done

A generative model answers once. An agent keeps going: it reasons about what it is missing, calls a tool to get it, reads the result, and decides whether it is finished. That is the whole difference.

This is a recorded trace from a reconciliation task, stepped through. It is not a live API call dressed up as a terminal.

Recorded agent trace01/09

> Reconcile PO #8042 against the bank feed and flag any variance.

Capabilities

What ships in the box

Open source, MIT licensed, and used in production by the people who wrote it.

On-device ReAct

The reasoning loop runs on the client. No orchestration server to operate, pay for, or fall over between the user and the model.

Multi-agent teams

Agents delegate to other agents with their own tools and memory, so a long task decomposes instead of blowing one context window.

PII redaction engine

Emails, card numbers and identifiers are stripped before anything leaves the device, and logs are scrubbed of secrets by default.

Multi-provider

OpenAI, Anthropic, Gemini, Groq and Ollama behind one interface. Swapping provider is a line of code, not a refactor.

Dual-layer memory

Working memory for the current task, durable memory across sessions, with checkpointing so a dropped connection resumes instead of restarting.

Isolate workers

Tool execution runs off the UI thread in Dart isolates, so a long tool call never janks the interface.

Constraints

An agent near a general ledger is a different engineering problem

Most agent demos summarise a document. Ours post to accounts that get audited. That changes what the framework has to guarantee — and it is why we built our own instead of wrapping someone else's.

See the governance layer →

Deterministic tool contracts

Every tool has a typed signature and a schema. The model chooses which to call, never what a call means.

Append-only audit trail

Each thought, call and observation is recorded. An auditor can reconstruct why a posting happened.

Idempotent writes

A retried action cannot double-post. This is the difference between a demo and something near a general ledger.

A human gate on value

Agents draft and reconcile. Anything that moves money stops for a person.

Get started

One dependency, one agent

Add the package, register your tools, give the agent a goal. There is no server to stand up first.

dart pub add vantura

final agent = VanturaAgent(
  provider: Anthropic(model: 'claude-sonnet-5'),
  tools: [getPurchaseOrder, findSettlements],
  memory: DualLayerMemory(),
  redaction: PiiRedactor.strict(),
);

final result = await agent.run(
  'Reconcile PO #8042 against the bank feed.',
);
Minimal Vantura agent — tools are plain Dart functions with typed signatures.

Questions

Vantura, answered straight

  • LangChain and CrewAI are server-side Python frameworks. Vantura runs entirely on the client (Flutter), eliminating the need for a backend orchestration server, reducing latency, and keeping data private on the device.

Next

Read the source before you trust it with a ledger.

That is the point of shipping it open. If you want it wired into Dynamics or Odoo, that is the conversation we have every week.