A voice recorder application for AugmentOS glasses, providing voice recording and transcription capabilities with a clean, user-friendly interface.
- Record audio from AugmentOS glasses
 - Real-time transcription of recorded audio
 - Voice commands for starting and stopping recordings
 - Rename recordings
 - View and play recordings
 - Dual storage system: local filesystem + Cloudflare R2
 - MongoDB database for metadata
 
- Built with Express and TypeScript
 - Extends the AugmentOS SDK's TpaServer
 - Provides REST APIs for managing recordings
 - Real-time updates via Server-Sent Events (SSE)
 - Integrated with AugmentOS SDK for voice commands
 
- React-based webview UI
 - Streamlined, accessible interface
 - Real-time updates via SSE
 - Clean, modern UI with Tailwind CSS
 
The application uses a dual storage system:
- 
Local Filesystem
- Recordings are saved to the local filesystem for development and quick access
 - Files are stored in 
./temp_storage/<userId>/<recordingId>.wav 
 - 
Cloudflare R2
- Cloud storage for production use
 - S3-compatible API
 - Secure, cost-effective storage
 
 - 
MongoDB
- Stores recording metadata (title, duration, transcript, etc.)
 - Provides efficient querying and indexing
 
 
- Node.js 16+ / Bun
 - MongoDB (local or remote)
 - Cloudflare R2 bucket (optional for development)
 
- Clone the repository
 - Install dependencies:
npm install - Copy the example environment file and customize:
cp .env.example .env - Update environment variables in 
.envfile - Start the development server:
npm run dev 
| Variable | Description | Default | 
|---|---|---|
PORT | 
Server port | 8069 | 
MONGODB_URI | 
MongoDB connection string | mongodb://localhost:27017/recorder | 
USE_LOCAL_DISK | 
Whether to use local filesystem | true | 
LOCAL_STORAGE_PATH | 
Path for local storage | ./temp_storage | 
R2_ACCESS_KEY_ID | 
Cloudflare R2 access key | - | 
R2_SECRET_ACCESS_KEY | 
Cloudflare R2 secret key | - | 
R2_BUCKET_NAME | 
R2 bucket name | recorder | 
R2_ENDPOINT | 
R2 endpoint URL | - | 
R2_PUBLIC_URL | 
Public URL for R2 bucket | - | 
npm run devThis will start both the backend server and frontend development server concurrently. The backend will auto-reload when changes are made.
npm run docker:devThis starts the application in a Docker container for an isolated development environment.
GET /api/recordings- Get all recordings for authenticated userGET /api/recordings/:id- Get a specific recordingPOST /api/recordings/start- Start a new recordingPOST /api/recordings/:id/stop- Stop an active recordingPUT /api/recordings/:id- Update recording (e.g., rename)GET /api/recordings/:id/download- Download recording audioDELETE /api/recordings/:id- Delete a recording
The application uses Server-Sent Events (SSE) for real-time updates:
transcript- Real-time transcript updatesrecording-status- Recording status changesrecording-error- Error notificationsrecording-deleted- Recording deletion notifications
The application supports the following voice commands via AugmentOS glasses:
- "Start recording" - Starts a new recording
 - "Stop recording" - Stops the current recording