gh-stars-organizer
gh-stars-organizer helps you turn a chaotic GitHub stars list into a searchable, structured knowledge base.
It fetches your starred repositories, classifies them with an LLM, builds embedding-based similarity search, and organizes results into GitHub Lists (with a local fallback when list APIs or scopes are unavailable).
Why this exists
Developers star hundreds of repositories and later struggle to find what matters.
This tool makes starred repos discoverable again.
Key capabilities
- Fetch all stars (with pagination for large accounts)
- LLM-based repository classification into practical engineering categories
- Embedding-based semantic search and similarity grouping
- Automatic organization into GitHub User Lists
- Local cache (SQLite + FAISS) to avoid repeated expensive work
- Insights report (
stars-insights.md) with trends and cleanup recommendations - Interactive terminal UI (
tui) for one-click workflows
Architecture
flowchart TD
A["GitHub GraphQL API"] --> B["Fetch Stars"]
B --> C["LLM Classification"]
C --> D["Embeddings Generation"]
D --> E["Local SQLite Cache"]
E --> F["Create/Reuse GitHub Lists"]
F --> G["Assign Repositories"]
E --> H["Insights Report"]
Installation
Requirements
- Python 3.11+
- GitHub CLI authenticated
- OpenAI-compatible API key (
OPENAI_API_KEY) for remote classification/embeddings (optional; local fallbacks exist)
Install from source
git clone https://github.com/vins13pattar/gh-stars-organizer.git
cd gh-stars-organizer
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Quickstart
gh-stars-organizer config --init
gh-stars-organizer sync
gh-stars-organizer preview
gh-stars-organizer organize
gh-stars-organizer insights
Commands
gh-stars-organizer sync— fetch and cache starsgh-stars-organizer preview— show predicted category per repogh-stars-organizer organize— assign repositories into GitHub Listsgh-stars-organizer insights— generatestars-insights.mdgh-stars-organizer search "<query>"— semantic repo searchgh-stars-organizer tui— interactive TUIgh-stars-organizer config— initialize/show configuration
TUI
Launch:
gh-stars-organizer tui
TUI includes:
- Sync / Preview / Organize / Insights actions
- Semantic search
- Live status and progress messages
Configuration
Default config file: ~/.gh-stars-organizer/config.yaml
Example template: examples/config.yaml
Common options:
- LLM model
- Embedding model
- Categories
- Cache/index/report paths
- Rate limits
GitHub List behavior
Organization uses GitHub User Lists GraphQL APIs (lists, createUserList, updateUserListsForItem).
- For GitHub list updates, your
ghauth token needsuserscope:gh auth refresh -s user
- If list APIs/scopes are unavailable, the tool generates local categorized lists at:
~/.gh-stars-organizer/lists
Example output
Fetching stars... page 3, repos 300
Caching repositories locally...
Classifying repositories... 120/742
Organize done. Created 8 lists, processed 742 assignments.
Development
pytest -q
CI and release workflows are included in .github/workflows/.
Contributing
See CONTRIBUTING.md.
License
MIT
Release files for gh-stars-organizer 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gh_stars_organizer-1.0.3.tar.gz | 19.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gh_stars_organizer-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.2 kB
Release files / gh_stars_organizer-1.0.3.tar.gz
| Download URL | gh_stars_organizer-1.0.3.tar.gz |
|---|---|
| Size | 19.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
959385561006a5b4b2b1172b717577e660ce860d835860e891ce919678c16033
|
|
BLAKE2b-256 checksum How to use checksums |
e6e1c2bce75016b59efab9c99ce561e7ada6d36f9eb151ffcbdafdf87bec4c8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.
Transparency logRelease files / gh_stars_organizer-1.0.3-py3-none-any.whl
| Download URL | gh_stars_organizer-1.0.3-py3-none-any.whl |
|---|---|
| Size | 22.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e76b3afeaa289c7ddeee41e503046e7475303bb8164a9a925e8f4ac42a9def7d
|
|
BLAKE2b-256 checksum How to use checksums |
92a2cf0e44c6de32bee6732eef86da97f55e4014ff9c7d7582f232a850dbc603
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.
Transparency log