Skip to content

Conversation

@ai-cora
Copy link
Collaborator

@ai-cora ai-cora commented Dec 27, 2025

Summary

  • Adds voicemode history load command to import JSONL conversation logs into SQLite
  • Adds voicemode history search command with FTS5 full-text search
  • Adds voicemode history play command to play audio clips from search results
  • Uses incremental loading to avoid re-importing existing exchanges

Features

  • SQLite database at ~/.voicemode/cache/conversations.db
  • FTS5 full-text search for fast queries
  • Filter by type (tts/stt), date, and text content
  • Play audio directly with mpv

Usage

# Load conversation history
voicemode history load

# Search for exchanges
voicemode history search "minion indirectly"
voicemode history search --type tts "hello"

# Play an audio clip
voicemode history play <exchange_id>

Related

  • Task: VM-289

🤖 Generated with Claude Code

Implement powerful conversation history search and playback capabilities:

- Add SQLite database with FTS5 full-text search index
- Create history module with database, loader, and search components
- Add CLI commands: history load, history search, history play
- Support incremental loading with duplicate detection
- Filter by type (stt/tts), date, or full-text query
- Resolve audio files from YYYY/MM directory structure
- Audio playback via mpv, afplay, or ffplay
- Update VoiceMode skill documentation with search examples

Key features:
- Fast full-text search across all conversation history
- Incremental sync - won't duplicate already-loaded exchanges
- Database stored at ~/.voicemode/cache/conversations.db
- Compatible with existing JSONL conversation logs
- Deterministic exchange IDs for reliable deduplication

Tested with real conversation data (334 exchanges loaded successfully)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants