Skip to main content

The Repo Stargazer

Demo of Repo Stargazer

Problem

I have been starring github projects for a long time.

There are two primary intentions behind giving stars -

  • Recognize the efforts of the author(s).
  • Bookmark the repository for my own use.

Unfortunately the user interface to search the existing starred repositories is very primitive.

Also, it would be nice to have not only Semantic search but also provide the results to LLM to further explore the starred repositories.

I also wanted to explore Google ADK, Google A2A Protocol & MCP. This project makes use of all 3 technologies (A2A support will be put back after Google ADK has native integration of it).

Solution

This project/tool uses semantic search and an AI agent as an attempt to solve the above problems.

Install (User)

Read below to install uv. You haven't done it yet? Come on guys!!

https://docs.astral.sh/uv/getting-started/installation/

and then simply run repo-stargazer using uvx

If you don't know - uvx will create an isolated environment, download the latest version and then run this tool. It's magic!!

uvx --from repo-stargazer rsg --help

Usage

The tool requires you to have a configuration file in which various settings are to be specified.

There is an example configuration file rsg-config.example.toml at the root of this repository. The configuration uses TOML syntax.

You should make a copy of it and perhaps call it rsg-config.toml (The name of the file does not really matter!)

Step 1 - Obtain the Github Personal Access Token

This tool fetches your starred github repositories. In order to access to them without incurring rate limits it is required to use the Github Personal Access Token.

Read this to learn how to obtain it -

https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens

Step 2 - Edit the rsg-config.toml

  • You should provide the Github PAT obtained in Step 1
  • You should fill the [embedder] section (Supported provider types are - ollama, openai, azure_openai)
  • You should fill the [agent.litellm_params] section

In rsg-config.example.toml, I have added necessary comments to help fill out various configuration.

Step 3 - Build the database

The real work starts with this step.

At the moment, I use naive RAG technique.

  • Information about your starred github repos are downloaded using the GitHub API
  • Then the readme files of these repos are downloaded. Note - Some repos, do not have readme file.
  • Then these readme files are chunked and their embeddings are stored in a vector store

The data above (including vectorstore) is stored in your computers data directories for example $HOME/.local/share/rsg on macos and linux.

You can change the location of the data by setting the environment variable RSG_DATA_HOME

uvx --from repo-stargazer rsg build --config rsg-config.toml

Step 4 - Run the agent using adk web & ui

Let's see all of it in action.

For the user interface, I am still using the development UI that comes as part of Google ADK.

In near future, would provide a decent UI with out any developer specific elements.

uvx --from repo-stargazer rsg run-adk-server --config rsg-config.toml

Developer

# I shouldn't have to write this instruction. But what the heck!
git clone https://github.com/ksachdeva/repo-stargazer

Now open the repo in devcontainer. You should know these things!

Just in case, Read if you have never used devcontainers

https://code.visualstudio.com/docs/devcontainers/containers

Various commands (via poe [https://poethepoet.natn.io/index.html]) to use during development.

Hint - Look inside pyproject.toml to see the underlying poe magic!

# Help
# Note - The `pyproject.toml` has `RSG_DATA_HOME` env variable set to `$PWD/tmp`
uv run poe --help
# Build the database
# Note - The `pyproject.toml` has `RSG_DATA_HOME` env variable set to `$PWD/tmp`
uv run poe build --config rsg-config.toml
# Run the Google ADK server
# Note - The `pyproject.toml` has `RSG_DATA_HOME` env variable set to `$PWD/tmp`
uv run poe adk-server --config rsg-config.toml

Metadata

Release files for repo-stargazer 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repo-stargazer 0.3.0
File Size Uploaded Provenance
repo_stargazer-0.3.0.tar.gz 4.0 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for repo-stargazer 0.3.0
File Interpreter ABI Platform
repo_stargazer-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.0 MB

Release files / repo_stargazer-0.3.0.tar.gz

Download URL repo_stargazer-0.3.0.tar.gz
Size 4.0 MB
Tags Source
SHA-256 checksum
How to use checksums
1214c41603ad148510ecb1c54f75e9c14ede09d21bee23d866b4cab9a92817a6
BLAKE2b-256 checksum
How to use checksums
85de6e64e18b16a9389a791a48e38a035c4bcd5edc7688595196560c48d7243f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 8, 2025.

Transparency log

Release files / repo_stargazer-0.3.0-py3-none-any.whl

Download URL repo_stargazer-0.3.0-py3-none-any.whl
Size 18.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ab453c52f3523d7da3cebeebac7b47339fe3b375995a151d4879efb108ab1cd
BLAKE2b-256 checksum
How to use checksums
68e0e19bcc77aaa2ddba51f3c6ec604820a3c5322a972700801ea22ccf2902c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 8, 2025.

Transparency log

Security for repo-stargazer 0.3.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for repo_stargazer-0.3.0.tar.gz

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 Jul 8, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page