pluto fc39098ff5
ClippyAuto CI / build (push) Has been cancelled
Wire up FCM push notification service
- ClippyFCMService: Receives FCM data messages, routes to TTS pipeline
- FCMTokenManager: Stores FCM token in Matrix account data for n8n
- Enable Google Services plugin and Firebase dependencies
- Add FCM service to AndroidManifest.xml
- Register FCM token on app init in ClippySession and SetupActivity

Token stored at: /_matrix/client/v3/user/@clippyauto:hobbs.farm/account_data/farm.hobbs.clippy.fcm_token

Co-authored-by: Spirit <spirit@hobbs.farm>
2026-03-08 23:12:21 -05:00
2026-03-08 23:12:21 -05:00
2026-03-05 22:07:30 +00:00
2026-03-05 22:07:30 +00:00
2026-03-05 22:07:30 +00:00

ClippyAuto 📎🚗

Voice-first Android Auto app for talking to Clippy via Matrix.

Overview

ClippyAuto gives Jeremy a hands-free voice conversation with Clippy (AI Chief of Staff) during his commute. No typing, no "Hey Google," no Element — just tap and talk.

How it works: You talk → on-device STT → Matrix message to Clippy → Claude responds → FCM push → car speakers read it back. Target: under 5 seconds to first audio.

Prerequisites

  • Android Studio Ladybug (2024.2+)
  • JDK 17
  • Android device with Android Auto support (or Desktop Head Unit for testing)
  • Firebase project with FCM enabled
  • Access to mess.hobbs.farm Matrix homeserver

Setup

1. Clone & Open

git clone https://git.hobbs.farm/spirit/clippy-auto.git
cd clippy-auto
# Open in Android Studio

2. Firebase

  1. Create a Firebase project at https://console.firebase.google.com
  2. Add an Android app with package name farm.hobbs.clippyauto
  3. Download google-services.json → place in app/
  4. Enable Cloud Messaging (v1 API)

3. Matrix Homeserver

  • mess.hobbs.farm must be reachable externally (HTTPS via Traefik) ✅
  • Jeremy's account needs access to #clippy-voice:hobbs.farm room

4. n8n FCM Bridge

  • Import n8n/clippy-fcm-bridge.json workflow into n8n
  • Register Matrix pusher on Jeremy's account pointing to n8n webhook
  • Configure FCM server key in n8n credentials

5. Build & Run

./gradlew installDebug

Testing with Desktop Head Unit (DHU)

$ANDROID_HOME/extras/google/auto/desktop-head-unit

Project Structure

app/src/main/java/farm/hobbs/clippyauto/
├── ClippyAutoApp.kt              # Application entry, DI
├── auto/
│   ├── ClippyCarAppService.kt    # Android Auto entry point
│   ├── ClippySession.kt          # Auto session lifecycle
│   └── ClippyScreen.kt           # Auto UI (talk button + status)
├── voice/
│   ├── VoiceState.kt             # State enum
│   ├── VoiceStateMachine.kt      # State transitions
│   ├── SpeechManager.kt          # STT (SpeechRecognizer)
│   └── TTSManager.kt             # TTS with queue + audio focus
├── matrix/
│   └── MatrixRestClient.kt       # Lightweight Matrix REST API client
├── push/
│   └── ClippyFCMService.kt       # FCM receiver + dedup
├── connectivity/
│   ├── NetworkMonitor.kt         # Online/Weak/Offline detection
│   └── MessageQueue.kt           # Offline message queuing
└── ui/
    └── SetupActivity.kt          # Phone setup + session indicator

Architecture

See docs/ARCHITECTURE.md for the full spec.

Status

🚧 v1 MVP in progress

  • Project scaffold
  • Android Auto CarAppService + Screen
  • Voice state machine
  • STT manager (SpeechRecognizer)
  • TTS manager (queue + audio focus + interruption)
  • Matrix REST client (login, send, sync)
  • FCM push receiver + dedup
  • Network monitor + message queue
  • Wire voice pipeline end-to-end
  • Phone setup UI (login flow)
  • n8n FCM bridge workflow
  • Confirmation chime + thinking tone audio assets
  • Session lifecycle signals
  • Voice command recognition (go quiet, wrap up, etc.)
  • Real-car testing

License

Private — hobbs.farm internal use.

S
Description
Voice-first Android Auto app for Clippy via Matrix
Readme 238 KiB
Languages
Kotlin 100%