Sample Mobile AI Assistant: a React Native chat app that talks to Bedrock, Ollama and OpenAI
A lightning-fast, cross-platform mobile AI Assistant App built with React Native.
At a glance
- What is it?
- AWS Samples ships a cross-platform assistant built on React Native and Amazon Bedrock, with optional App Server deployment through API Gateway and Lambda. It is a reference sample, not a product, and the README leaves several questions unanswered.
- Who is it for?
- Adopt it as a reference implementation you intend to read and modify, not as a finished assistant. It fits engineers who want a working React Native chat client with streaming, image generation, web search and instant web app creation already wired to multiple providers.
- Can I use it commercially?
- Yes. MIT-0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Sample Mobile AI Assistant actually is and who it is for
The repository is an AWS sample, and the name says so. It is a React Native application that runs on Android, iOS and macOS, and it exists to demonstrate a chat client wired to Amazon Bedrock, with compatibility extending to Ollama, DeepSeek, OpenAI and OpenAI Compatible endpoints. The README describes it as a personal AI workspace: chat, image generation, instant web app creation and voice conversation in one shell.
The audience is narrow but real. If you are building a mobile assistant and want to see how someone else structured the provider layer, the settings screens and the streaming path, this is a readable starting point in TypeScript. If you want an assistant to install from an app store and use, this is the wrong artifact. Nothing in the README describes a distribution channel, and the repository layout is a source tree: react-native/, server/, assets/, plus the usual contribution files.
The topics list is the clearest statement of scope: amazon-bedrock and amazon-nova on the cloud side, ollama and deepseek on the local and third-party side, and vif-chat and sample-vif-chat-app as the internal naming. Speech-to-speech and virtual try-on also appear as topics, which tells you the sample covers more surface than the README's current text explains.
How the provider layer and the App Server fit together
There are two distinct paths, and confusing them is the easiest way to waste an afternoon.
The direct path is client to provider. You paste a Bedrock API key, a DeepSeek API key or an OpenAI API key into the settings page, pick a model from a dropdown, and the app talks to that provider. The README states that after entering a Bedrock API key the app automatically fetches the latest model list for the selected region, and that multiple models appearing in the list means the configuration succeeded. That is a useful self-check built into the UI.
The second path is the App Server. The README's architecture diagram shows API Gateway in front of AWS Lambda, with all requests authenticated through API Gateway's API key validation before being forwarded to Lambda. The stated reason for the server is streaming: API Gateway plus Lambda enables streaming responses for up to 15 minutes. That number matters because a long generation over a direct mobile connection is exactly where mobile clients tend to give up.
The OpenAI section adds a detail worth noting: if the App Server is deployed, an OpenAI configuration can enable a Use Proxy option to forward requests through it. So the server is not Bedrock-only in practice, even though the deployment section is written under the Bedrock heading.
Installing it and pointing it at a model
The README does not give build instructions for the React Native app itself. There is no npm install, no pod install, no note on which Node version to use. What it does document is the server deployment and the in-app configuration, so that is what can be reproduced here.
The server deploys with a single command. The README says the prerequisites are the AWS CLI configured with credentials via aws configure, and that the script deploys into the account of your current profile.
curl -fsSL https://raw.githubusercontent.com/aws-samples/sample-mobile-ai-assistant/main/server/install.sh | bashThe README states this defaults to the region from $AWS_REGION or your aws configure default, falling back to us-east-1, with stack name AIAssistant. It says to wait about 3-4 minutes, after which you get an API URL, a link to obtain the API key, and a scannable QR code for auto-configuring the app. To target something else, the flags are explicit:
./install.sh --region us-west-2 --stack MyAIAssistant --profile myprofileOn the app side, the flow is: launch the app, open the drawer menu, tap Settings, then under Amazon Bedrock and App Server tap the scan icon next to API URL to scan the QR on iOS or Android, or paste the API URL and API key manually. Select your region and tap the checkmark at the top right to save.
For a local model instead, the Ollama tab takes a server URL. The README's example is http://localhost:11434, with an optional API key, and the chat model dropdown populates once the URL is reachable. For DeepSeek, you enter an API key and choose between DeepSeek-Chat and DeepSeek-Reasoner.
Where the sample stops being useful
The most obvious limitation is the missing build documentation. The README explains how to deploy a server and configure a running app, but not how to produce that app. For a sample whose value is the client code, that is a gap you will fill yourself by reading react-native/.
Web search has stated accuracy problems. The README recommends Tavily for best results, notes that Google Search requires manual verification on first use, and says Baidu and Bing are currently in beta and may return inaccurate results. That is honest, and it also means the feature is not uniform across providers.
The third limitation is the one that matters most for anything beyond a demo: this is an AWS sample. Sample code is written to show a pattern, not to survive an audit. The README does not document key rotation, does not describe what happens to keys stored on the device, and does not discuss what the Lambda function logs. The App Server does put API Gateway key validation in front of Lambda, which the README presents as ensuring secure access to backend services, but that is one control and the README does not claim more.
If you need a supported product with a security posture you can point at, this is the wrong tool. If you need to understand how a mobile client handles streaming from a serverless backend, the architecture is small enough to read in an afternoon.
Compared with a plain OpenAI-compatible client
The natural alternative is a generic chat client that speaks the OpenAI API and nothing else. The difference is not the model list, because Sample Mobile AI Assistant already supports OpenAI and OpenAI Compatible endpoints. The difference is the App Server.
A plain client holds the API key on the device and calls the provider directly. Sample Mobile AI Assistant can do that too, but it also offers a path where the key lives behind an API Gateway deployment and the request is forwarded to Lambda. That buys the 15-minute streaming window and centralizes the credential, at the cost of an AWS account, a CloudFormation stack and a deployment step. If your users are on flaky mobile networks and your generations are long, the server path is the reason to pick this project over a simpler client. If your generations are short, the server is overhead you do not need.
The second difference is the creation features. Instant web app creation, image generation with a gallery, and Mermaid rendering are in the app, not bolted on. A generic client would leave you to build those.
Maintenance, licensing and upgrade cost
The repository is not archived, and the last push was on 2026-09-13. That is recent enough that the code is being touched, though a recent push is not the same as a support commitment, and the README makes no support promise.
Release cadence is visible in the tags: 2.9.0 on 2026-04-24, 2.8.0 on 2026-03-22, and 2.7.0 on 2025-12-29. The README's What's New section ties features to versions: multiple background app creation with iOS Live Activity and Android notifications from v2.8.0, React Native 0.83 with the New Architecture enabled from v2.8.0, instant web app creation and web search from v2.7.0, and the API Gateway plus Lambda App Server with 15-minute streaming from v2.7.0.
That last item is the upgrade cost to plan for. The v2.8.0 jump to React Native 0.83 with the New Architecture is a structural change, not a patch. If you fork this and later pull upstream, expect to reconcile native dependencies rather than merge cleanly. The release notes are the place to check what a version bump actually changes.
The licence is MIT-0, which is permissive and, unlike MIT, does not require attribution. The LICENSE file is at the repository root. This is not legal advice; read the licence text yourself before shipping anything derived from it.
Editorial conclusion
Adopt it as a reference implementation you intend to read and modify, not as a finished assistant. It fits engineers who want a working React Native chat client with streaming, image generation, web search and instant web app creation already wired to multiple providers. It does not fit anyone who needs a supported product with a security review, because the repository is a sample under MIT-0 and the README does not document a hardening process. Verify first that the provider path you need is actually documented for your platform, and check the react-native/ directory for the build steps the README omits.
Frequently asked questions
Which is an example of an AI assistant?
Sample Mobile AI Assistant is one, in the sense that it is a working chat client that connects to language models and holds a conversation. It differs from a consumer assistant in that it is source code you configure with your own provider credentials rather than a service you sign up for.
What exactly is an AI assistant?
In this project the term covers a mobile app that sends prompts to a model and streams the reply back, plus optional tools around it: web search, image generation, Mermaid chart rendering and instant web app creation. The README describes the app as a personal AI workspace.
What is AI assistant on your phone?
Here it is a React Native application you install on Android, iOS or macOS and point at a model provider. Configuration happens in the app's Settings page, where you enter a Bedrock API key, an App Server URL, or credentials for Ollama, DeepSeek or OpenAI.
How to make AI assistant in mobile?
The repository shows one approach: a React Native client in the react-native/ directory, with an optional server in server/ that deploys API Gateway and Lambda so responses can stream for up to 15 minutes. The README documents the server deployment and the in-app configuration, but not the build steps for the client itself.
Community notes