Skip to main content

Generate a human-readable brief for any GitHub repository using Claude AI

Project description

devbrief

Project situational awareness.

devbrief takes a GitHub URL, pulls 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 repo <github-url>

uv (install globally)

uv tool install devbrief

Setup

An Anthropic API key is required. Store it securely with:

devbrief auth

This validates your key against the Anthropic API and writes it to ~/.config/devbrief/config.toml with 600 permissions. You will not be prompted again until the key is cleared or replaced.

CI / non-interactive environments:

devbrief auth --api-key "$ANTHROPIC_API_KEY"
# or just export the env var — devbrief picks it up automatically
export ANTHROPIC_API_KEY=sk-ant-...

Usage

 Usage: devbrief [OPTIONS] COMMAND [ARGS]...

 Project situational awareness.

╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --install-completion          Install completion for the current shell.      │
│ --show-completion             Show completion for the current shell, to copy │
│                               it or customize the installation.              │
│ --help                        Show this message and exit.                    │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ repo  Analyze a GitHub repository.                                           │
│ auth  Manage API credentials.                                                │
╰──────────────────────────────────────────────────────────────────────────────╯

devbrief repo

devbrief repo <github-url> [--output FILE]

Examples:

# Print the brief to the terminal
devbrief repo https://github.com/anthropics/anthropic-sdk-python

# Save the brief as a markdown file
devbrief repo https://github.com/astral-sh/uv --output uv-brief.md
Option Short Description
--output FILE -o Save the brief as a markdown file
--help Show usage and exit

devbrief auth

devbrief auth                        # interactive prompt (hidden input)
devbrief auth --api-key sk-ant-...   # non-interactive
devbrief auth --show                 # display masked stored key
devbrief auth --clear                # remove stored key

Credential resolution order

  1. --api-key flag
  2. ANTHROPIC_API_KEY environment variable
  3. ~/.config/devbrief/config.toml
  4. Error with instructions to run devbrief auth

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 (model from config) → Rich terminal output

Migrating from v0.1.x

v0.1.x v0.2.x
devbrief <url> devbrief repo <url>
export ANTHROPIC_API_KEY=... devbrief auth (or keep the env var)

Development

Requires uv.

git clone https://github.com/s3bc40/devbrief
cd devbrief
uv sync --all-groups

Run locally

uv run devbrief repo https://github.com/s3bc40/devbrief

Run tests

uv run pytest

Lint

uv run ruff check src/ tests/
uv run ruff format src/ tests/

Project structure

src/devbrief/
├── cli.py               # Typer app — registers all subcommands
├── commands/
│   ├── repo.py          # devbrief repo
│   └── auth.py          # devbrief auth
├── core/
│   ├── credentials.py   # API key + model resolution chain
│   └── config.py        # Config file read/write (~/.config/devbrief/config.toml)
├── github.py            # GitHub REST API fetchers
├── brief.py             # Prompt construction and Claude API call
└── display.py           # Rich terminal rendering
tests/
├── test_credentials.py  # Credential resolution + auth command tests
├── test_github.py
└── test_display.py

Contributing

  1. Fork the repository and create a branch from main.
  2. Make focused commits with explicit messages (one concern per commit).
  3. Add or update tests for any changed behaviour.
  4. 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

devbrief-0.2.0.tar.gz (53.1 kB view details)

Uploaded Source

Built Distribution

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

devbrief-0.2.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file devbrief-0.2.0.tar.gz.

File metadata

  • Download URL: devbrief-0.2.0.tar.gz
  • Upload date:
  • Size: 53.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devbrief-0.2.0.tar.gz
Algorithm Hash digest
SHA256 029e93b171a32d43d56156b2b429f6f34303f7b8afd9fe5bac55ea6fbbf97563
MD5 d5f2f17faeb55d6b40728ed8e7453b33
BLAKE2b-256 4dd7e9c9026dc44bb0f50fa1ee28d7f23a386c1ca995310a15574272a96fe07d

See more details on using hashes here.

Provenance

The following attestation bundles were made for devbrief-0.2.0.tar.gz:

Publisher: release.yml on s3bc40/devbrief

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devbrief-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: devbrief-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devbrief-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd33b3d60909b8389690b88eff0deff2b3450447929fd0cf0723024881ad57a6
MD5 dbedbd86f88f98d0ae8d42b570f69499
BLAKE2b-256 8e9b5d6c5bbed3edd9e6067da5af3d1220afd1bdee0195f7790618bcb8794938

See more details on using hashes here.

Provenance

The following attestation bundles were made for devbrief-0.2.0-py3-none-any.whl:

Publisher: release.yml on s3bc40/devbrief

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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