A privacy-focused, client-side web application that helps you track your daily activities by prompting you at configurable intervals to record what you've been doing. The idea is to export and share the transcript with your favourite AI agent to gain insights into your time usage. All data stays in your browser - no server required.
- Privacy-First: All data stored locally in your browser's localStorage
- Speech-to-Text: Real-time transcription using Deepgram's API
- Mobile Support: Fully supported on mobile devices
- Configurable Intervals: Choose 10, 15, 20, or 30-minute check-in intervals
- Manual Editing: Edit transcripts directly in the browser
- Export Options: Download your activity log as JSON or text file
- No Server Required: Pure client-side application
- Sign up for a free account at Deepgram
- Navigate to the API Keys section
- Create a new API key and copy it
Access the application directly at: http://aussiebotlabs.github.io/time-audit
On first launch, you'll be prompted to enter your Deepgram API key. This key is stored securely in your browser's localStorage and never sent anywhere except directly to Deepgram's API.
- Set Your Interval: Choose how often you want to be prompted (10, 15, 20, or 30 minutes)
- Wait for Prompts: The app will automatically open a recording modal at your chosen interval
- Record Your Activity: Click "Start Recording" and speak about what you've been doing
- Review & Save: Edit the transcript if needed, then click "Save Entry"
- Export Data: Use the export buttons to download your activity log
- Speak clearly and at a normal pace
- You can manually edit the transcript before saving
- The transcript is editable even after recording stops
- Click "Cancel" to skip an entry without saving
- View All Entries: Scroll through your activity log in the main area
- Delete Entry: Click the trash icon on any entry
- Clear All: Use the "Clear All" button to delete all entries (with confirmation)
- Export JSON: Download entries as structured JSON data
- Export Text: Download a formatted text report
All data is stored in your browser's localStorage:
- API Key:
timeaudit_apikey - Interval Setting:
timeaudit_interval - Activity Entries:
timeaudit_entries
{
"id": "unique-id",
"startTime": "2026-02-05T10:00:00Z",
"endTime": "2026-02-05T10:15:00Z",
"transcript": "Worked on the API integration for the new feature...",
"recordedAt": "2026-02-05T10:15:30Z"
}- No Backend: Everything runs in your browser
- Local Storage Only: Your data never leaves your device (except audio sent to Deepgram for transcription)
- API Key Security: Your Deepgram API key is stored locally and only sent to Deepgram's servers
- No Analytics: No tracking, cookies, or third-party analytics
- Chrome/Edge: Fully supported
- Firefox: Fully supported
- Safari: Fully supported (macOS 11+)
- Mobile: Fully supported (requires HTTPS or localhost for microphone access)
The app requires microphone access to record audio. Modern browsers will prompt you to grant permission when you first try to record.
- Check browser permissions for microphone access
- Ensure you're accessing the app via HTTPS or localhost
- Try a different browser
- Verify your API key is correct
- Check your Deepgram account has available credits
- Ensure you have a stable internet connection
- Speak clearly and reduce background noise
- Keep the browser tab open (timer pauses when tab is inactive in some browsers)
- Check if your browser allows notifications
- Refresh the page and try again
- pnpm installed
pnpm install# Run unit tests (Vitest)
pnpm test
# Run unit tests in watch mode
pnpm test:watch
# Run E2E tests (Playwright)
pnpm test:e2e
# Run E2E tests with UI
pnpm test:e2e:ui
# Run all tests
pnpm test:all- Vanilla JavaScript: No frameworks, just pure JS
- Deepgram SDK: Loaded via CDN for speech-to-text
- localStorage API: For persistent data storage
- MediaRecorder API: For capturing microphone audio
- WebSocket: For real-time transcription (via Deepgram SDK)
- Vitest: Unit testing framework
- Playwright: End-to-end testing framework
This project uses GitHub Actions for CI. Tests are automatically run on every push to main/master and on pull requests.
time-audit/
├── index.html # Main HTML structure
├── style.css # Styling and UI design
├── app.js # Core application logic
├── tests/ # Unit tests (Vitest)
├── e2e/ # E2E tests (Playwright)
└── README.md # This file
See LICENSE file for details.
Contributions are welcome! This is a simple client-side app, so:
- Fork the repository
- Make your changes
- Test thoroughly in multiple browsers
- Submit a pull request
For issues with:
- The App: Open an issue in this repository
- Deepgram API: Check Deepgram's documentation
Potential future enhancements:
- PWA support for offline functionality
- Calendar view of activities
- Search and filter entries
- Tags and categories
- Statistics and insights
- Custom notification sounds
- Multiple export formats (CSV, Markdown)
Note: This app requires a Deepgram API key. Free tier includes 12,000 minutes of transcription per year, which is more than enough for personal use.