Skip to content
CAI
Software that uses CAICheck a score

TOM88812/xiaozhi-android-client

55.0

Adequate · 19 September 2026

11.7k

lines of production code

Dart

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

AI-LHHT is a cross-platform Flutter application that facilitates voice-based interactions with multiple AI conversation providers, including Dify, Xiaozhi, and MiniMax. It handles audio recording and playback, manages device permissions, and supports configuration for various AI models. The system also includes a VitePress-based documentation site for project guides and contributor information.

Features

Initial documentation site scaffolding with VitePress

The project now includes a dedicated documentation site located in the \documents\ directory, built with VitePress. This addition provides a structured way to view project guides, contributor lists, and sponsorship information. The site supports local development via \pnpm docs:dev\ and is configured for automatic deployment to GitHub Pages. The diff also includes the initial VitePress build cache and dependencies (Vue, @vueuse/core) required to run the documentation server.

documents · high confidence

Initial release of the AI-LHHT Flutter application

This change introduces the complete initial codebase for the AI-LHHT application, establishing the project structure for Android, iOS, and Linux platforms. The Android configuration includes permissions for microphone, storage, and Bluetooth, along with ProGuard rules and a V2 embedding setup. The iOS configuration sets the minimum OS version to 12.0 and declares permissions for camera, microphone, and local network access. The application entry point (lib/main.dart) initializes the UI with an immersive, edge-to-edge display mode, configures high-refresh-rate support on Android, and sets up core providers for theming, configuration, and conversation management. It also integrates the Opus audio library for voice processing and requests necessary system permissions at startup.

(repo-wide) · high confidence

New utility modules for theming, audio processing, and device identification

This change introduces three new utility classes in the \lib/utils\ directory to support the application's core functionality. \AppTheme\ defines the visual styling for the app, including a complete light theme with specific color palettes, typography, and component styles (buttons, cards, inputs), alongside a placeholder dark theme. \AudioUtil\ implements audio recording and playback capabilities, handling Opus encoding/decoding and PCM playback via \FlutterPcmPlayer\, while managing platform-specific permissions and audio session configurations for both Android and iOS. \DeviceUtil\ provides methods to retrieve and persist a unique device identifier (using \SharedPreferences\ and \Uuid\), as well as fetching device model and OS version information via \DeviceInfoPlugin\.

lib/utils · high confidence

Project initialization with Flutter configuration and multi-language documentation

The repository has been initialized with a Flutter project structure, including the \.metadata\ file specifying the stable channel revision and a comprehensive \analysis\_options.yaml\ for Dart linting. The project now includes an Apache 2.0 \LICENSE\ and updated \.gitignore\ rules tailored for Flutter artifacts across Android, iOS, Web, and desktop platforms. Documentation has been expanded with new English (\README\_EN.md\) and Vietnamese (\README\_VI.md\) README files, alongside a \yuandan-update.md\ detailing V3.5/V3 feature updates such as ASR/TTS optimizations and configuration sync. Additionally, legacy Gradle wrapper scripts (\gradlew\, \gradlew.bat\) and an unused SVG asset (\robot\_3.svg\) have been removed from the repository.

(repo-wide) · high confidence

Support for MiniMax AI as a third conversation provider

The app now supports MiniMax AI alongside the existing Dify and Xiaozhi providers. This update introduces new data models for MiniMax configurations (including API key and model selection, defaulting to MiniMax-M2.7) and conversation types, updates the configuration provider to manage multiple MiniMax settings, and adds UI screens for selecting MiniMax as a conversation type and configuring its credentials in the settings.

(repo-wide) · high confidence

Removals

Removal of native Android Opus audio codec implementation

The native C++ Opus audio codec library and its Java JNI bindings have been removed from the app. This includes the deletion of the CMake build configuration, the JNI wrapper code in \opus-lib.cpp\, the Opus header files, and the \OpusUtils\ Java class that previously handled audio encoding and decoding. Consequently, the app no longer uses this local native library for audio processing.

app/src · high confidence

Test coverage

Added tests for MiniMax AI provider integration

Added unit and integration tests for the new MiniMax AI conversation provider, covering the MiniMaxConfig model (creation, serialization, deserialization, and copy operations), the ConversationType enum (including the new minimax type), Conversation model handling for minimax conversations, and the MiniMaxService (initialization and message sending with conversation history management).

test · high confidence

Dependencies

Flutter 2.0 release with updated mobile and documentation dependencies

This release introduces the Flutter 2.0 version of the application, replacing the previous native Android implementation with a cross-platform Flutter architecture. The Android build configuration has been updated to use the Flutter Gradle plugin, targeting Android SDK 24 with Java 11 and enabling R8 code shrinking for release builds. iOS and macOS platforms are configured with CocoaPods, setting the minimum deployment targets to iOS 13.0 and macOS 10.14 respectively, and including microphone permission support. The project dependencies have been refreshed, including \flutter\_sound\ (9.26.0), \permission\_handler\ (11.4.0), and \flutter\_blue\_plus\ (1.35.3). Additionally, the documentation site dependencies have been updated to use VitePress 1.6.3 and Vue 3.5.13.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 55.

Lenses

  • Code Health 85
  • Architecture 98
  • Maturity 56
  • Readiness 48
  • Security 68
  • Domain Modelling 100
  • Accessibility 52

Changes since last survey

  • 153 commits — 135 feature/other, 18 fixes

By area

  • (root) — 116 commits
  • app/src — 14 commits
  • .github/workflows — 12 commits
  • (repo) — 6 commits
  • documents/docs — 2 commits
  • .github/FUNDING.yml — 1 commit
  • lib/screens — 1 commit
  • lib/utils — 1 commit

Notable commits

  • fix: Fix compile error on CardTheme type dismatch
  • fix: fix build workflow
  • fix: fix build workflow
  • fix: fix build.gradle and AndroidManifest.xml
  • fix: fix docs
  • fix: fix: github action auth
  • fix: fix: update github action version
  • fix: fix: update github action version
  • fix: fix: update github action version
  • fix: fix: update github action version
  • fix: fix: update github action version
  • fix: fix: update github action version
  • fix: fix: 回音消除初代,调整UI,添加适配小白条,添加回车发送信息。
  • fix: fix:随时强制打断
  • fix: fix: 修复通话,点击屏幕进行实时打断
  • fix: fix: 新版UI
  • fix: fix: 暂时使用自动闭麦的方法防止录入媒体扬声器的声音。达到伪修复回音效果
  • fix: fix:修复
  • change: Add files via upload
  • change: Add files via upload
  • …and 133 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

TOM88812/xiaozhi-android-client was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 30a0c80446a3a88772945244739c0e69b79c647c — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.