RunAnywhere Flutter SDK
Privacy-first, on-device AI SDK for Flutter. Run LLMs, Speech-to-Text, Text-to-Speech, and Voice AI directly on user devices.
Installation
Step 1: Add packages to pubspec.yaml:
dependencies:
runanywhere: ^0.20.10
runanywhere_onnx: ^0.20.10 # STT, TTS, VAD
runanywhere_llamacpp: ^0.20.10 # LLM text generation
Step 2: Configure platforms (see below).
iOS Setup (Required)
After adding the packages, you must update your iOS Podfile for the SDK to work.
1. Update ios/Podfile
Make these two critical changes:
# Change 1: Set minimum iOS version to 17.5
platform :ios, '17.5'
# ... (keep existing flutter_root function and setup) ...
target 'Runner' do
# Change 2: Add static linkage - THIS IS REQUIRED
use_frameworks! :linkage => :static
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '17.5'
# Required for microphone permission (STT/Voice features)
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
'PERMISSION_MICROPHONE=1',
]
end
end
end
Important: Without
use_frameworks! :linkage => :static, you will see "symbol not found" errors at runtime.
For a pub.dev dependency, CocoaPods downloads the version-matched RACommons XCFramework and verifies its immutable SHA-256 checksum automatically. Source checkouts use a locally staged framework when present.
2. Update ios/Runner/Info.plist
Add microphone permission for STT/Voice features:
<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for speech recognition</string>
3. Run pod install
cd ios && pod install
Android Setup
Add microphone permission to android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Quick Start
import 'package:runanywhere/runanywhere.dart';
import 'package:runanywhere_onnx/runanywhere_onnx.dart';
import 'package:runanywhere_llamacpp/runanywhere_llamacpp.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Initialize SDK and register backends
await RunAnywhere.initialize();
await Onnx.register();
await LlamaCpp.register();
runApp(MyApp());
}
Text Generation (LLM)
final stream = RunAnywhere.llm
.generateStream('Tell me a joke', LLMGenerationOptions(maxTokens: 128));
await for (final event in stream) {
if (event.isFinal) break;
if (event.token.isNotEmpty) print(event.token);
}
Speech-to-Text
final result = await RunAnywhere.stt.transcribe(audioData);
print(result.text);
Platform Support
| Platform | Minimum Version |
|---|---|
| iOS | 17.5+ |
| Android | API 24+ |
Documentation
Related Packages
- runanywhere — Core SDK (this package)
- runanywhere_llamacpp — LLM backend
- runanywhere_onnx — STT/TTS/VAD backend
License
RunAnywhere License (Apache 2.0 based, with additional commercial-use terms). See LICENSE.
Commercial licensing: san@runanywhere.ai
Libraries
- adapters/http_client_adapter
- adapters/voice_agent_stream_adapter
- core/native/rac_native
- features/stt/services/audio_capture_manager
- features/tts/services/audio_playback_manager
- features/voice_agent/services/voice_agent_mic_driver
- foundation/constants/sdk_constants
- foundation/errors/sdk_exception
- foundation/logging/sdk_logger
- SDK Logger
- generated/chat.pb
- generated/chat.pbenum
- generated/component_types.pb
- generated/component_types.pbenum
- generated/convenience/ra_convenience
- generated/device_info.pb
- generated/device_info.pbenum
- generated/diffusion_options.pb
- generated/diffusion_options.pbenum
- generated/download_service.pb
- generated/download_service.pbenum
- generated/embeddings_options.pb
- generated/embeddings_options.pbenum
- generated/errors.pb
- generated/errors.pbenum
- generated/hardware_profile.pb
- generated/hardware_profile.pbenum
- generated/hybrid_router.pb
- generated/hybrid_router.pbenum
- generated/lifecycle_service.pb
- generated/lifecycle_service.pbenum
- generated/llm_options.pb
- generated/llm_options.pbenum
- generated/llm_service.pb
- generated/llm_service.pbenum
- generated/logging.pb
- generated/logging.pbenum
- generated/lora_options.pb
- generated/lora_options.pbenum
- generated/model_types.pb
- generated/model_types.pbenum
- generated/pipeline.pb
- generated/pipeline.pbenum
- generated/plugin_loader.pb
- generated/plugin_loader.pbenum
- generated/rac_options.pb
- generated/rac_options.pbenum
- generated/rag.pb
- generated/rag.pbenum
- generated/router.pb
- generated/router.pbenum
- generated/sdk_events.pb
- generated/sdk_events.pbenum
- generated/sdk_init.pb
- generated/sdk_init.pbenum
- generated/solutions.pb
- generated/solutions.pbenum
- generated/storage_types.pb
- generated/storage_types.pbenum
- generated/structured_output.pb
- generated/structured_output.pbenum
- generated/stt_options.pb
- generated/stt_options.pbenum
- generated/thinking_tag_pattern.pb
- generated/thinking_tag_pattern.pbenum
- generated/tool_calling.pb
- generated/tool_calling.pbenum
- generated/tts_options.pb
- generated/tts_options.pbenum
- generated/vad_options.pb
- generated/vad_options.pbenum
- generated/vlm_options.pb
- generated/vlm_options.pbenum
- generated/voice_agent_service.pb
- generated/voice_agent_service.pbenum
- generated/voice_events.pb
- generated/voice_events.pbenum
- native/dart_bridge
- native/dart_bridge_audio
- native/dart_bridge_auth
- native/dart_bridge_device
- native/dart_bridge_diffusion
- native/dart_bridge_download
- native/dart_bridge_embeddings
- native/dart_bridge_environment
- native/dart_bridge_events
- native/dart_bridge_file_manager
- native/dart_bridge_hf_auth
- native/dart_bridge_http
- native/dart_bridge_hybrid_stt
- native/dart_bridge_llm
- DartBridge+LLM
- native/dart_bridge_lora
- DartBridge+LoRA
- native/dart_bridge_model_lifecycle
- native/dart_bridge_model_paths
- native/dart_bridge_model_registry
- native/dart_bridge_platform
- native/dart_bridge_plugin_loader
- native/dart_bridge_proto_utils
- native/dart_bridge_rag
- native/dart_bridge_sdk_init
- native/dart_bridge_secure_storage
- native/dart_bridge_solutions
- native/dart_bridge_state
- native/dart_bridge_storage
- native/dart_bridge_structured_output
- native/dart_bridge_stt
- DartBridge+STT
- native/dart_bridge_telemetry
- native/dart_bridge_tool_calling
- native/dart_bridge_tts
- DartBridge+TTS
- native/dart_bridge_vad
- DartBridge+VAD
- native/dart_bridge_vlm
- DartBridge+VLM
- native/dart_bridge_voice_agent
- native/native_functions
- NativeFunctions
- native/platform_loader
- native/type_conversions/model_types_cpp_bridge
- ModelTypes + CppBridge
- native/types/basic_types
- native/types/core_function_types
- native/types/memory_platform_types
- native/types/tools_storage_types
- public/capabilities/runanywhere_diffusion
- public/capabilities/runanywhere_downloads
- public/capabilities/runanywhere_embeddings
- public/capabilities/runanywhere_hybrid
- public/capabilities/runanywhere_llm
- public/capabilities/runanywhere_lora
- public/capabilities/runanywhere_model_lifecycle
- public/capabilities/runanywhere_models
- public/capabilities/runanywhere_plugin_loader
- public/capabilities/runanywhere_rag
- public/capabilities/runanywhere_solutions
- public/capabilities/runanywhere_stt
- public/capabilities/runanywhere_tools
- public/capabilities/runanywhere_tts
- public/capabilities/runanywhere_vad
- public/capabilities/runanywhere_vlm
- public/capabilities/runanywhere_voice
- public/configuration/sdk_environment
- public/events/event_bus
- public/extensions/audio/audio_convert
- public/extensions/format_framework
- public/extensions/model_category_extensions
- public/extensions/rag_module
- RAG backend module for RunAnywhere Flutter SDK.
- public/extensions/runanywhere_logging
- public/extensions/runanywhere_storage
- public/extensions/runanywhere_structured_output
- public/extensions/stt/stt_options_helpers
- public/hybrid/hybrid_cloud_backend
- public/hybrid/hybrid_device_state
- public/hybrid/hybrid_model
- public/hybrid/hybrid_routing_policy
- public/hybrid/hybrid_stt_router
- public/runanywhere
- public/system_tts
- runanywhere
- RunAnywhere Flutter SDK - Core Package.
- runanywhere_protos
- Public generated proto type surface for RunAnywhere Flutter.