Runtime
On-device multimodal inference
React Native APIs bridge to Android and iOS model execution with streamed results, image inputs, cancellation, typed errors, and explicit lifecycle control.
Amaryllis
Open-source React Native systems engineering
Amaryllis combines local multimodal inference, streaming interaction, offline-first context, and governed adaptive components. The implementation explores how useful AI behavior can remain private and responsive without making probabilistic model output authoritative over application code, policy, or rendering.
Current implementation
Native inference provides model capability. The context layer provides application-owned retrieval. The component layer constrains how generated output can affect user interfaces. Each layer can be tested, replaced, restricted, or disabled independently.
Runtime
React Native APIs bridge to Android and iOS model execution with streamed results, image inputs, cancellation, typed errors, and explicit lifecycle control.
Context
An interface-driven context engine supports application-owned storage, bounded retrieval, TTL policy, validation, and optional scoring without requiring a hosted data service.
Components
Typed ComponentSpecs, registries, generators, schema validation, policy checks, and bounded personalization constrain how AI can influence rendered interfaces.
Architecture
The model is a capability provider, not the authority. Application code owns model selection, storage, lifecycle, rendering, fallback behavior, and policy. Runtime model output is treated as untrusted input before it reaches product UI.
Read the security modelEngineering scope
Amaryllis is also a systems-engineering exercise across native mobile APIs, deterministic validation, secure delivery, and long-lived package boundaries.
Mobile systems
React Native modules, Android and iOS build paths, native resource management, streaming APIs, cancellation, and compatibility testing.
AI governance
Typed contracts, schema validation, import and capability restrictions, registry authority, bounded patches, and explicit non-goals.
Delivery assurance
Change-aware CI, package and entrypoint validation, compatibility matrices, repository and package SBOMs, and release provenance controls.
@micrantha/amaryllis-components
ComponentSpec is the source of truth. It declares structure, props, target runtime, allowed AI behavior, and generation contracts before a model is involved.
Generate source at build time, then validate, inspect, test, and publish it through the normal software delivery path.
Create bounded variants within declared slots, design tokens, copy rules, layouts, and import allowlists.
Return schema-validated props, variants, slot text, or constrained JSON patches at runtime—never raw JSX, TSX, imports, or scripts.
Where it fits
The strongest fit is mobile software where privacy, offline behavior, latency, application ownership, and constrained adaptation matter more than access to the largest hosted model.
Strong fit
Current constraints
Quickstart
The application owns model selection, distribution, storage, privacy decisions, and fallback behavior.
Install
npm install @micrantha/react-native-amaryllis
Provider
import { LLMProvider } from '@micrantha/react-native-amaryllis';
<LLMProvider config={{
modelPath: 'gemma3-1b-it-int4.task',
maxTokens: 512,
maxNumImages: 2,
}}>
<App />
</LLMProvider>
Streaming
import { useInferenceAsync } from '@micrantha/react-native-amaryllis';
const generate = useInferenceAsync({
onResult: (chunk, isFinal) => {
append(chunk);
if (isFinal) finish();
},
onError: handleError,
});
await generate({ prompt, images });
Project direction
Current work continues to harden native compatibility, model delivery, context integration, package publication, component governance, and evidence-producing release workflows.