Skip to content

Repository files navigation

repjan

A terminal user interface (TUI) tool for managing GitHub repositories at scale. Visualize, filter, and batch archive repositories.

Features

  • Visual Dashboard - Interactive TUI showing all repositories with status indicators
  • Smart Filtering - Filter by age, stars, forks, language, visibility
  • Archive Detection - Automatically identifies archive candidates based on heuristics
  • Batch Operations - Mark and archive multiple repositories at once
  • Search - Real-time search filtering by repository name
  • Export - Export marked repositories to JSON for documentation

Screenshot

Installation

Prerequisites

  • Go 1.21+
  • GitHub CLI (gh) installed and authenticated

Build from source

git clone https://github.com/llbbl/repjan.git
cd repjan
go build -o repjan ./cmd/repjan

Usage

# Audit your own repositories
repjan
# Audit an organization
repjan --owner acme-corp

Keyboard Controls

Navigation

KeyAction
j / k / / Navigate list
g / GGo to top / bottom
/Search by name
EnterView repository details
qQuit
?Show help

Filtering

KeyAction
aShow all repositories
oShow old (365+ days inactive)
nShow no stars
fShow forks only
lFilter by language
pShow private only

Sorting

KeyAction
1Sort by name
2Sort by activity
3Sort by stars
4Sort by language

Actions

KeyAction
SpaceMark/unmark for archiving
Shift+AMark all visible
Shift+UUnmark all
aArchive marked repos (when marked)
eExport marked to JSON

Archive Candidate Heuristics

Repositories are flagged as archive candidates based on:

  • Age: No activity in 1+ years (or 2+ years)
  • Engagement: Zero stars and zero forks
  • Fork Status: Stale forks (180+ days inactive)
  • Language: Legacy language + inactivity (PHP, CoffeeScript, Perl, etc.)

Status Indicators

IconStatus
(green)Active repository
(yellow)Archive candidate
(gray)Already archived

Export Format

Exported JSON includes:

{
"exported_at": "2026-01-28T10:30:00Z",
"owner": "username",
"total_marked": 12,
"repositories": [
{
"name": "old-repo",
"full_name": "username/old-repo",
"stars": 0,
"forks": 0,
"days_since_activity": 823,
"reason": "No activity in 2+ years; No community engagement",
"language": "PHP",
"last_push": "2023-02-15T12:00:00Z",
"is_fork": false,
"is_private": false
}
]
}

License

FSL-1.1-MIT - Functional Source License with MIT future license.

Copyright 2026 Logan Lindquist Land

About

Repo Janitor: a TUI tool for auditing and archiving stale GitHub repositories

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages