Skip to main content

Organize GitHub starred repos into Star Lists — free heuristic categorization, optional LLM

Project description

GitHub Stars Organizer

MIT License Python 3.12+ CI

Organize 300+ GitHub stars into lists in minutes — free, no AI required.

GitHub's official API can star/unstar repos, but cannot create or manage Star Lists. This CLI:

  1. Fetches your starred repos (public GitHub API)
  2. Categorizes them by name, description, language, and topics
  3. Creates lists and assigns repos via your browser session

Why this tool?

Tool Drawback This project
github-star-organizer Requires paid LLM API Free heuristic by default
ghstars Manual category files only Auto-plan + custom rules + optional LLM
starred AI-first, complex Simple: plan → review → apply

Install

# From source
git clone https://github.com/nishal21/github-stars-organizer.git
cd github-stars-organizer
uv sync

# Or from PyPI (after v0.2.0 release)
pip install github-stars-organizer

Requires Python 3.12+ and uv (recommended).

Windows note: If pip install says scripts are not on PATH, either add
%APPDATA%\Python\Python313\Scripts to your PATH, or run:

python -m stars_organizer init

From the project folder you can also use: uv run organize-stars init

Quick start

1. Build a plan (no credentials needed)

organize-stars plan --username YOUR_USERNAME

Review categorization-plan.json. Edit assignments or add custom rules:

cp categories.example.toml categories.toml
# edit categories.toml
organize-stars plan --username YOUR_USERNAME --categories categories.toml

2. Configure credentials

organize-stars init

Or copy and edit manually:

cp config.example.toml config.toml
Field How to get it
username Your GitHub username
token GitHub token settings (classic; public_repo if you star private repos)
cookies See Getting your cookie below

3. Preview and apply

organize-stars apply --dry-run
organize-stars apply

View result: https://github.com/YOUR_USERNAME?tab=stars

If interrupted, resume with:

organize-stars apply --resume

Getting your browser cookie

GitHub Star Lists have no public API — applying lists uses your browser session.

  1. Log into github.com in Chrome or Edge
  2. Press F12 to open DevTools
  3. Open the Network tab
  4. Refresh the page
  5. Click any request to github.com
  6. Under Headers, find Cookie
  7. Copy the entire cookie string into config.toml[github.session]cookies

Cookies expire every few weeks. Refresh from DevTools if you get CSRF or 403 errors.

CLI reference

organize-stars init [--config config.toml] [--force]
organize-stars status [--config config.toml]
organize-stars lists [--config config.toml]

organize-stars plan --username USER [--categories categories.toml] [--output plan.json]
organize-stars plan --config config.toml [--categories categories.toml]
organize-stars plan --config config.toml --llm          # optional AI mode

organize-stars apply [--config config.toml] [--plan plan.json] [--dry-run] [--yes] [--resume]

Optional LLM mode

For smarter categorization, add a [llm] section to config.toml and install the extra:

uv sync --extra llm
organize-stars plan --config config.toml --llm

Heuristic mode remains the default — no API key required.

Default categories

  • AI & LLM
  • Web Dev & Frontend
  • Mobile & Android
  • Backend & APIs
  • Dev Tools & CLI
  • Self-hosting & DevOps
  • Security & Privacy
  • Media & Creative
  • Gaming & Entertainment
  • Go & Systems
  • Learning & Inspiration
  • Misc & Tools

Customize via categories.toml or edit the plan JSON before applying.

Troubleshooting

Problem Fix
CSRF / 403 error Refresh browser cookie in config.toml
Rate limited Wait a few minutes; reduce concurrency in config
More than 32 lists GitHub hard limit — merge categories in plan or categories.toml
Apply interrupted Run organize-stars apply --resume
config.toml not found Run organize-stars init

Check setup anytime:

organize-stars status

Privacy and security

  • Token and cookies stay in local config.toml (gitignored) — never commit them
  • Plan mode reads only public repo metadata
  • LLM mode (optional) sends metadata to your configured provider
  • See SECURITY.md

Development

uv sync --dev
uv run pytest
uv run ruff check .

See CONTRIBUTING.md.

Attribution

Web client adapted from luoling8192/github-star-organizer (MIT). See ATTRIBUTION.md.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

github_stars_organizer-0.2.1.tar.gz (44.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

github_stars_organizer-0.2.1-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file github_stars_organizer-0.2.1.tar.gz.

File metadata

  • Download URL: github_stars_organizer-0.2.1.tar.gz
  • Upload date:
  • Size: 44.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for github_stars_organizer-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6f6c8d3d3a3ac277cfbb0fa192f27abeff2b220d18058f812ec3d65908a47d9b
MD5 2a03625aabf2a417a927d7427564d8b2
BLAKE2b-256 ba6d983b04173f9deb59cc7802994979717ac523c0df506024d4d50e2721bca7

See more details on using hashes here.

File details

Details for the file github_stars_organizer-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for github_stars_organizer-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 82fb9d9b5f12621528d81d159f31a213a58ca0e4096c729f1bd3457151d99f43
MD5 2a3538fea51b8b4f2d42519e313eea80
BLAKE2b-256 f58314b0fd0380ef6b3fe4be7e1c196d3c1cb18e452ed1430ce2d6b5791a1a06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page