Skip to main content

Github Expert - Agentic tools for github

Project description

ge — GitHub Engineering for AI Agents

Prepare rich context from GitHub issues and PRs so AI coding agents can work on them intelligently.

pip install ge
ge prepare owner/repo 42
# → .ge/issue_42_context.md  (full context document)
# → .ge/media/               (downloaded screenshots & video frames)

What it does

ge fetches an issue or PR and assembles everything an agent needs:

  • Issue/PR body and all comments — with media URLs rewritten to local paths
  • Images downloaded — screenshots, mockups, error captures
  • Video frames extracted — via ffmpeg scene detection, capturing actual visual changes
  • Freshness analysis — is this issue stale? already fixed? has related merged PRs?
  • Cross-references — commits and PRs that mention this issue
  • Code file checks — do the files mentioned in the issue still exist?

All via gh CLI, so private repos just work.

Quick start

# Install
pip install ge

# Prepare context for an issue
ge prepare owner/repo 42

# Or from a URL
ge prepare https://github.com/owner/repo/pull/7

# Just check freshness (no download)
ge analyze-issue owner/repo 42

For Claude Code users

Copy SKILL.md into your project's .claude/skills/ directory (or point Claude Code to it). The skill teaches the agent to:

  1. Run ge prepare before working on any issue
  2. Check the freshness analysis and ask you before working on stale/resolved issues
  3. Request you paste images when visual context matters
  4. Use the full context document as its working knowledge

Requirements

  • gh CLI — installed and authenticated (gh auth login)
  • ffmpeg — optional, for video frame extraction
  • Python 3.10+

Commands

ge prepare <repo> <N>              Full context (auto-detects issue/PR/discussion)
ge prepare-discussion <repo> <N>   Full context for a GitHub Discussion
ge analyze-issue <repo> <N>        Freshness analysis (JSON, no download)
ge analyze-pr <repo> <N>           PR review analysis with CI status (JSON)
ge fetch-issue <repo> <N>          Raw issue JSON
ge fetch-pr <repo> <N>             Raw PR JSON
ge fetch-discussion <repo> <N>     GitHub Discussion JSON
ge media <file.md>                 Download media from markdown
ge video-frames <video>            Extract frames (scene detection by default)

Project structure

ge/
├── __init__.py      # Facade: prepare(), prepare_issue(), prepare_pr()
├── __main__.py      # CLI via argh (SSOT: _cli_commands list)
├── github.py        # GitHub API via `gh` CLI subprocess
├── media.py         # Image download + video frame extraction (ffmpeg)
├── analysis.py      # Staleness/freshness/relevance analysis
├── context.py       # Assembles everything into context docs
└── util.py          # Internal helpers: gh wrapper, URL parsing, media extraction
SKILL.md             # Claude Code skill instructions
pyproject.toml
README.md

Python API

import ge

ctx = ge.prepare_issue('owner/repo', 42)
ctx = ge.prepare_pr('owner/repo', 7)
ctx = ge.prepare_discussion('owner/repo', 5)

# Or from any GitHub URL (auto-detects type)
ctx = ge.prepare('https://github.com/owner/repo/issues/42')
ctx = ge.prepare('https://github.com/owner/repo/discussions/5')

# Just analysis
analysis = ge.analyze_issue('owner/repo', 42)

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

ge-0.1.1.tar.gz (39.8 kB view details)

Uploaded Source

Built Distribution

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

ge-0.1.1-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file ge-0.1.1.tar.gz.

File metadata

  • Download URL: ge-0.1.1.tar.gz
  • Upload date:
  • Size: 39.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ge-0.1.1.tar.gz
Algorithm Hash digest
SHA256 86e2a4f3623b60fbcf357700c844a839d164af28547767d71094cf8ea2359c73
MD5 d16bf3b41753ea268a67952de6f4653e
BLAKE2b-256 9f983850da4d7a4ab0553df9dff6ccddb8f76193e948e6308b77b2e2a4e2391f

See more details on using hashes here.

File details

Details for the file ge-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ge-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ge-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb007d4209ceab9da65dd9516a873def60aa08a830dc7edf3e11e2b37b323a3a
MD5 7b4dfc60c95b07b3066280847c449d57
BLAKE2b-256 ce27188d56cf4088bb22b546d9830ae6d55ba08b035b14817b3ff83f97311673

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