repo-meter
v1.3.4
Published
A Git-aware CLI and live TUI for monitoring active repositories, local drift, and repo composition.
Maintainers
Readme
Repo Meter
repo-meter is a Git-aware CLI and live TUI for monitoring active repositories, local drift, and repo composition.
It is built for real working sessions, not just one-off code counts.
Why Use It
Tools like scc, cloc, and tokei are great at repository inventory.
They tell you what is in a codebase.
repo-meter is for the next question:
- what changed locally while I was working?
- which repo in my stack needs attention first?
- which repos are dirty, drifting, or falling behind?
- is this growth coming from source, tests, docs, lockfiles, or generated output?
The value is that repo-meter turns repository measurement into a live workflow.
Install
npm install -g repo-meterOr try it once without installing:
npx repo-meterQuick Start
Run this:
repo-meterThat opens the TUI by default.
If you want the simpler command-line report instead:
repo-meter scanDocs
What It Does
- live TUI by default
- tracked vs untracked working-tree metrics
- source/tests/docs/config/generated/lockfile breakdowns
- local Git drift awareness
- optional remote-tracking status
- multi-repo monitoring in one terminal
- baseline snapshots and comparisons
- JSON, Markdown, and summary output for automation
Main Commands
Default TUI
repo-meterYou can also launch the TUI explicitly:
repo-meter tuiQuick Report
repo-meter scanDashboard
repo-meter dashboardWatch Mode
repo-meter watch --view dashboardReports
repo-meter report --json
repo-meter report --markdown
repo-meter report --summaryBaselines
repo-meter baseline save first
repo-meter baseline list
repo-meter baseline compare first
repo-meter baseline trendTUI Controls
qquitj/kor arrow keys moveaadd another repo to the current sessiondremove the selected repo from the current sessionppin or unpin the selected reposcycle sort modexcycle filter modetabswitch focusrforce refreshurun an explicit upstream status check from local tracking refsgtoggle remote details when remote mode is enabled?orhopen help
Multi-Repo Use
Open several repos at once:
repo-meter tui "C:\path\to\repo-a" "C:\path\to\repo-b"Or:
repo-meter tui --repos "C:\path\to\repo-a,C:\path\to\repo-b"On Windows and PowerShell, quote each repo path if it may contain spaces.
That includes common paths like C:\Users\Your Name\... or C:\Users\...\OneDrive\....
Inside the TUI:
- press
ato add a repo - press
dto remove a repo from the current live session - press
pto pin important repos - press
sto sort byactivity,size, ordirty - press
xto filter toall,dirty,active, orfavorites
Dirty vs Clean
repo-meter marks a repo as:
cleanwhen there are no modified, staged, deleted, or untracked filesdirtywhen local changes are present
Dirty is not bad. It means Git still sees local changes compared with the last commit in that repo.
The TUI also shows advice on how to clean a repo:
- commit ready changes
- stash work you want to pause
- ignore or delete temporary untracked files
Remote Status
repo-meter tui --remoteRemote mode shows local tracking-ref awareness without silently fetching from the network.
It can show:
- branch and remote name
- ahead / behind counts when derivable from local refs
- last local commit time
- last remote tracked commit time
- sync warnings like
Push recommendedorBranches diverged
Supported Languages
repo-meter uses scc as its primary counting engine when available, so language support is effectively as broad as scc.
When scc is unavailable or restricted, repo-meter falls back to its built-in text counting path for common source and config extensions.
So:
- broad language coverage: yes
- infinite custom parser support: no
- primary ceiling: mostly the
sccecosystem plus the built-in fallback map
To inspect what the bundled scc supports today, run:
vendor/scc/scc.exe --languagesIf we ever want to expand support in a future update, there are two paths:
- update the bundled
sccversion for broader native language coverage - expand Repo Meter's built-in fallback extension map for environments where
scccannot run
Config
Create a starter config:
repo-meter initThat writes repo-meter.config.json.
You can customize:
- include and exclude globs
- generated-file patterns
- category rules
- large-file threshold
- top-file count
- baseline directory
- default TUI interval
- default remote mode
- saved repo paths for multi-repo TUI sessions
Shell Completion
repo-meter completion powershell
repo-meter completion bash
repo-meter completion zshLicense
MIT
