Documentation Index
Fetch the complete documentation index at: https://docs.synheart.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Syni Flutter SDK (package:syni) is the Dart/Flutter consumer of the
Syni runtime. It wraps the C FFI in a Dart agent API:
install lifecycle, persona binding, streaming chat, and hybrid local/cloud
routing.
Key features
- On-device inference — Qwen 2 / 2.5 and Gemma 3 GGUF models out of the box; bring your own GGUF for other supported architectures.
- Hybrid local / cloud — same agent API, choose execution mode per call
(
localFirst,cloudFirst,localOnly,cloudOnly). - Versioned personas — load by id from bundled
syni-spec; the same id resolves to the same behavior on client and server. - Worker isolate so engine load + token generation don’t block the UI thread.
- Verified model downloads — pinned SHA-256 per model, checked at install time.
- Streaming chat with token-level deltas plus a final structured response.
Platform support
| Android | iOS | macOS | Linux | Windows | Web |
|---|---|---|---|---|---|
| ✅ | ✅ | 🚧 | 🚧 | 🚧 | ❌ |
Installation
1. Pull the native runtime artifacts
The Flutter plugin doesn’t ship the native engine — that’s Syni Runtime, distributed separately via the Synheart CLI:SyniRuntime.xcframework/, android/jniLibs/<abi>/libsyni_ffi.so,
and the spec payload under your app’s synheart/vendor/ tree. The plugin’s
build.gradle / Podspec resolve these paths automatically.
Re-run any time you want a fresher version — installs are idempotent.
2. Add the Dart package
Basic usage
Streaming
Hybrid local / cloud
SyniExecutionMode.{localFirst, cloudFirst, localOnly, cloudOnly}) or pinned by the persona via its
execution_policy field in the spec.
Where this fits
package:syni is the agent layer — inference, install lifecycle,
persona binding, chat orchestration. It does not own:
- HSI signal collection (the
synheart_coreSDK does), or - the four-authority gate (consent + capability + activation + session; also a host concern).
synheart_core and syni,
and use Synheart.syni (in synheart_core) which wraps the agent with
those layers. Standalone use of package:syni is fully supported when you
don’t need the wider Synheart contract.
Models
Two pre-pinned entries ship inSyniModels:
qwen25_15bInstructQ4(Qwen 2.5 1.5B Instruct Q4_K_M, ~1.1 GB)gemma3_1bInstructQ4(Gemma 3 1B Instruct Q4_K_M, ~770 MB, Synheart-hosted mirror)
SyniModelSpec.
API reference
The full Dart API is on pub.dev. Surface highlights:SyniAgent— install lifecycle, model catalog, persona binding,chat/chatStreamorchestration, hybrid local/cloud routing.SyniInstaller— model download, tokenizer fetch, SHA-256 verification, cold-start restore.SyniCloudClient— HTTP + SSE client for the Syni cloud chat endpoint; sticky session id; HSI forwarded as requestcontext.SyniSpecPersona.load(id)— resolves persona JSON from bundled spec assets so the same id consistently produces the same behavior on client and server.SyniRuntime— worker-isolate wrapper over the on-device inference engine.
Related
- Syni overview — how the pieces fit
- Syni Runtime FFI — the C ABI under the hood
- Syni Spec — persona / safety / schema contracts
- Package on pub.dev:
syni