This is my first Command Line Interface (CLI) tool in python — it roasts GitHub users and repositories.
I built it mainly to learn more about the GitHub API and CLI tools, so I ended up creating this sarcastic little thing you can run in the terminal. It queries GitHub data and then roasts it mercilessly.
As the name suggests, this tool lets you review GitHub repos or users in a unique, funny, and sarcastic way. You can also just chat with it to follow up on the previous roast.
If you already have uv installed, you can install Git-Roaster directly:
uv tool install git+https://github.com/AbdoAlshoki2/Git-Roaster.gitAlternatively, you can use pipx:
pip install pipx
pipx install git+https://github.com/AbdoAlshoki2/Git-Roaster.gitThis tool uses different APIs and tokens to work. First, you need to get an LLM provider API key. Right now, this tool supports Groq API and OpenAI interfaces.
You can get the API key from Groq, OpenAI, or any other LLM provider that supports OpenAI API (e.g. Ollama or OpenRouter).
To set the keys for the LLM provider, you can use the roast config command:
roast config --set-llm-provider openai --set-api-key <your-api-key>
# or
roast config --set-llm-provider groq --set-api-key <your-api-key>Notice the
--set-api-keyflag requires to set the llm provider, by default it will use Groq API.I made Groq API the default provider because it is free and support multiple models (you can use bigger models like
openai/gpt-oss-120bormeta-llama/llama-4-maverick-17b-128e-instructfor better responses and instructions following but have limited tokens per minute rate, or you can model likegroq/compoundto get more context but may be insufficient).However, Groq API may not be suitable for large data content or long chats since their limits will be exceeded, you can use your own OpenAI key, use Groq API with paid plans, or you can go with OpeRouter for free models.
Also you can set the model id from any of the above providers, check Groq API models or OpenAI models:
roast config --set-model-id <your-model-id>Same as api key, this flag works on the default provider (if not set).
For OpenAI (and its variants), you can set a custom base URL. For example, with OpenRouter:
roast config --set-base-url https://api.openrouter.aiSo to fully configure OpenRouter, you could run:
roast config --set-llm-provider openai --set-api-key <your-api-key> --set-model-id <your-model-id> --set-base-url https://api.openrouter.aiSince this tool fetches data from the GitHub API, you also need a GitHub token. You can generate one from GitHub. Without it, the tool only works on publicly available data.
I recommend using your own GitHub token, since it expands the amount of API request you can made per hour, and this tool uses multiple API requests to fetch data from GitHub for a single command, also, the accessed data will be based on your token permissions since some llm providers logs the prompts.
roast config --set-github-token <your-github-token>Or just use interactive setup for all keys:
roast configYou can also work with Ollama locally by setting the base URL for OpenAI to http://localhost:11434 and the model id to the model you want to use, or you can go through this Colab notebook (or any free cloud compute) as a server.
This tool has 3 main commands:
roast repo <repo-full-name>: Roasts a GitHub repository based on its full name.roast user <username>: Roasts a GitHub user based on their username.roast msg <message>: Roasts a message based on the message content.
This tool does not access the files content except the README.md file
roast repo AbdoAlshoki2/Git-Roaster # reviewing Git-Roaster repository
roast user AbdoAlshoki2 # reviewing AbdoAlshoki2 user profile
roast msg "Hello, how are you?" # normal chat messageFor the roast user, if you set a GitHub token, you can omit the username to roast your own profile:
roast user # roast your own profileFor the roast repo, by default it uses the default branch of the repository, but you can specify a branch with --branch or -b flag.
roast repo AbdoAlshoki2/Git-Roaster --branch "main"
roast repo AbdoAlshoki2/Git-Roaster -b "main"Also this tool support interactive mode, by running roast without any arguments you will enter interactive mode:
roast
Review your Github repo or user profile in a unique, funny, and sarcastic way (type 'exit' or 'quit' to exit interactive mode).
git-roaster >> roast user AbdoAlshoki2
.
.
.
git-roaster >> roast msg "What can I do to improve my commit messages?"
.
.
.
git-roaster >> exit-
This tool reviews commits, file structure, README files, and recent activity of a user or repo. It won’t work on private repositories unless you provide a GitHub token.
-
This tool does not access the files content (except the
README.mdfile). -
It’s limited by your LLM provider’s capabilities. Long contexts may fail with errors like
Error: Failed to get a response from the LLM service. Check your API key and network. -
Fetching GitHub data may take time depending on repository size.