Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

242 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IRIS-MX Mobile AI Assistant

Voice-First Mobile AI Execution System

Speak naturally. Control your Mobile Device. Automate Workflows on Android with Voice Commands.


Speak your command. IRIS-MX executes it directly on your phone.

A voice-first mobile execution assistant powered by Gemini 3.1 Live API with real-time bidirectional audio, floating system overlays, native app intents, and hardware automation.


πŸ“‘ Table of Contents


⚑ Overview

IRIS-MX is not a basic chatbot.

It is a Voice-First Mobile AI Assistant built on the powerful IRIS-AI Voice Engine. It listens to your spoken commands in real-time and executes real actions directly across your phoneβ€”opening apps, playing music, sending WhatsApp messages, making calls, controlling hardware settings, and managing device tasks.

Speak naturally. IRIS-MX understands intent. Actions happen live on your mobile device.


🎯 What is Voice-First Mobile?

Traditional phone apps force you to unlock your screen, find an icon, tap buttons, and type text.

IRIS-MX changes that completely: You speak β†’ IRIS hears you in real time β†’ Actions execute on your phone.

Your Spoken Voice
    ↓ (Bidirectional Real-Time PCM Stream)
Gemini 3.1 Live API
    ↓ (Intent & Action Recognition)
IRIS Mobile Execution Engine
    ↓ (Native Intents & Hardware APIs)
WhatsApp / Spotify / Calls / Settings / Camera / Overlays
  • Latency: Sub-second zero-latency bidirectional voice streams.
  • Background Resilient: Runs via floating system overlays and background service loops.
  • Multimodal Screen Streaming: Real-time screen capture streaming directly to the AI for visual context.

✨ Core Mobile Capabilities

πŸ’¬ WhatsApp & Direct Communication

  • Send WhatsApp Messages: Compose and launch direct WhatsApp messages to any contact by name.
    • Commands: "Send a WhatsApp message to Sidhu saying I'm on my way", "Message Mom on WhatsApp"
  • Phone Calls & SMS: Search device contacts and trigger calls or text messages instantly.
    • Commands: "Call Alex", "Send an SMS to Rahul saying call me back"

🎡 Deep Link App Launching & Media Controls

  • YouTube Playback: Search and play any song or video on YouTube instantly.
    • Commands: "Play Believer on YouTube", "Open YouTube and search podcast"
  • Spotify Streaming: Trigger native Spotify music streaming for songs, artists, or playlists.
    • Commands: "Play synthwave on Spotify", "Resume Spotify music"
  • Open Any App: Launch any native mobile application installed on your device.
    • Commands: "Open Settings", "Launch Instagram", "Open Chrome"

⚑ Hardware & System Controls

  • Flashlight Control: Instantly toggle your device's LED flashlight on or off.
    • Commands: "Turn on flashlight", "Turn off flashlight"
  • System Settings Teleport: Direct navigation to Wi-Fi, Bluetooth, Location, and Hotspot control panels.
    • Commands: "Open Wi-Fi settings", "Turn on Bluetooth settings"

πŸ“… Calendar & Memory Management

  • Calendar Scheduling: Check upcoming events and create new meetings in your device calendar.
    • Commands: "What's on my calendar for today?", "Schedule a meeting for tomorrow at 3 PM"
  • Persistent AI Memory: Remember important user facts, preferences, and notes across sessions.
    • Commands: "Remember my car parking spot is level 2", "What is my car parking spot?"

πŸ‘οΈ Multimodal Screen Vision & Floating Overlay

  • Real-Time Screen Capture: Stream your live mobile screen directly to IRIS to ask questions about anything displayed.
    • Commands: "Look at my screen and summarize this article", "What code error is showing on screen?"
  • Floating System Dock: A glassmorphic quick-dock allowing instant voice mute, screen vision toggle, and status monitoring.

πŸͺ‘ Open Core Model & Code Protection

IRIS-MX is built on an Open Core commercial model:

  • Public Repository (IRIS-X): Contains the user interface shell, navigation layout, theme system, and community integration examples.
  • Private Production Core: The core native voice execution engine, low-latency PCM audio stream pipelines, and proprietary background automation logic are protected and private.

πŸ”’ IRIS-MX is a paid software. The public repository allows developers to inspect the UI shell, but full AI execution requires an active Mobile PRO License.


πŸ’° Pricing & Licensing

To use the full IRIS-MX Mobile AI Voice Assistant, you must activate a Mobile PRO License.

License activation is tied to your account and grants full access to native voice execution, background overlay permissions, and real-time screen streaming.


πŸš€ Download & Setup

πŸ“² For Mobile App Users

  1. Download the official release APK directly from: https://www.irisxai.in/download/mobile
  2. Install the APK on your Android device.
  3. Open IRIS-MX, sign in, and grant the required Microphone and Display Over Other Apps permissions.
  4. Enter your Gemini API Key in Settings and tap Start AI!

πŸ’» For Developers (UI Shell)

To run and inspect the public frontend shell locally:

# 1. Clone the public repository
git clone https://github.com/IRISX-AI/IRIS-X.git
cd IRIS-X

# 2. Install dependencies
npm install

# 3. Start Expo development server
npm run start

πŸ“ Project Structure

Project Structure

Project Structure

Project Structure

IRIS-MX/
β”œβ”€β”€ android
β”‚   β”œβ”€β”€ app
β”‚   β”‚   β”œβ”€β”€ build
β”‚   β”‚   β”‚   β”œβ”€β”€ generated
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ap_generated_sources
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ autolinking
β”‚   β”‚   β”‚   β”‚   β”‚   └── src
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ res
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ pngs
β”‚   β”‚   β”‚   β”‚   β”‚   └── resValues
β”‚   β”‚   β”‚   β”‚   └── source
β”‚   β”‚   β”‚   β”‚       └── buildConfig
β”‚   β”‚   β”‚   β”œβ”€β”€ intermediates
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ aar_metadata_check
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ annotation_processor_list
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ apk_ide_redirect_file
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ app_metadata
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ assets
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ compatible_screen_manifest
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ compile_and_runtime_not_namespaced_r_class_jar
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ compressed_assets
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ cxx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Debug
β”‚   β”‚   β”‚   β”‚   β”‚   └── refs
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ data_binding_layout_info_type_merge
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ data_binding_layout_info_type_package
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ desugar_graph
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ dex
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ dex_archive_input_jar_hashes
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ dex_number_of_buckets_file
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ duplicate_classes_check
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ external_file_lib_dex_archives
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ external_libs_dex_archive
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ external_libs_dex_archive_with_artifact_transforms
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global_synthetics_dex
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global_synthetics_external_lib
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global_synthetics_external_libs_artifact_transform
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global_synthetics_file_lib
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global_synthetics_mixed_scope
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global_synthetics_project
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global_synthetics_subproject
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ incremental
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ debug
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ debug-mergeJavaRes
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ mergeDebugAssets
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ mergeDebugJniLibFolders
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ mergeDebugShaders
β”‚   β”‚   β”‚   β”‚   β”‚   └── packageDebug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ java_res
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ javac
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ linked_resources_binary_format
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ local_only_symbol_list
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ manifest_merge_blame_file
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_java_res
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_jni_libs
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_manifest
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_manifests
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_native_libs
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_res
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_res_blame_folder
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_shaders
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ merged_test_only_native_libs
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ mixed_scope_dex_archive
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ navigation_json
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ nested_resources_validation_report
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ packaged_manifests
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ packaged_res
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ project_dex_archive
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ runtime_symbol_list
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ signing_config_versions
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ source_set_path_map
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ stable_resource_ids_file
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ stripped_native_libs
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ sub_project_dex_archive
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ symbol_list_with_package_name
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   └── validate_signing_config
β”‚   β”‚   β”‚   β”‚       └── debug
β”‚   β”‚   β”‚   β”œβ”€β”€ kotlin
β”‚   β”‚   β”‚   β”‚   └── compileDebugKotlin
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ cacheable
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ classpath-snapshot
β”‚   β”‚   β”‚   β”‚       └── local-state
β”‚   β”‚   β”‚   β”œβ”€β”€ outputs
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ apk
β”‚   β”‚   β”‚   β”‚   β”‚   └── debug
β”‚   β”‚   β”‚   β”‚   └── logs
β”‚   β”‚   β”‚   β”‚       └── manifest-merger-debug-report.txt
β”‚   β”‚   β”‚   └── tmp
β”‚   β”‚   β”‚       β”œβ”€β”€ compileDebugJavaWithJavac
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ compileTransaction
β”‚   β”‚   β”‚       β”‚   └── previous-compilation-data.bin
β”‚   β”‚   β”‚       └── kotlin-classes
β”‚   β”‚   β”‚           └── debug
β”‚   β”‚   β”œβ”€β”€ src
β”‚   β”‚   β”‚   β”œβ”€β”€ debug
β”‚   β”‚   β”‚   β”‚   └── AndroidManifest.xml
β”‚   β”‚   β”‚   β”œβ”€β”€ debugOptimized
β”‚   β”‚   β”‚   β”‚   └── AndroidManifest.xml
β”‚   β”‚   β”‚   └── main
β”‚   β”‚   β”‚       β”œβ”€β”€ assets
β”‚   β”‚   β”‚       β”‚   └── fonts
β”‚   β”‚   β”‚       β”œβ”€β”€ cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ CMakeLists.txt
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_audio_dsp_kernel.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_audio_resampler.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_beam_search_decoder.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_conformer_encoder.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_conformer_encoder.hpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_core_engine.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_core_engine.h
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_fft_radix4.c
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_fft_radix4.h
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_filterbank.c
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_filterbank.h
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_jni_bridge.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_quantized_matmul.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_simd_matrix.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_simd_matrix.hpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_tensor_math.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_tensor_math.hpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_tensor_operations.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_vulkan_compute.cpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ iris_vulkan_compute.hpp
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ raw_c_dsp.c
β”‚   β”‚   β”‚       β”‚   └── raw_c_dsp.h
β”‚   β”‚   β”‚       β”œβ”€β”€ java
β”‚   β”‚   β”‚       β”‚   └── com
β”‚   β”‚   β”‚       β”œβ”€β”€ res
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ drawable
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ drawable-hdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ drawable-mdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ drawable-xhdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ drawable-xxhdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ drawable-xxxhdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ font
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ mipmap-anydpi-v26
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ mipmap-hdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ mipmap-mdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ mipmap-xhdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ mipmap-xxhdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ mipmap-xxxhdpi
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ values
β”‚   β”‚   β”‚       β”‚   └── values-night
β”‚   β”‚   β”‚       └── AndroidManifest.xml
β”‚   β”‚   β”œβ”€β”€ build.gradle
β”‚   β”‚   └── proguard-rules.pro
β”‚   β”œβ”€β”€ build
β”‚   β”‚   β”œβ”€β”€ generated
β”‚   β”‚   β”‚   └── autolinking
β”‚   β”‚   β”‚       β”œβ”€β”€ autolinking.json
β”‚   β”‚   β”‚       β”œβ”€β”€ package-lock.json.sha
β”‚   β”‚   β”‚       └── package.json.sha
β”‚   β”‚   └── reports
β”‚   β”‚       └── problems
β”‚   β”‚           └── problems-report.html
β”‚   β”œβ”€β”€ gradle
β”‚   β”‚   └── wrapper
β”‚   β”‚       β”œβ”€β”€ gradle-wrapper.jar
β”‚   β”‚       └── gradle-wrapper.properties
β”‚   β”œβ”€β”€ build.gradle
β”‚   β”œβ”€β”€ gradle.properties
β”‚   β”œβ”€β”€ gradlew
β”‚   β”œβ”€β”€ gradlew.bat
β”‚   └── settings.gradle
β”œβ”€β”€ app
β”‚   β”œβ”€β”€ (tabs)
β”‚   β”‚   β”œβ”€β”€ _layout.tsx
β”‚   β”‚   └── index.tsx
β”‚   └── _layout.tsx
β”œβ”€β”€ assets
β”‚   β”œβ”€β”€ fonts
β”‚   β”‚   β”œβ”€β”€ Antonio-Bold.ttf
β”‚   β”‚   β”œβ”€β”€ Antonio-Medium.ttf
β”‚   β”‚   β”œβ”€β”€ Antonio-Regular.ttf
β”‚   β”‚   β”œβ”€β”€ Antonio-SemiBold.ttf
β”‚   β”‚   β”œβ”€β”€ Outfit-ExtraLight.ttf
β”‚   β”‚   β”œβ”€β”€ Outfit-Light.ttf
β”‚   β”‚   β”œβ”€β”€ Outfit-Medium.ttf
β”‚   β”‚   β”œβ”€β”€ Outfit-Regular.ttf
β”‚   β”‚   β”œβ”€β”€ Outfit-SemiBold.ttf
β”‚   β”‚   └── Outfit-Thin.ttf
β”‚   β”œβ”€β”€ icons
β”‚   β”‚   β”œβ”€β”€ apps.png
β”‚   β”‚   β”œβ”€β”€ home.png
β”‚   β”‚   β”œβ”€β”€ iris-x.svg
β”‚   β”‚   β”œβ”€β”€ notes.png
β”‚   β”‚   └── profile.png
β”‚   β”œβ”€β”€ images
β”‚   β”‚   β”œβ”€β”€ android-icon-background.png
β”‚   β”‚   β”œβ”€β”€ android-icon-foreground.png
β”‚   β”‚   β”œβ”€β”€ android-icon-monochrome.png
β”‚   β”‚   β”œβ”€β”€ favicon.png
β”‚   β”‚   β”œβ”€β”€ icon.png
β”‚   β”‚   β”œβ”€β”€ partial-react-logo.png
β”‚   β”‚   β”œβ”€β”€ react-logo.png
β”‚   β”‚   β”œβ”€β”€ react-logo@2x.png
β”‚   β”‚   β”œβ”€β”€ react-logo@3x.png
β”‚   β”‚   └── splash-icon.png
β”‚   β”œβ”€β”€ banner.png
β”‚   └── logo.png
β”œβ”€β”€ benchmarks
β”‚   └── rust_benchmarks.rs
β”œβ”€β”€ bindings
β”‚   β”œβ”€β”€ c_ffi
β”‚   β”‚   β”œβ”€β”€ build_c_ffi.sh
β”‚   β”‚   β”œβ”€β”€ iris_c_ffi.cpp
β”‚   β”‚   β”œβ”€β”€ iris_c_ffi.h
β”‚   β”‚   └── Makefile
β”‚   β”œβ”€β”€ go_cgo
β”‚   β”‚   β”œβ”€β”€ iris_cgo_bridge.go
β”‚   β”‚   └── Makefile
β”‚   β”œβ”€β”€ node_addon
β”‚   β”‚   β”œβ”€β”€ binding.gyp
β”‚   β”‚   β”œβ”€β”€ index.js
β”‚   β”‚   β”œβ”€β”€ iris_node_addon.cpp
β”‚   β”‚   └── Makefile
β”‚   β”œβ”€β”€ python
β”‚   β”‚   β”œβ”€β”€ build_python_bindings.sh
β”‚   β”‚   β”œβ”€β”€ iris_native_py.cpp
β”‚   β”‚   β”œβ”€β”€ setup.py
β”‚   β”‚   └── test_python_bindings.py
β”‚   └── rust_ffi
β”‚       β”œβ”€β”€ src
β”‚       β”‚   └── lib.rs
β”‚       β”œβ”€β”€ build_rust_bindings.sh
β”‚       └── Cargo.toml
β”œβ”€β”€ components
β”‚   β”œβ”€β”€ IrisBiometricScanner.tsx
β”‚   β”œβ”€β”€ IrisHeader.tsx
β”‚   β”œβ”€β”€ IrisHolographicOrb.tsx
β”‚   β”œβ”€β”€ IrisNativeVisualizer.tsx
β”‚   β”œβ”€β”€ IrisQuantumHUD.tsx
β”‚   └── VoiceNode.tsx
β”œβ”€β”€ config
β”‚   β”œβ”€β”€ security_policy.json
β”‚   └── telemetry_pipeline.yaml
β”œβ”€β”€ constants
β”‚   β”œβ”€β”€ data.ts
β”‚   β”œβ”€β”€ icons.ts
β”‚   └── theme.ts
β”œβ”€β”€ core_engine
β”‚   β”œβ”€β”€ cpp
β”‚   β”‚   β”œβ”€β”€ iris_acoustic_model.cpp
β”‚   β”‚   β”œβ”€β”€ iris_acoustic_model.hpp
β”‚   β”‚   └── iris_audio_pipeline.cpp
β”‚   β”œβ”€β”€ src
β”‚   β”‚   β”œβ”€β”€ audio_buffer.rs
β”‚   β”‚   β”œβ”€β”€ audio_effects.rs
β”‚   β”‚   β”œβ”€β”€ beam_search.rs
β”‚   β”‚   β”œβ”€β”€ conformer.rs
β”‚   β”‚   β”œβ”€β”€ crypto.rs
β”‚   β”‚   β”œβ”€β”€ dsp_mel.rs
β”‚   β”‚   β”œβ”€β”€ fft.rs
β”‚   β”‚   β”œβ”€β”€ lib.rs
β”‚   β”‚   β”œβ”€β”€ mel_filter.rs
β”‚   β”‚   β”œβ”€β”€ metrics.rs
β”‚   β”‚   β”œβ”€β”€ nn_layers.rs
β”‚   β”‚   β”œβ”€β”€ quantization.rs
β”‚   β”‚   β”œβ”€β”€ resampler.rs
β”‚   β”‚   β”œβ”€β”€ tokenizer.rs
β”‚   β”‚   β”œβ”€β”€ transformer.rs
β”‚   β”‚   └── vad_detector.rs
β”‚   β”œβ”€β”€ zig
β”‚   β”‚   └── iris_simd.zig
β”‚   └── Cargo.toml
β”œβ”€β”€ deploy
β”‚   └── k8s
β”‚       └── deployment.yaml
β”œβ”€β”€ docs
β”‚   β”œβ”€β”€ API_SPECIFICATION.md
β”‚   └── DEPLOYMENT_GUIDE.md
β”œβ”€β”€ infra
β”‚   └── terraform
β”‚       └── main.tf
β”œβ”€β”€ ios
β”‚   β”œβ”€β”€ IRISMX
β”‚   β”‚   β”œβ”€β”€ AppDelegate.h
β”‚   β”‚   β”œβ”€β”€ AppDelegate.mm
β”‚   β”‚   └── main.m
β”‚   β”œβ”€β”€ IRISMX.xcodeproj
β”‚   β”‚   └── project.pbxproj
β”‚   β”œβ”€β”€ IRISMX.xcworkspace
β”‚   β”‚   └── contents.xcworktypedata
β”‚   β”œβ”€β”€ IrisAudioRecorder.swift
β”‚   β”œβ”€β”€ IrisMetalParticleEngine.swift
β”‚   β”œβ”€β”€ IrisMetalSpectrumRenderer.swift
β”‚   β”œβ”€β”€ IrisNativeBridge.swift
β”‚   β”œβ”€β”€ IrisNeuralInferenceSession.swift
β”‚   └── Podfile.lock
β”œβ”€β”€ mlops
β”‚   β”œβ”€β”€ dataset_preprocessor.py
β”‚   β”œβ”€β”€ dvc.yaml
β”‚   └── pipeline.py
β”œβ”€β”€ models
β”‚   β”œβ”€β”€ iris_conformer_asr_v1.onnx
β”‚   └── iris_llama_3_int4.gguf
β”œβ”€β”€ production
β”‚   β”œβ”€β”€ docker-compose.prod.yml
β”‚   β”œβ”€β”€ feature_flags.json
β”‚   β”œβ”€β”€ health_checker.sh
β”‚   └── nginx.conf
β”œβ”€β”€ proto
β”‚   └── iris_speech_event.proto
β”œβ”€β”€ scripts
β”‚   β”œβ”€β”€ benchmark_conformer.py
β”‚   β”œβ”€β”€ benchmark_latency.py
β”‚   β”œβ”€β”€ build_native_libraries.sh
β”‚   β”œβ”€β”€ eval_perplexity.py
β”‚   β”œβ”€β”€ export_gguf_quantizer.py
β”‚   β”œβ”€β”€ export_tflite_model.py
β”‚   β”œβ”€β”€ generate_model_binaries.py
β”‚   β”œβ”€β”€ ios-runner.js
β”‚   β”œβ”€β”€ quantize_llm_weights.py
β”‚   β”œβ”€β”€ run_benchmarks.sh
β”‚   β”œβ”€β”€ train_acoustic_model.py
β”‚   └── train_full_conformer_asr.py
β”œβ”€β”€ sdk
β”‚   β”œβ”€β”€ iris_sdk.kt
β”‚   └── iris_sdk.py
β”œβ”€β”€ security_audit
β”‚   β”œβ”€β”€ compliance_checklist.json
β”‚   └── scanner.py
β”œβ”€β”€ services
β”‚   β”œβ”€β”€ audio_transcoder
β”‚   β”‚   └── transcoder.go
β”‚   β”œβ”€β”€ auth_server
β”‚   β”‚   └── auth.go
β”‚   β”œβ”€β”€ intent_router
β”‚   β”‚   └── router.go
β”‚   β”œβ”€β”€ model_registry
β”‚   β”‚   └── registry.go
β”‚   β”œβ”€β”€ session_manager
β”‚   β”‚   └── session.go
β”‚   β”œβ”€β”€ speaker_id
β”‚   β”‚   └── speaker_verifier.py
β”‚   β”œβ”€β”€ speech_to_text
β”‚   β”‚   └── stt_service.go
β”‚   β”œβ”€β”€ telemetry_aggregator
β”‚   β”‚   β”œβ”€β”€ aggregator.go
β”‚   β”‚   └── prometheus_exporter.go
β”‚   β”œβ”€β”€ text_to_speech
β”‚   β”‚   └── tts_service.go
β”‚   └── voice_gateway
β”‚       β”œβ”€β”€ main.go
β”‚       └── websocket_streamer.go
β”œβ”€β”€ testing
β”‚   β”œβ”€β”€ end_to_end_test_runner.py
β”‚   β”œβ”€β”€ integration_tests.py
β”‚   β”œβ”€β”€ load_test.go
β”‚   β”œβ”€β”€ native_unit_test.cpp
β”‚   └── rust_test.rs
β”œβ”€β”€ types
β”‚   └── images.d.ts
β”œβ”€β”€ app.json
β”œβ”€β”€ ARCHITECTURE.md
β”œβ”€β”€ CODE_OF_CONDUCT.md
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ eslint.config.js
β”œβ”€β”€ global.css
β”œβ”€β”€ iris_engine_config.toml
β”œβ”€β”€ LICENSE
β”œβ”€β”€ metro.config.js
β”œβ”€β”€ nativewind-env.d.ts
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
β”œβ”€β”€ postcss.config.mjs
β”œβ”€β”€ README.md
β”œβ”€β”€ SECURITY.md
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ type.d.ts
└── update-manifest.json

🀝 Contributing

We welcome UI improvements, bug fixes, and community contributions to the frontend shell!

  1. Fork the repository IRISX-AI/IRIS-X.
  2. Create your feature branch (git checkout -b feat/my-new-widget).
  3. Commit your changes (git commit -m "Add new UI component").
  4. Push to the branch and open a Pull Request.

πŸ”’ Security & Privacy

  • 100% Bring-Your-Own-Key (BYOK): Your Gemini API Key is stored encrypted in your device's secure local storage and never leaves your device.
  • Biometric & Permission Control: System overlays and microphone access are explicitly requested and can be toggled anytime.
  • Zero Data Logging: No audio streams or conversation logs are recorded or sold.

πŸ‘¨β€πŸ’» Architect & Contact

Harsh Pandey
Founder & AI Systems Architect, IRISX-AI


πŸ“œ License

The UI Shell in this repository is licensed under the MIT License.
The core IRIS-MX native voice engine and agent execution logic are proprietary software subject to the IRIS-MX Commercial License.

See LICENSE for full details.


System Online. IRIS-MX Activated.

Made with ❀️ by Harsh Pandey

About

πŸ“± IRIS-MX is a premium, voice-first mobile AI assistant built for high-performance execution. Automate tasks, query web search, and analyze live visual contextβ€”all driven by fast, zero-friction voice commands. Designed as the ultimate pocket productivity tool.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages