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).

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.0.tar.gz (43.4 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.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: github_stars_organizer-0.2.0.tar.gz
  • Upload date:
  • Size: 43.4 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.0.tar.gz
Algorithm Hash digest
SHA256 38e2c8faee74dcb5eb8daec7aff1ef144191dd0e1de0841b8c99b85eacfa3881
MD5 11963a7e496991e029196dd2c53cdffe
BLAKE2b-256 1b24aff2ca3208a9e0e725bf149053364599a885d1e4bf6ab889e8ce84333f18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for github_stars_organizer-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2132ebef4584d4a3bff0be55490f53eecc8edc544f3fddb6c2048e28881244fa
MD5 ac57bd550c50e2eeed575e2fad700a6f
BLAKE2b-256 fe060745f15935de7e1c61984702de574e5023ae2c39f64fc78bc97fc3ed8dc4

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