Gitraze
A CLI and Python library for GitHub exploration, search, and analysis
Gitraze is a CLI and Python library for exploring, analyzing, and extracting insights from GitHub through the REST API, with GraphQL planned.
⚠️ Status: Early development — expect bugs, missing features, and rapid changes. APIs and CLI may change without notice.
Built for developers who prefer terminals over tabs.
Why Gitraze?
Most GitHub tools are either slow, bloated, or UI-heavy.
Gitraze is different:
- Fast, minimal, no nonsense
- Built for developers who think in terminals
- Deep GitHub data access through the REST API
- Modular and extensible architecture
Features
- Modular system (easy to extend and hack on)
- CLI-first workflow
- GitHub API integration through REST; GraphQL planned
- Repository insights
- User analysis
- Filter PRs vs issues automatically
- Human-readable timestamps
- Cleaned descriptions (HTML stripped)
- Analytics modules (in progress)
- Search users, repos, issues, PRs, and topics
- Three data formats
Installation
From PyPI using pip
pip install gitraze
From source code
Read the
Development setupsection.
There may be some gaps between releases on GitHub and PyPI, as multiple commits are sometimes clustered into a single release on PyPI.
Usage
Run directly from your terminal:
Example:
gitraze --version
gitraze --help
gitraze user octocat --data-format=raw
gitraze repo torvalds/linux --data-format=full
gitraze search repos "machine learning" -n 5 --data-format=compact
gitraze analyze <target> # Coming soon!
Example output:
$ gitraze user octocat
[+] Fetching user data...
[✓] Done
User: octocat
-------------
Name : The Octocat
Login : octocat
Id : 583231
Node_id : MDQ6VXNlcjU4MzIzMQ==
Type : User
User_view_type : public
Bio : None
Followers : 22312
Following : 9
Public_repos : 8
Public_gists : 8
Location : San Francisco
Profile_url : https://github.com/octocat
Created_at : 25 Jan 2011
Email : None
Twitter_username : None
Commands prefixed with
$should be run in your terminal.
Gitraze can also be used as a lightweight Python SDK.
User:
import gitraze as gz
user = gz.user("octocat", data_format="compact")
print(user["name"])
print(user["followers"])
Repository:
import gitraze as gz
repo = gz.repo("torvalds", "linux", data_format="full")
print(repo["name"])
print(repo["owner"])
Note: Unlike the CLI, the SDK accepts owner and repository name as separate arguments.
Search:
import gitraze as gz
results = gz.search(gz.REPOS, "machine learning", 3, data_format="compact")
for repo in results:
print(repo["full_name"])
Data Formats:
All three SDK functions support different data formats:
import gitraze as gz
user = gz.user("octocat", data_format="full")
repo = gz.repo("torvalds", "linux", data_format="raw")
results = gz.search(gz.REPOS, "machine learning", 3, data_format="full")
Available options are:
data_format="compact": Returns a concise, human-friendly subset of the most useful fields.data_format="full": Returns all available processed fields exposed by Gitraze.data_format="raw": Returns the raw GitHub API response without filtering or formatting.
Pretty-print results in terminal style:
from gitraze import *
display(user("octocat"))
Example output:
Name : The Octocat
Login : octocat
Id : 583231
Node_id : MDQ6VXNlcjU4MzIzMQ==
Type : User
User_view_type : public
Bio : None
Followers : 22578
Following : 9
Public_repos : 8
Public_gists : 8
Location : San Francisco
Profile_url : https://github.com/octocat
Created_at : 25 Jan 2011
Email : None
Twitter_username : None
Note:
import gitraze as gzis the recommended import.
Note: Exact fields and values may differ from the examples shown, depending on the GitHub API response.
Available exports:
Functions:
user(username, data_format="compact")repo(owner, repo, data_format="compact")search(category, query, limit=1, data_format="compact")display(data)
Constants:
USERSREPOSPRSISSUESTOPICS
Constants depend on the module internals and may change without prior notice.
CLI commands and SDK APIs are still evolving and may change between releases.
Philosophy
Gitraze is built for speed, clarity, and control.
No clutter, no distractions — just raw access to GitHub data, the way it should be.
If you live in the terminal, Gitraze lives with you.
Development Setup
Clone the repo and install locally:
git clone https://github.com/akpandey-dev/gitraze.git
cd gitraze
pip install -e .
Project Status
Gitraze is in active development:
- Expect breaking changes
- Some commands may not work
- Features are being added rapidly
- GraphQL is not implemented yet; Gitraze is REST-focused for now.
If you're here early — you're basically a beta tester.
Contributing
PRs, ideas, bug reports, and feature suggestions are welcome. If you want to improve or modify Gitraze, go ahead.
- Fork the repository
- Create a feature branch
- Submit a PR with clean commit messages
git checkout -b feature/cool-thing
Just keep the code clean and the terminal fast.
License
MIT License — do whatever you want, just don’t blame me if you break stuff.
Metadata
Release files for gitraze 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gitraze-0.4.0.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gitraze-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.7 kB
Release files / gitraze-0.4.0.tar.gz
| Download URL | gitraze-0.4.0.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7ad29472bb7a3b167ab2f789354b0ea4affbf6743a65690b8fee57122bead6b
|
|
BLAKE2b-256 checksum How to use checksums |
70117748e9248e7bddb3314118184394fe48d05fab266b8f0e2f293be4ede249
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|
Release files / gitraze-0.4.0-py3-none-any.whl
| Download URL | gitraze-0.4.0-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a29b1bdbb08a2f7df7615d4c0e12efed5d39511d629ab8a49e209e9404a8064
|
|
BLAKE2b-256 checksum How to use checksums |
abe0f2d3da29c1a5d6a1f744ec72e8b4cbea98a3c75327596c80630889784546
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|