Skip to main content

Generate your daily standup from git history using AI

Project description

standup-ai

Generate your daily standup from git history — in seconds.

standup-ai                         # scan current dir, auto-detect provider
standup-ai --yesterday             # only commits from yesterday
standup-ai --days 3                # last 3 calendar days
standup-ai --style slack --copy    # Slack format, copy to clipboard
standup-ai --provider ollama       # no API key needed

PyPI version Python 3.9+ License: MIT Tests


The problem

Every developer on a remote team has to write a daily standup:

"Yesterday I worked on auth, fixed a bug in the login flow, started the JWT implementation. Today I'll finish JWT and write tests."

You already did the work. Why are you also writing about it?

standup-ai reads your git commits and writes the standup for you.


Demo

$ standup-ai ~/projects --style slack --copy

╭─────────────────────────── Daily Standup (slack) ──────────────────────────╮
│                                                                              │
│  Shipped JWT auth and fixed two production bugs                              │
│                                                                              │
│  • [gitbrief] Added --changed-only flag for PR review mode                  │
│  • [gitbrief] Implemented git diff embedding with --include-diff            │
│  • [api-service] Fixed null pointer in /users/profile endpoint              │
│  • Today: finish JWT refresh token rotation, write integration tests        │
│                                                                              │
╰──────────────────────────── 4 commits · gitbrief, api-service ─────────────╯

✓ Copied to clipboard

Why standup-ai?

git-standup (6k stars) is the closest thing — it lists raw commits from the last 24 hours. Great for finding what you did, but you still have to write the standup yourself.

standup-ai goes further:

Feature standup-ai git-standup manual
Scans multiple repos
AI-generated summary
Slack/bullet/standard styles
Auto-detects your author
Clipboard copy
Works with local LLMs
No API key required (Ollama)

Install

pip install standup-ai

Or with pipx (recommended):

pipx install standup-ai

Requires Python 3.9+.


Quick Start

# Auto-detects provider from env (ANTHROPIC_API_KEY or OPENAI_API_KEY)
standup-ai

# Scan multiple project directories
standup-ai ~/projects ~/side-projects

# Only commits from yesterday (great for morning standups)
standup-ai --yesterday

# Last 3 calendar days (e.g. Monday morning covering the weekend)
standup-ai --days 3

# Slack format, copy to clipboard
standup-ai --style slack --copy

# No API key needed — use Ollama
standup-ai --provider ollama --model llama3.2

# Show raw commits before generating
standup-ai --show-commits

# Raw output for piping
standup-ai --raw > standup.txt

Config File

Save your defaults in ~/.standup.yaml so you never have to type them again:

# ~/.standup.yaml
paths:
  - ~/projects
  - ~/work
style: slack
provider: claude
# author: "Your Name"   # override git user.name
# hours: 24             # default time window

Any CLI flag still overrides the config file.


Providers

Provider Flag Requires
Claude (default if key exists) --provider claude ANTHROPIC_API_KEY
OpenAI --provider openai OPENAI_API_KEY
Ollama (local, free) --provider ollama Ollama running

Using Ollama (no API key)

# Install Ollama: https://ollama.ai
ollama pull llama3.2

standup-ai --provider ollama --model llama3.2

Output Styles

--style standard (default)

**Yesterday:**
- [myrepo] Implemented JWT authentication with refresh token rotation
- [api-service] Fixed null pointer exception in profile endpoint

**Today:**
- Write integration tests for JWT flow
- Code review on open PRs

**Blockers:**
- None

--style bullet

- Added JWT auth and refresh tokens [myrepo]
- Fixed profile endpoint bug [api-service]
- Today: integration tests + PR reviews

--style slack

Shipped JWT auth and fixed a prod bug

* [myrepo] JWT authentication with refresh token rotation
* [api-service] Profile endpoint null pointer fix
* Today: tests + code review

Options

standup-ai [PATH...] [OPTIONS]

Arguments:
  PATH...           Directories to scan (default: current directory or ~/.standup.yaml paths)

Time window (mutually exclusive):
  --yesterday       Only commits from yesterday (midnight to midnight, local time)
  --days INT        Last N calendar days (from start of day N days ago)
  --hours INT       How many hours back to look [default: 24]

Options:
  --author TEXT     Filter by author name/email (auto-detected if not set)
  --no-filter       Include all authors (don't filter to current user)
  --provider        claude | openai | ollama (auto-detected from env)
  --model TEXT      Override model name
  --style           standard | bullet | slack [default: standard]
  --copy            Copy output to clipboard
  --raw             Plain text output (no formatting)
  --show-commits    Print raw commits found before generating
  -V, --version     Show version
  -h, --help        Show this message and exit

Tips

# Monday morning standup (covers the weekend)
standup-ai --yesterday --days 3

# Monday morning — all commits since Friday
standup-ai --days 3

# Team standup: see what everyone did (no author filter)
standup-ai --no-filter

# Add to your shell as an alias
alias standup='standup-ai --yesterday --style slack --copy'

# See what commits were found before generating
standup-ai --show-commits --provider ollama

Development

git clone https://github.com/faw21/standup-ai
cd standup-ai
python -m venv .venv && source .venv/bin/activate
.venv/bin/pip install -e ".[dev]"
pytest tests/   # 83 tests, 89% coverage

Related Tools

gitbrief — Pack the right files from any repo into LLM-ready context using git history.

gpr — AI-powered PR descriptions and commit messages from your git diff.

# The full AI-powered git workflow:
standup-ai                    # 1. morning standup
gitbrief . --changed-only     # 2. pack context for code review
gpr                           # 3. generate PR description
gpr --commit-run              # 4. commit with AI message

License

MIT

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

standup_ai-0.2.0.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

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

standup_ai-0.2.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: standup_ai-0.2.0.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for standup_ai-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ba8ff778eeb015dab8a4225a2e60b3ab607056ddb56d14c15b7be6c57c336ebd
MD5 b85156040e40988a46d6caa3fcaf5daa
BLAKE2b-256 d1451712211d73761ca7389fa786b77960abbb06b28c2596f2636b3873990ed2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: standup_ai-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for standup_ai-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be24b95973c80ab95c33ef37845e28991f7b6a500390ecf3b7d4c957dd76ad44
MD5 28cc0a706d3d9bdd37eda3d58e7176f9
BLAKE2b-256 7668e3e7310bb97399733dde6e636758f5116bb7c406c350053279ae7a2d6351

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