Open-source experimental assistant

Your own J.A.R.V.I.S. starts here.

Explore a voice-activated assistant inspired by Iron Man, with separate Android (Flutter) and Windows (Python) implementations. Watch the original demo, inspect the code, and learn what you need before running it yourself.

Android APK under maintenance. A working public download is not currently guaranteed. The Android source also needs a Flutter project scaffold, compatible dependencies and assets before it can be built. Follow the source setup guide instead of assuming the APK is ready.
Choose your platform

Three projects, different stages

The repository contains separate implementations, not one universal installer. Pick the version that matches your device and experience level.

Android · Flutter / Dart

JARVIS Android

Speech recognition, text-to-speech, Gemini-powered responses and Android app intents. Currently standalone Dart source, not a complete buildable Flutter app.

Read Android setup →
Windows · Python

JARVIS Desktop

Voice commands, browser shortcuts, reminders and desktop automation. Requires Python, microphone access and local dependencies. Review the code before running system commands.

Read Windows setup →
Prototype

Jarvis Vision

Early vision and object-recognition experiments. This is not currently advertised as a finished camera assistant.

Explore Vision →
Getting started

Android: bring your own Gemini API key

Want to experiment with the Android source? Here's exactly where the current code expects your key and model name.

  1. Get your own key from Google AI Studio. Never share or commit it.
  2. Open JarvisAppFlutter/jarvis.dart and find class _JarvisScreenState.
  3. Find final String apiKey = "get your api";. Replace the placeholder only in your private local copy, or use the compile-time configuration method explained in the guide.
  4. In initState(), replace the put-exact-model-name-here placeholder with an available Gemini model ID supported by your SDK and account.
  5. Follow the full Android setup guide to create a Flutter scaffold, install dependencies, configure permissions and assets, and run locally.

Security: A key embedded in an Android APK can be extracted, even when passed using --dart-define. Use restricted, quota-limited keys for personal experiments; a public app should keep its provider key behind a secure backend.

See it in action

The original JARVIS reel

Watch the Instagram demonstration linked by the project creator. The video shows a demo, not a promise that the currently published APK works on every device.

Watch on Instagram ↗
Before you install

Frequently asked questions

Can I download a working Android APK today?

The published APK is under maintenance. You can browse GitHub releases, but compatibility and functionality are not guaranteed. No release date is confirmed.

Does the Android code work immediately after cloning?

No. The checked-in jarvis.dart is standalone source. It needs a complete Flutter project, compatible packages, permissions and assets. Read the Android guide first.

Do I need to provide my own API key?

For Gemini-powered Android responses, yes. The repository contains placeholders rather than a usable key and model name. Keep your own key private and understand the risks of embedding it in a client app.

How do I report a problem or contribute?

Read the contribution guide and open a GitHub issue with the platform, steps to reproduce and sanitized error messages.