Organize GitHub starred repositories into intelligent Star Lists with LLMs and embeddings.
Project description
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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gh_stars_organizer-1.0.2.tar.gz.
File metadata
- Download URL: gh_stars_organizer-1.0.2.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bfdd4eb60de32f5b842837f5f508b77536a44c216c813f83aa31f6a66ff0559
|
|
| MD5 |
86e24f9bcaeb51f959ed9bd376568e49
|
|
| BLAKE2b-256 |
e52b9cfd636c93db19deb6d901828bf6f0ee266b881ac9de3db0202f642a43e9
|
Provenance
The following attestation bundles were made for gh_stars_organizer-1.0.2.tar.gz:
Publisher:
publish.yml on vins13pattar/gh-stars-organizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gh_stars_organizer-1.0.2.tar.gz -
Subject digest:
5bfdd4eb60de32f5b842837f5f508b77536a44c216c813f83aa31f6a66ff0559 - Sigstore transparency entry: 1059375413
- Sigstore integration time:
-
Permalink:
vins13pattar/gh-stars-organizer@1086baf8e5b7b9d994474de36ea1f9d68068cec2 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/vins13pattar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1086baf8e5b7b9d994474de36ea1f9d68068cec2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gh_stars_organizer-1.0.2-py3-none-any.whl.
File metadata
- Download URL: gh_stars_organizer-1.0.2-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
109bace329afedc2b1eda5553ce7e19eb3f3da9d2eb11e25333e4b158d3bec0a
|
|
| MD5 |
456fcc1b512d5eda7eb9c4dcf16907e1
|
|
| BLAKE2b-256 |
182ac96488a798bdb87a9878dadc3a4d716bd41d419f49f1b839d6831b9bf4c7
|
Provenance
The following attestation bundles were made for gh_stars_organizer-1.0.2-py3-none-any.whl:
Publisher:
publish.yml on vins13pattar/gh-stars-organizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gh_stars_organizer-1.0.2-py3-none-any.whl -
Subject digest:
109bace329afedc2b1eda5553ce7e19eb3f3da9d2eb11e25333e4b158d3bec0a - Sigstore transparency entry: 1059375414
- Sigstore integration time:
-
Permalink:
vins13pattar/gh-stars-organizer@1086baf8e5b7b9d994474de36ea1f9d68068cec2 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/vins13pattar
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1086baf8e5b7b9d994474de36ea1f9d68068cec2 -
Trigger Event:
release
-
Statement type: