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:
- Run
ge preparebefore working on any issue - Check the freshness analysis and ask you before working on stale/resolved issues
- Request you paste images when visual context matters
- Use the full context document as its working knowledge
Requirements
ghCLI — 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86e2a4f3623b60fbcf357700c844a839d164af28547767d71094cf8ea2359c73
|
|
| MD5 |
d16bf3b41753ea268a67952de6f4653e
|
|
| BLAKE2b-256 |
9f983850da4d7a4ab0553df9dff6ccddb8f76193e948e6308b77b2e2a4e2391f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb007d4209ceab9da65dd9516a873def60aa08a830dc7edf3e11e2b37b323a3a
|
|
| MD5 |
7b4dfc60c95b07b3066280847c449d57
|
|
| BLAKE2b-256 |
ce27188d56cf4088bb22b546d9830ae6d55ba08b035b14817b3ff83f97311673
|