Skip to main content

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.

PyPI Python Versions Downloads Build Status License Issues Stars Last Commit Contributors


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 setup section.


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.

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 gz is 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:

  • USERS
  • REPOS
  • PRS
  • ISSUES
  • TOPICS

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)

Source distribution for gitraze 0.4.0
File Size Uploaded
gitraze-0.4.0.tar.gz 12.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gitraze 0.4.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

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