finds.dev← search

// the find

TOM88812/xiaozhi-android-client

★ 1,605 · Dart · Apache-2.0 · updated Sep 2026

一个基于小智、xiaozhi-server的Android、IOS语音对话应用,支持实时语音交互和文字对话。现在是flutter版本,打通IOS、Android端。请同志们动动小手,点点小星星,予以鼓励。

A Flutter client for the xiaozhi voice assistant backend, covering real-time voice calls and text chat from one codebase. It also connects directly to Dify and MiniMax endpoints, so it suits people running their own xiaozhi-server who want a phone or desktop front end for it. The README is mostly product pitch, so the code is what to judge it on.

- Each backend has its own service and config model (xiaozhi_service.dart, xiaozhi_websocket_manager.dart, dify_service.dart, minimax_service.dart, plus matching files under models/). That keeps provider-specific protocol code out of the chat screens, which is the right split when you add a fourth backend later.

- The repo carries build scaffolding for Android, iOS, web, Windows, macOS and Linux (Gradle KTS, an Xcode project with Podfile, CMake trees for the desktop targets). The non-mobile targets are more than README claims.

- There is a GitHub Actions build workflow and a VitePress guide covering voice interaction modes, system dependencies and Flutter setup, so a new contributor has a documented route to a working build.

- Tests are thin. test/ holds a widget test and two MiniMax files, and nothing in the tree covers the xiaozhi WebSocket path that the README presents as the main feature. Voice-session regressions will not be caught here.

- Several README claims are not in this repo. There is no ohos directory in the tree, so the HarmonyOS support is not in the open code, and the server feature table describes a closed commercial backend. A reader cannot tell which features the public code actually provides.

- Echo cancellation is claimed for iOS and Android, and that is the hard part of full-duplex voice on phones. The tree does not show where the native audio processing lives, so test barge-in on a real device before relying on it.

- The client follows an external protocol owned by another project (xiaozhi-server), and the README does not say which server version it targets. Upstream protocol changes will break it, and nothing in the repo tells you which combinations are known to work.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →