Skip to content

indexzero/skiffs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

skiffs

Traverse directories for git repositories and report their status against upstream.

A skiff is a small boat—often one you built yourself. Your code are your skiffs and we have more than ever to keep track of. From small, hand-built vessels to monorepos they are all scattered across the filesystem. This tool helps you check if any are taking on water.

The name started as "scdiffs" for "source control diffs," then lost some letters. The boat thing came later, but it stuck.

Install

go install github.com/indexzero/skiffs@latest

Usage

# scan current directory
skiffs

# scan specific roots
skiffs -r ~/Code -r ~/work

# show all repos (not just dirty)
skiffs -f all

# output as JSON
skiffs -o json

Flags

-r, --root     Root directories to scan (repeatable, default: .)
-f, --filter   Filter: all|dirty|uncommitted|unpushed|unpulled (default: dirty)
-o, --output   Output format: table|json (default: table)
-w, --workers  Concurrent git operations (default: 8)
-i, --ignore   Glob patterns to ignore (repeatable)

Output

Table output shows repo name, branch, and status indicators:

  • Uncommitted files count
  • Commits ahead of upstream (unpushed)
  • Commits behind upstream (unpulled)

JSON output includes full file lists for each status category:

  • Modified files
  • Untracked files
  • Staged files

Comparing Scans Over Time

Save scans as JSON and compare them later:

# save today's scan
skiffs -r ~/Code -o json > ~/.cache/skiffs/$(date +%Y-%m-%d).json

# compare to yesterday
skiffs diff ~/.cache/skiffs/yesterday.json ~/.cache/skiffs/today.json

The diff command shows:

  • Added and removed repositories
  • Repos that became dirty or were cleaned
  • Changes in uncommitted/ahead/behind counts

Example output:

Diff Report
old: yesterday.json
new: today.json

cleaned: 2  dirtied: 1  added: 0  removed: 0

Changed:
  myproject
    → cleaned
  another-repo
    → dirtied
    uncommitted: +3

License

MIT

About

skiffs is for your software skiff; what are we like a bus or something?

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages