GentleMinutes is a minimal Android meeting recorder built with Kotlin and Jetpack Compose. It records audio locally, then lets you explicitly send a recording to iFlytek for transcription and send the transcript to MiniMax for structured meeting minutes.
MVP status: experimental. Bring your own provider credentials.
- Calm, low-density recording UI
- App-private
.m4arecording storage - Room metadata persistence
- iFlytek ASR integration behind a provider abstraction
- MiniMax Chat Completions integration for Markdown meeting minutes
- Android Keystore-backed local credential encryption
- Remote-processing disclosure before audio or transcript leaves the device
- Recordings stay in app-private storage until you delete them or explicitly transcribe.
- Tapping Transcribe uploads the selected audio to iFlytek.
- Tapping Minutes sends the transcript text to MiniMax; audio is not sent to MiniMax.
- API keys are entered in Settings and encrypted on device. Do not commit real keys.
See docs/PRIVACY.md for details.
Prerequisites used on this machine:
export JAVA_HOME="/c/Users/LX/.jdks/jbr-17.0.14"
export ANDROID_HOME="/c/Users/LX/AppData/Local/Android/Sdk"Build and test:
./gradlew.bat testDebugUnitTest --no-daemon
./gradlew.bat assembleDebug --no-daemonDebug APK output:
app/build/outputs/apk/debug/app-debug.apk
Open Settings in the app and enter credentials:
- iFlytek: App ID and standard transcription Secret Key. API Key/API Secret fields are reserved for speed transcription variants.
- MiniMax: API Key and model, default
MiniMax-M3.
No provider credentials are included in this repository.
This repository is prepared for GitHub publication, but it should not be pushed publicly until you verify credentials are absent and approve publication.