Skip to main content

A CLI and Python library for GitHub reconnaissance, search, and analysis

Project description

Gitraze

A fast, hacker-style CLI for slicing through GitHub data like a blade.

Gitraze is a powerful command-line tool designed to explore, analyze, and extract insights from GitHub using REST, with GraphQL support coming soon; all from your terminal.

⚠️ 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 (REST + GraphQL)
  • Modular and extensible architecture

Features

  • Modular system (easy to extend and hack on)
  • CLI-first workflow
  • GitHub API integration (REST + GraphQL)
  • 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

Installation

From PyPI using pip

pip install gitraze

Using source code from Repository

Read the Development setup section.


There may be some gap between releases on GitHub and PyPI, as more than one commits are sometimes clustered as a single release on PyPI.

Usage

Run directly from your terminal:

Example:

gitraze --version
gitraze --help
gitraze user octocat --format=raw 
gitraze repo torvalds/linux --format=full # Query format must match
gitraze search repos "machine learning" -n 5 --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", output_format="compact")

print(user["name"])
print(user["followers"])

Repository:

import gitraze as gz

repo = gz.repo("torvalds", "linux", output_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, output_format="compact")

for repo in results:
    print(repo["full_name"])

Custom Output Format:

All three SDK functions support output customization:

import gitraze as gz

user = gz.user("octocat", output_format="full")
repo = gz.repo("torvalds", "linux", output_format="raw")
results = gz.search(gz.REPOS, "machine learning", 3, output_format="full")

Available options are:

  • output_format="compact": Returns a concise, human-friendly subset of the most useful fields.
  • output_format="full": Returns all available processed fields exposed by Gitraze.
  • output_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, output_format="compact")
  • repo(owner, repo, output_format="compact")
  • search(category, query, limit=1, output_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 GUI. 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 feature is basically absent now, but integration is planned; currently REST-focused.

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.

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

gitraze-0.3.0.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitraze-0.3.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file gitraze-0.3.0.tar.gz.

File metadata

  • Download URL: gitraze-0.3.0.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for gitraze-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8888b7844d172b8b0c96430b58657c71f5f4453e0e8d4da96d9da4617ff83d59
MD5 1e564b28b577d2a30a45d9e6b95bc536
BLAKE2b-256 fdb595d297446edd32e395f268b7c0fdc8cc30b1c920af2979ab64d69d23c0bf

See more details on using hashes here.

File details

Details for the file gitraze-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: gitraze-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for gitraze-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 65f18ba037dea2aceae7d44d57f73aa21b7ac738b2a6ac9a8c36690318fc7b57
MD5 e9678a57ba99a06ae54d62d4104ef732
BLAKE2b-256 cb915808ff63cc07e69fba0ac8bac4d4ab18da49267f53155e3622be3fc8efe8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page