AI-powered daily standup summaries from GitHub activity using OpenAI Agents SDK
Project description
GitHub Standup Agent
AI-powered daily standup summaries from your GitHub activity, built with the OpenAI Agents SDK.
Features
- GitHub Activity Collection — PRs, issues, commits, and code reviews via the
ghCLI - Slack Integration — Read team standups and publish your own to Slack threads
- Interactive Chat — Refine your standup conversationally ("make it shorter", "ignore the docs PR")
- Session Persistence — Resume sessions, use named sessions for recurring standups
- Style Customization — Define format with
style.mdand example standups - History — References past standups for continuity
- Multiple Outputs — Terminal, clipboard, or Slack
Architecture
See ARCHITECTURE.md for agent flow, tool patterns, and component details.
Quick Start
Prerequisites
- GitHub CLI (
gh) — installed and authenticated - OpenAI API Key
Install
pip install github-standup-agent
Run
export OPENAI_API_KEY="sk-..."
# One-shot standup
standup generate
# Look back 3 days, copy to clipboard
standup generate --days 3 --output clipboard
# Save to a text file
standup generate --output file --output-file standup.txt
# Interactive chat mode
standup chat
Chat Example
> generate my standup
[standup generated]
> make it less wordy
[shorter version]
> copy to clipboard
✅ Copied!
> publish to slack
✅ Posted to #standups
Configuration
standup config --show # View current config
standup config --set-style "Be concise. Use bullets." # Set style
standup config --init-style # Create style.md template
standup config --init-examples # Create examples.md template
standup config --set-slack-channel standups # Set Slack channel
| Environment Variable | Description | Default |
|---|---|---|
OPENAI_API_KEY |
OpenAI API key (required) | - |
STANDUP_GITHUB_USER |
GitHub username | Auto-detected |
STANDUP_COORDINATOR_MODEL |
Coordinator agent model | gpt-5.2 |
STANDUP_DATA_GATHERER_MODEL |
Data gatherer model | gpt-5.2 |
STANDUP_SUMMARIZER_MODEL |
Summarizer model | gpt-5.2 |
STANDUP_SLACK_BOT_TOKEN |
Slack bot token | - |
STANDUP_SLACK_CHANNEL |
Default Slack channel | - |
STANDUP_CONFIG_DIR |
Config directory | ./config/ |
STANDUP_DATA_DIR |
Data directory | ./.standup-data/ |
Priority: .env > config/config.json > defaults
Slack Setup
Set STANDUP_SLACK_BOT_TOKEN and configure a channel. Required bot permissions: channels:history, channels:read, chat:write.
Development
git clone https://github.com/andrewm4894/github-standup-agent
cd github-standup-agent
make install-dev # Install with dev deps
make check # Run lint + type-check + tests
make format # Auto-format
License
MIT — see LICENSE.
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 github_standup_agent-0.3.3.tar.gz.
File metadata
- Download URL: github_standup_agent-0.3.3.tar.gz
- Upload date:
- Size: 131.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40e8b3c231a4d314a770169a049fb35ed8ddd85fb9facb25a624edfef173a190
|
|
| MD5 |
3aa463d9e27258328a3528499529cd51
|
|
| BLAKE2b-256 |
f0218e33c1f64dff414b43488a8cfea916ba9765cc8fcb38417863556c94caf3
|
Provenance
The following attestation bundles were made for github_standup_agent-0.3.3.tar.gz:
Publisher:
release.yml on andrewm4894/github-standup-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
github_standup_agent-0.3.3.tar.gz -
Subject digest:
40e8b3c231a4d314a770169a049fb35ed8ddd85fb9facb25a624edfef173a190 - Sigstore transparency entry: 870691217
- Sigstore integration time:
-
Permalink:
andrewm4894/github-standup-agent@48c1bcb504e74b635122421e4f8b0c53a4013498 -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/andrewm4894
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@48c1bcb504e74b635122421e4f8b0c53a4013498 -
Trigger Event:
release
-
Statement type:
File details
Details for the file github_standup_agent-0.3.3-py3-none-any.whl.
File metadata
- Download URL: github_standup_agent-0.3.3-py3-none-any.whl
- Upload date:
- Size: 57.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29d89f443e07b93cfa6ed1825e4561689d29ac0012914af91c72a0ae60d3e6bc
|
|
| MD5 |
ff69f81fd37f15095b974c627c58910e
|
|
| BLAKE2b-256 |
a7fab735f97f2a232ec46495956b8c064c6358e8078bf1a1a6d77aa4fed0b64e
|
Provenance
The following attestation bundles were made for github_standup_agent-0.3.3-py3-none-any.whl:
Publisher:
release.yml on andrewm4894/github-standup-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
github_standup_agent-0.3.3-py3-none-any.whl -
Subject digest:
29d89f443e07b93cfa6ed1825e4561689d29ac0012914af91c72a0ae60d3e6bc - Sigstore transparency entry: 870691220
- Sigstore integration time:
-
Permalink:
andrewm4894/github-standup-agent@48c1bcb504e74b635122421e4f8b0c53a4013498 -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/andrewm4894
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@48c1bcb504e74b635122421e4f8b0c53a4013498 -
Trigger Event:
release
-
Statement type: