Generate a human-readable brief for any GitHub repository using Claude AI
Project description
devbrief
Generate a human-readable project brief for any GitHub repository using Claude AI.
devbrief takes a GitHub URL, pulls the repository metadata, README, and file tree, then asks Claude to produce a structured brief — covering what the project does, its tech stack, how to get started, and its limitations — directly in your terminal.
Installation
pip
pip install devbrief
uvx (run without installing)
uvx devbrief <github-url>
uv (install globally)
uv tool install devbrief
Prerequisites
An Anthropic API key is required.
export ANTHROPIC_API_KEY=sk-ant-...
Or place it in a .env file at your working directory:
ANTHROPIC_API_KEY=sk-ant-...
Usage
devbrief <github-url> [--output FILE]
Examples
# Print the brief to the terminal
devbrief https://github.com/anthropics/anthropic-sdk-python
# Save the brief as a markdown file
devbrief https://github.com/astral-sh/uv --output uv-brief.md
Options
| Option | Short | Description |
|---|---|---|
--output FILE |
-o |
Save the brief as a markdown file |
--help |
Show usage and exit |
Output sections
Each generated brief contains:
- One-line description — a crisp summary of the project
- Problem it solves — the core need being addressed
- Tech stack — detected languages, frameworks, and tools
- Getting started — steps extracted from the README
- Who would find it useful — the target audience
- Limitations / potential improvements — honest trade-offs
How it works
GitHub URL
│
├── /repos/:owner/:repo → name, description, stars, language, topics
├── /repos/:owner/:repo/readme → decoded README content (first 3000 chars)
└── /repos/:owner/:repo/contents → top-level file tree
│
└── Structured prompt → Claude claude-opus-4-6 → Rich terminal output
Development
Requires uv.
git clone https://github.com/s3bc40/devbrief
cd devbrief
uv sync
Run locally
uv run devbrief https://github.com/s3bc40/devbrief
Run tests
uv run pytest
Tests cover URL parsing, GitHub API response mapping, edge cases (missing README, empty file tree), and Rich display output. No real API calls are made — all HTTP responses are mocked.
Project structure
src/devbrief/
├── main.py # Click CLI entry point
├── github.py # GitHub REST API fetchers
├── brief.py # Prompt construction and Claude API call
└── display.py # Rich terminal rendering
tests/
├── test_github.py
└── test_display.py
Contributing
- Fork the repository and create a branch from
main. - Make focused commits with explicit messages (one concern per commit).
- Add or update tests for any changed behaviour.
- Open a pull request — describe the problem and your solution.
Please do not open issues to ask for new AI providers or models; the project is intentionally scoped to the Anthropic API.
License
MIT — see LICENSE for details.
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
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 devbrief-0.1.0.tar.gz.
File metadata
- Download URL: devbrief-0.1.0.tar.gz
- Upload date:
- Size: 42.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
888568af1dc298b20582ad0a369bd2c135a6a83342840ff82ca338f67704580d
|
|
| MD5 |
cb0c89aad3a85fabbff3db6cfc30c7e2
|
|
| BLAKE2b-256 |
40467371644ce8898213719a47abab5bc13e05e72b21bee578936df20d55cff3
|
File details
Details for the file devbrief-0.1.0-py3-none-any.whl.
File metadata
- Download URL: devbrief-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec5aab55c9ef6356e6afba4ae03103c9c881df45cc58ed95c4e15e485642b628
|
|
| MD5 |
7d248a778bbe8e392d10463859949b79
|
|
| BLAKE2b-256 |
c7b204eb64ab28c2a6bfe77ed5bd893cc242734908cc23330ebd9ef0edb70dea
|