Skip to content

Releases: PoisonedYouth/ClaudeCodeHistory

v1.3.0 - Model Filtering & Display

Choose a tag to compare

@PoisonedYouth PoisonedYouth released this 15 Nov 12:55

What's New

Model Filtering & Information Display

Filter and analyze your conversations by Claude model version with comprehensive model information display throughout the application.

Key Features

  • πŸ” Model Filtering

    • New model filter dropdown in search filters panel
    • Filter conversations by specific Claude models
    • Friendly display names (e.g., "Sonnet 4.5", "Opus", "Haiku")
    • Works across all search modes (keyword, semantic, hybrid)
  • πŸ“Š Model Statistics

    • "Conversations by Model" card in Statistics dashboard
    • See conversation count breakdown by model
    • Models sorted by usage (most used first)
    • Easy identification of your most-used Claude models
  • 🏷️ Model Display

    • Model badges already visible in search result cards
    • Consistent model naming across the application
    • Quick identification of which model was used for each conversation
  • ⚑ Search Integration

    • Model filtering integrated with FTS5 keyword search
    • Works with vector similarity (semantic) search
    • Compatible with hybrid search (RRF)
    • Consistent filtering across all search methods

Model Display Names

  • claude-sonnet-4-5 β†’ "Sonnet 4.5"
  • claude-sonnet-4 β†’ "Sonnet 4"
  • claude-sonnet-3-5 β†’ "Sonnet 3.5"
  • claude-opus β†’ "Opus"
  • claude-haiku β†’ "Haiku"

Technical Details

Repository Enhancements:

  • New getAllModels() method to retrieve unique models from conversations
  • Model filtering in search(), getByFilters(), and vectorSearch()
  • Enhanced ConversationStatistics with conversationsByModel map
  • Metadata parsing to extract model information

UI Components:

  • Model filter dropdown in FiltersPanel (second row of filters)
  • Model statistics card in StatisticsScreen
  • Auto-loading of available models on screen initialization
  • Responsive filter UI with proper spacing

Search Functionality:

  • SQL LIKE queries for efficient model filtering
  • Metadata JSON field querying
  • Filter combination with other search criteria
  • Maintains search performance with complex filters

Installation

Download the appropriate installer for your platform from the assets below.

Upgrading from v1.2.0

Simply install the new version. All existing data and configurations will work seamlessly. The model filter will automatically populate with models found in your conversation history.


Full Changelog: v1.2.0...v1.3.0

v1.2.0 - Token Tracking & Analytics

Choose a tag to compare

@PoisonedYouth PoisonedYouth released this 15 Nov 12:42

What's New

Token Tracking & Cost Estimation

Track your Claude API usage and costs directly in ClaudeCodeHistory!

Key Features

  • πŸ“Š Token Analytics Dashboard

    • Total token usage across all conversations
    • Breakdown by type: Input, Output, Cache Writes, Cache Reads
    • Real-time cost estimation based on Claude 3.5 Sonnet pricing
    • Formatted numbers with thousands separators for easy reading
  • πŸ’° Cost Estimation

    • Automatic cost calculation per conversation
    • Total cost aggregation in Statistics screen
    • Based on current Claude API pricing:
      • Input: $3/M tokens
      • Output: $15/M tokens
      • Cache Writes: $3.75/M tokens
      • Cache Reads: $0.30/M tokens
  • πŸ” Enhanced Search Results

    • Token count and cost displayed on each conversation card
    • Model name badges (e.g., "Sonnet 4.5", "Opus", "Haiku")
    • Quick visibility into conversation resource usage
  • πŸ“ˆ Metadata Extraction

    • Automatically parses token usage from conversation files
    • Extracts model information
    • Tracks all token types including cache metrics

Improvements

  • Better Embedding Error Handling

    • Skips empty or very short conversations (< 10 chars)
    • Improved error messages with content previews
    • Early validation to prevent unnecessary API calls
    • Better debugging with detailed logging
  • MIT License

    • Project is now officially licensed under MIT
    • Open source and free to use, modify, and distribute

Bug Fixes

  • Fixed OllamaClient crash when embeddings list is empty
  • Added content validation before embedding generation
  • Improved error messages for troubleshooting Ollama issues

Technical Details

Token Tracking Implementation:

  • New TokenUsage data class with automatic cost calculation
  • Enhanced ConversationMetadata to include usage information
  • Updated parser to extract token data from conversation JSON
  • Extended ConversationStatistics with token aggregation

UI Components:

  • New "Token Usage & Cost Estimation" card in Statistics screen
  • Enhanced SearchResultCard with token and model chips
  • Formatted display of large numbers
  • Conditional rendering based on data availability

Pricing Model:
Based on Claude 3.5 Sonnet (January 2025):

  • Input: $3 per million tokens
  • Output: $15 per million tokens
  • Cache Writes: $3.75 per million tokens
  • Cache Reads: $0.30 per million tokens

Installation

Download the appropriate installer for your platform from the assets below.

Upgrading from v1.1.0

Simply install the new version. Your existing database and conversations will work seamlessly. Re-index conversations to populate token data for historical conversations.


Full Changelog: v1.1.0...v1.2.0

v1.1.0 - Semantic Search

Choose a tag to compare

@PoisonedYouth PoisonedYouth released this 15 Nov 12:20

What's New

Semantic Search with Ollama

This release adds powerful semantic search capabilities to ClaudeCodeHistory, enabling you to search conversations by meaning and concept, not just keywords.

Key Features

  • πŸ” Vector Embeddings

    • Generate embeddings for conversations using Ollama (nomic-embed-text model)
    • 768-dimensional embeddings for accurate semantic matching
    • Automatic normalization and storage in SQLite
  • ⚑ Three Search Modes

    • KEYWORD: Traditional FTS5 full-text search (fast, exact matching)
    • SEMANTIC: Vector similarity search (finds similar concepts)
    • HYBRID: Combines both using Reciprocal Rank Fusion (default, best results)
  • 🎯 Find Similar Conversations

    • Discover related conversations based on semantic similarity
    • Cosine similarity for vector comparison
    • Automatic fallback to keyword search if Ollama is unavailable
  • βš™οΈ Embedding Management UI

    • New Settings screen section for Ollama integration
    • Real-time Ollama status indicator
    • Batch embedding generation with progress tracking
    • "Generate Missing Embeddings" button

Search Algorithm

Reciprocal Rank Fusion (RRF):

  • Combines FTS5 keyword search and vector similarity search
  • Formula: Score(doc) = 1/(k + rank_keyword) + 1/(k + rank_vector)
  • Constant k=60 for optimal result combination
  • Provides both precision of keyword matching and flexibility of semantic understanding

Technical Details

New Components:

  • VectorUtils.kt - Vector operations (normalization, cosine similarity, byte conversion)
  • SearchMode.kt - Enum for search modes (KEYWORD, SEMANTIC, HYBRID)
  • OllamaClient.kt - HTTP client for Ollama API integration
  • EmbeddingService.kt - Embedding generation and management

Updated Components:

  • ConversationRepository.kt - Added vectorSearch() and hybridSearch() methods
  • SearchService.kt - Updated with mode parameter and findSimilar() method
  • MainScreen.kt - Wired up OllamaClient and EmbeddingService

Database Schema:

  • New embeddings table with conversation_id, embedding (BLOB), and model fields
  • Each embedding: ~3KB (768 floats)
  • Indexed for fast joins with conversations table

Performance:

  • Keyword search: ~1-5ms (FTS5 only)
  • Semantic search: ~50-200ms (depending on conversation count)
  • Hybrid search: ~100-300ms (combined)
  • Embedding generation: ~20ms per conversation

Documentation

See SEMANTIC_SEARCH.md for:

  • Installation instructions for Ollama
  • How it works (embeddings, similarity, RRF)
  • API reference for all new components
  • Performance benchmarks
  • Troubleshooting guide
  • Future UI enhancements

Getting Started

  1. Install Ollama:

    curl -fsSL https://ollama.com/install.sh | sh
  2. Pull the embedding model:

    ollama pull nomic-embed-text
  3. Launch the application and go to Settings

  4. Click "Generate Missing Embeddings" to create embeddings for your conversations

  5. Start searching with semantic understanding!

Installation

Download the appropriate installer for your platform from the assets below.

Upgrading from v1.0.0

Simply install the new version. Your existing database and conversations will work seamlessly. Visit the Settings screen to generate embeddings for historical conversations.

Other Additions

  • TODO.md with 80+ future feature ideas organized by category
  • Highlighted semantic search as a quick win feature

Full Changelog: v1.0.0...v1.1.0

v1.0.0 - Initial Release

Choose a tag to compare

@github-actions github-actions released this 14 Nov 21:08

Initial Release

First public release of Claude Code History - a desktop application for searching and browsing your Claude Code conversation history.

Features

  • πŸ” Full-text Search

    • Search through all your Claude Code conversations
    • FTS5-powered full-text search for fast, accurate results
    • Advanced filtering by project, date range, role, language, and file paths
    • Snippet previews showing matching context
  • ⚑ Auto-Indexing

    • Automatically indexes existing conversations on first launch
    • Real-time file watching for new conversations
    • Incremental updates without full re-indexing
    • Efficient SQLite storage with Exposed ORM
  • πŸ“Š Rich Metadata

    • Captures tool usage (Read, Write, Edit, Bash, etc.)
    • Extracts file paths from conversations
    • Detects programming languages automatically
    • Tracks conversation timestamps and sessions
  • πŸ–₯️ Multi-Platform Support

    • Native installers for macOS (.dmg)
    • Windows support (.msi)
    • Linux support (.deb)
    • Compose Desktop with Material 3 design
  • 🎨 Modern UI

    • Clean, responsive interface
    • Material 3 design system
    • Syntax highlighting for code snippets
    • Dark/light theme support (system default)
  • πŸ“ˆ Statistics Dashboard

    • Total conversation count
    • Conversations breakdown by role (user/assistant)
    • Date range of conversation history
    • Quick overview of your Claude Code usage

Technical Details

Tech Stack:

  • Kotlin 2.2.20 with Compose Desktop 1.9.3
  • SQLite with Exposed ORM for data persistence
  • FTS5 for full-text search
  • kotlinx.serialization for JSON parsing
  • kotlinx.datetime for cross-platform date handling
  • Material 3 UI components

Database Schema:

  • conversations table with FTS5 virtual table for search
  • Efficient indexing on project_path, timestamp, role
  • JSON storage for flexible metadata
  • Foreign key constraints for data integrity

Conversation Indexing:

  • Parses Claude Code conversation JSON files
  • Extracts messages, metadata, and tool usage
  • Watches ~/.claude/projects/**/*.json for changes
  • Incremental indexing for performance

Installation

Download the appropriate installer for your platform from the assets below:

  • macOS: ClaudeCodeHistory-1.0.0.dmg
  • Windows: ClaudeCodeHistory-1.0.0.msi
  • Linux: claudecodehistory_1.0.0-1_amd64.deb

Getting Started

  1. Install the application using the installer for your platform
  2. Launch ClaudeCodeHistory
  3. Wait for initial indexing (automatically finds existing conversations)
  4. Start searching your conversation history!

Requirements

  • Java 17 or higher (bundled with native installers)
  • Claude Code CLI installed and used previously (to have conversations to index)

Configuration

The application automatically detects your Claude Code projects directory:

  • macOS/Linux: ~/.claude/projects/
  • Windows: %USERPROFILE%\.claude\projects\

No manual configuration required!


Note: This is a community project and is not officially affiliated with Anthropic.