repobeats
v0.1.5
Published
Transform your git commits into music - CLI tool
Maintainers
Readme
RepoBeats
Transform your git commits into music
RepoBeats analyzes your repository's commit history and generates unique musical compositions based on commit patterns, authors, timestamps, and code changes.
Quick Start
# Run in any git repository
npx repobeats uiInstallation
# Install globally
npm install -g repobeats
# Or use directly with npx
npx repobeats uiCommands
repobeats ui
Start the interactive UI in your browser.
repobeats ui [path] [options]
Options:
-p, --port <number> Custom port (default: auto-detect)
--host <address> Host to bind (default: 127.0.0.1)
--no-open Don't open browser automatically
--since <date> Start from this date/commit
--until <date> End at this date/commit
--max-commits <n> Limit number of commits (default: 1000)
--no-cache Disable commit cachingrepobeats export
Export your repository as MIDI, WAV, JSON, or a full bundle.
repobeats export [path] [options]
Options:
-f, --format <type> Output format: midi, wav, json, bundle (default: bundle)
-o, --out <path> Output file path
--preset <name> Use a preset: default, chill, intense, minimal, ambient
--instruments <list> Instruments for WAV: guitar,piano,drums,strings (comma-separated)
--since <date> Start from this date/commit
--until <date> End at this date/commit
--max-commits <n> Limit commits
--anonymize Remove author/message datarepobeats inspect
View repository statistics and mapping preview.
repobeats inspect [path] [options]
Options:
--since <date> Start from this date/commit
--until <date> End at this date/commit
--max-commits <n> Limit commits
--json Output as JSONPresets
| Preset | BPM | Scale | Character |
|--------|-----|-------|-----------|
| default | 120 | Pentatonic | Balanced, melodic |
| chill | 70 | Major | Slow, soft, relaxing |
| intense | 160 | Minor | Fast, aggressive |
| minimal | 90 | Pentatonic | Clean, repetitive |
| ambient | 60 | Dorian | Atmospheric, spacey |
How It Works
RepoBeats maps commit metadata to musical parameters:
| Parameter | Sources | |-----------|---------| | Pitch | Commit SHA, author name, hour of day, day of week | | Velocity | Lines added/deleted, files changed, message length | | Duration | Diff size, file count, message length | | Tempo | Fixed BPM or commit frequency |
UI Features
- Dashboard: Repository overview, commit heatmap, author stats
- Mapping: Customize how commits become notes
- Playback: Listen to your repo with real-time visualization
- Export: Download WAV, MIDI, JSON, or bundled archives
Examples
# Open current directory
repobeats ui
# Open specific repository
repobeats ui ~/projects/my-app
# Export last 100 commits as MIDI with chill preset
repobeats export --max-commits 100 --preset chill --format midi
# Export as WAV with piano and strings only
repobeats export --format wav --instruments piano,strings --preset ambient
# Export as WAV with all instruments
repobeats export --format wav --preset default
# Inspect with JSON output
repobeats inspect --json > stats.json
# Export anonymized bundle
repobeats export --anonymize --out my-project.zipRequirements
- Node.js 18+
- Git repository with at least one commit
License
Proprietary - See LICENSE for details.
You may use this software for personal and educational purposes. Redistribution is not permitted.
