Skip to main content

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

Project description

devbrief

Project situational awareness.

devbrief is a developer CLI for rapid project situational awareness:

  • devbrief repo — takes a GitHub URL, pulls repository metadata, README, and file tree, then asks Claude to produce a structured brief directly in your terminal.
  • devbrief logs — streams a log file (or stdin) into a local browser dashboard with live filtering, level highlighting, and rolling metrics.

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.                                                │
│ logs  Stream logs into a live dashboard.                                     │
╰──────────────────────────────────────────────────────────────────────────────╯

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

devbrief logs

devbrief logs [FILE] [--port PORT] [--no-browser]

Opens a local browser dashboard at http://127.0.0.1:7890 (default port).

Examples:

# Visualise a log file
devbrief logs /var/log/app.log

# Pipe from a running process
your-app 2>&1 | devbrief logs

# Use a custom port
devbrief logs /var/log/app.log --port 8080
Option Description
FILE Path to a log file. Omit to read from stdin.
--port PORT Dashboard port (default: 7890)
--no-browser Do not open the browser automatically
--help Show usage and exit

The dashboard auto-detects common log formats (JSON structured logs, ISO timestamp prefix, [LEVEL], LEVEL:) and supports live client-side filtering by level, keyword, and time range. New lines appended to the file appear within ~3 seconds.


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
│   └── logs.py          # devbrief logs — FastAPI server, log parser, ring buffer
├── templates/
│   ├── base.html        # Base HTML layout (HTMX)
│   └── logs/
│       └── dashboard.html  # Log dashboard template
├── 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_logs.py         # Log parser, ring buffer, polling endpoints
├── 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.3.0.tar.gz (70.0 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.3.0-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for devbrief-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d8ab32af58800832d21f8c9c8f31847060ab6bb5a4d1019cf1d4bfec91f8fb9e
MD5 ad2d82b76b2929894a9a495f0cd9a979
BLAKE2b-256 a2a3dcfa99705212701d713884f2b55b44b4959b16b2de0c653307df8ee98fe8

See more details on using hashes here.

Provenance

The following attestation bundles were made for devbrief-0.3.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: devbrief-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 19.5 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 76ec8512c29d80d0c03b131fef3f354d0245c638cd8e821c8942102e1921bc39
MD5 03dedcee556aabc48d9275b103e95c65
BLAKE2b-256 a6fb3868f0589e7fec5200e71451abf2d52adec8e41d87106b8caab392770b91

See more details on using hashes here.

Provenance

The following attestation bundles were made for devbrief-0.3.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