Initial sync: memory, agents, commands, and gitignore
Syncs project memory, custom agents, and commands across machines. Excludes secrets (settings.json), session state, and runtime files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
- [User Profile](user_profile.md) — Chris, homelab enthusiast, Lululemon Mirror mod, delegates all code to Claude
|
||||
- [Project Architecture](project_architecture.md) — Flutter app for mirror display + phone remote on Pi 4, voice/motion
|
||||
- [Workout API](reference_workout_api.md) — workout-player endpoints at 192.168.86.172:8091, video/progress/stream contracts
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: project-architecture
|
||||
description: "Mirror OS - Flutter app for hacked Lululemon Mirror on Pi 4 with phone remote, voice, and motion"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: project
|
||||
originSessionId: 826ce615-b163-439f-aaa9-7b3be198b03a
|
||||
---
|
||||
|
||||
Mirror OS is a custom app platform for a hacked Lululemon Mirror running on Raspberry Pi 4.
|
||||
|
||||
**Key decisions:**
|
||||
- Flutter (not web kiosk, not Qt) — single codebase for mirror display + phone remote
|
||||
- Pi 4 (4GB) as compute
|
||||
- Vizio board used as HDMI passthrough only (no rotation capability)
|
||||
- Pi handles rotation via wlr-randr or DRM/KMS config
|
||||
- Display is portrait 1080x1920, not touch-enabled
|
||||
|
||||
**Why:** Flutter gives one codebase for both the mirror display and the phone companion app. Phone remote is half the project — keeping it unified avoids drift. Performance is adequate for dashboard/media on Pi 4.
|
||||
|
||||
**Features planned:**
|
||||
- Dashboard (clock, weather, calendar, widgets)
|
||||
- Workout player (integrates with existing workout-player homelab service)
|
||||
- Media player (YouTube, Plex, local video/music via mpv/media_kit)
|
||||
- Voice control (OpenWakeWord + Whisper, local processing)
|
||||
- Motion-activated wake (PIR or mmWave on GPIO)
|
||||
- Phone companion app as primary control interface
|
||||
|
||||
**How to apply:** All code goes in /Users/csader/mirror-os. Flutter project with shared packages for logic, separate entry points for mirror display vs phone remote.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: reference-workout-api
|
||||
description: "Workout-player API contract at 192.168.86.172:8091 — endpoints for videos, stats, routines, streaming"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: reference
|
||||
originSessionId: 826ce615-b163-439f-aaa9-7b3be198b03a
|
||||
---
|
||||
|
||||
Workout-player service runs at http://192.168.86.172:8091 on the homelab.
|
||||
|
||||
**Endpoints (derived from prior mirror-os JS codebase):**
|
||||
- `GET /api/videos?folder=<path>` — list videos, optional folder filter. Returns `{videos: [...], folders: [...]}`
|
||||
- `GET /api/stats` — aggregate stats (total, completed, inProgress counts)
|
||||
- `GET /api/routines` — list routines. Returns `{routines: [...]}`
|
||||
- `PATCH /api/videos` — save progress. Body: `{videoId, position, percent}`
|
||||
- `GET /api/stream?path=<encoded_path>` — stream video file directly
|
||||
|
||||
**Video object fields:** id, title, path, folder, duration, trimStart, trimEnd, lastPosition, percentCompleted, restSeconds
|
||||
|
||||
**State machine for workout sessions:** browse → playing → rest (between queue items) → complete
|
||||
|
||||
**How to apply:** When building the workout integration in Flutter, use these endpoints. The stream URL can be passed directly to media_kit/mpv for playback.
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
name: user-profile
|
||||
description: "Chris - homelab enthusiast with Lululemon Mirror mod project, prefers Claude writes all code"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: user
|
||||
originSessionId: 826ce615-b163-439f-aaa9-7b3be198b03a
|
||||
---
|
||||
|
||||
Chris runs a homelab (192.168.86.x network). Has a self-hosted workout-player app at 192.168.86.172:8091 with video library, routines, and progress tracking.
|
||||
|
||||
Hardware: Lululemon Mirror with BOE DV430FHM-NN5 panel (43" 1080p IPS, portrait 1080x1920), Vizio replacement mainboard (HDMI passthrough to LVDS), Raspberry Pi 4.
|
||||
|
||||
Prefers Claude writes all the code. Comfortable reviewing and making architectural decisions but delegates implementation entirely.
|
||||
|
||||
Phone: Android (primary target for remote app testing/deployment).
|
||||
|
||||
Gitea instance at git.chrissader.com (org: hermes).
|
||||
Reference in New Issue
Block a user