Skip to content

πŸš€ Advanced Git analytics & search CLI | Explore commit history with lightning-fast fuzzy search | Track coding patterns & streaks | Built in Go

License

Notifications You must be signed in to change notification settings

AccursedGalaxy/streakode

Repository files navigation

Streakode πŸš€

Release Go Report Card License

Streakode is a powerful Git analytics and search tool that combines advanced commit history exploration with insightful coding statistics. Perfect for developers who want to understand their coding patterns, search through their Git history efficiently, and maintain productive coding streaks across multiple repositories.

Streakode Preview

Key Features ✨

πŸ” Advanced Git History Search

  • Lightning-fast commit history search powered by fzf and ripgrep
  • Interactive fuzzy search with real-time preview
  • Rich commit details including diffs, stats, and branch information
  • Smart repository detection and automatic GitHub links
  • Efficient caching system for quick subsequent searches

πŸ“Š Comprehensive Analytics

  • Detailed commit patterns and coding streaks
  • Code changes tracking (+/-) per repository
  • Language statistics and peak coding hours
  • Project engagement metrics
  • Weekly and monthly activity summaries

🎯 Developer Productivity Tools

  • Weekly commit goals and progress tracking
  • Multiple profile support (work/personal separation)
  • Customizable activity indicators
  • Smart caching for fast repository scanning
  • Selective cache updates and version-aware management

🎨 Customizable Experience

  • Modern, colorful terminal UI
  • Configurable table layouts and themes
  • Multiple insight views
  • Flexible display options
  • Profile-specific configurations

Features ✨

  • πŸ“Š Enhanced commit tracking and statistics
    • Detailed weekly/monthly commit patterns
    • Code changes tracking (+/-) per repository
    • Language statistics and peak coding hours
    • Customizable activity indicators
  • 🎨 Highly configurable display options
    • Customizable table layouts and styles
    • Color themes support
    • Multiple insight views
  • πŸ”„ Smart caching system
    • Efficient repository scanning
    • Selective cache updates
    • Version-aware cache management
  • 🎯 Advanced goal tracking
    • Weekly commit goals
    • Progress visualization
    • Customizable thresholds
  • πŸ‘€ Profile management
    • Work/personal separation
    • Profile-specific configurations
    • Easy profile switching

Installation πŸ› οΈ

Prerequisites

  • Go 1.19 or higher
  • Git
  • fzf (required for interactive search)
  • ripgrep (optional, enhances search capabilities)

From Releases

Download the latest release for your platform from the releases page.

Building from Source

git clone https://github.com/AccursedGalaxy/streakode.git
cd streakode
make install

Usage πŸ’»

Basic Commands

# Show version information
streakode version

# View Git author configuration
streakode author

# Display repository statistics
streakode stats [repository]

# Interactive commit history search
streakode history search

# Advanced commit search with filters
streakode history search --author="name" --since="2 weeks ago"

# Repository cache management
streakode cache reload  # Refresh cache
streakode cache clean   # Clear cache

# Profile management
streakode profile work    # Switch to work profile
streakode profile home    # Switch to home profile

Interactive Search Features

The history search command provides powerful interactive search capabilities:

  • Fuzzy search through commit history
  • Real-time commit preview with diff
  • Branch information and GitHub links
  • File change statistics
  • Multiple selection support
  • Advanced filtering options

Debug Mode

Enable debug mode with --debug or -d flag for any command:

streakode history search --debug
streakode stats --debug

This shows additional information about:

  • Search parameters and filters
  • Cache operations
  • Configuration details
  • Performance metrics

Configuration πŸ“

Create a configuration file at ~/.streakodeconfig.yaml. See the example configuration for all available options.

Key configuration sections:

# Author and scanning settings
author: "YourName"
scan_directories:
  - "~/github"
  - "~/work/repos"

# Search and display settings
search_settings:
  max_results: 1000
  cache_timeout: 3600
  use_fuzzy_search: true

# UI customization
display_settings:
  theme: "modern"
  color_scheme: "dark"
  show_previews: true

Updating πŸ”„

Logic for updating is currently not implemented.

If you want to update, you can manually download the latest release from the releases page and replace the current binary.

Or if you cloned the repository, you can pull the latest changes and build the project again.

git pull
make clean
make build
make install

Uninstallation πŸ—‘οΈ

To completely remove Streakode from your system:

# Remove the binary
go clean -i github.com/AccursedGalaxy/streakode

# Remove configuration and cache files
rm ~/.streakodeconfig*.yaml    # Removes all config files including profiles
rm ~/.streakode*.cache         # Removes all cache files including profiles
rm ~/.streakode.state          # Removes the state file

# Single Command For All Files and Configs (Linux/MacOS)
rm /usr/local/bin/streakode && rm ~/.streakodeconfig* ~/.streakode*.cache ~/.streakode.state

# For Windows users (PowerShell):
Remove-Item "$env:USERPROFILE\.streakodeconfig*.yaml"
Remove-Item "$env:USERPROFILE\.streakode*.cache"
Remove-Item "$env:USERPROFILE\.streakode.state"

Note: If you installed Streakode from a release binary instead of go install, simply delete the binary and the configuration files as shown above.

Development πŸ› οΈ

Setting Up Development Environment

# Clone the repository
git clone https://github.com/AccursedGalaxy/streakode.git
cd streakode

# Install development dependencies
make dev-deps

# Run tests
make test

# Build for development
make dev

Project Structure

streakode/
β”œβ”€β”€ cmd/          # Command implementations
β”œβ”€β”€ cache/        # Caching system
β”œβ”€β”€ config/       # Configuration management
β”œβ”€β”€ scan/         # Repository scanning
└── search/       # Search functionality

Contributing 🀝

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Please read our Contributing Guidelines for details on our code of conduct and development process.

Roadmap πŸ—ΊοΈ

  • Enhanced search capabilities with advanced filters
  • Team analytics and collaboration features
  • Integration with CI/CD platforms
  • Machine learning-based commit pattern analysis
  • Custom plugin system
  • Web interface (planned)

Support πŸ’–

If you find Streakode helpful:

  • Give it a ⭐ on GitHub
  • Share it with your network
  • Report issues or contribute
  • Follow the project for updates

License πŸ“„

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments πŸ™

Built with:

Special thanks to all contributors who have helped shape Streakode into what it is today.


Made with ❀️ by AccursedGalaxy
A powerful tool for developers who care about their Git history

About

πŸš€ Advanced Git analytics & search CLI | Explore commit history with lightning-fast fuzzy search | Track coding patterns & streaks | Built in Go

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published