DailySum
A CLI tool that uses AI agents to generate daily work summaries from your GitHub activity.
What It Does
Analyzes your GitHub activity and generates daily summaries like this:
Yesterday:
- Merged PR #142: Fix authentication bug in user login flow
- Reviewed PR #138: Add support for OAuth2 integration
- Opened issue #145: Memory leak in background task processor
Today:
- Continue work on OAuth2 integration testing
- Address memory leak issue in background processor
- Review pending PRs from team members
How It Works
This tool uses two Mozilla AI projects:
any-llm
Provides a unified interface to different LLM providers. Switch between OpenAI, Anthropic, Mistral, and other models with a string change.
any-agent
Provides a unified interface for AI agent frameworks. Handles tool orchestration, model interactions, and GitHub API access via Model Context Protocol (MCP).
Together, these handle the complexity of GitHub API interactions and LLM provider differences.
Installation
Requirements
- Python 3.11 or newer
- A GitHub Personal Access Token
- API key for your chosen LLM provider (OpenAI, Anthropic, etc.)
Install from PyPI
pip install dailysum
Install from Source
git clone https://github.com/njbrake/dailysum.git
cd dailysum
pip install -e .
Configuration
Option 1: Interactive Setup (Recommended)
Run the initialization command and follow the prompts:
dailysum init
This will:
- Prompt for your GitHub token
- Let you choose your preferred LLM model
- Optionally set your company name
- Save configuration to
~/.config/dailysum/config.toml
Option 2: Environment Variables
Set these environment variables:
export GITHUB_TOKEN="ghp_your_github_token_here"
export MODEL_ID="openai/gpt-4o-mini" # Optional, defaults to gpt-4o-mini
export COMPANY="Your Company Name" # Optional
Then run with the --use-env flag:
dailysum generate --use-env
Getting a GitHub Token
- Go to GitHub Settings > Developer settings > Personal access tokens
- Click "Generate new token (classic)"
- Select scopes:
repo,read:user,read:org,notifications - Copy the generated token
Supported LLM Providers
- OpenAI:
openai/gpt-4o,openai/gpt-4o-mini,openai/gpt-3.5-turbo - Anthropic:
anthropic/claude-3-5-sonnet-20241022,anthropic/claude-3-haiku-20240307 - Mistral:
mistral/mistral-large-latest,mistral/mistral-small-latest - Google:
google/gemini-1.5-pro,google/gemini-1.5-flash
See any-llm providers for the complete list.
Usage
Generate Your Daily Summary
dailysum generate
Generate with Quality Evaluation
dailysum generate --evaluate
View Current Configuration
dailysum config
Use Environment Variables Instead of Config File
dailysum generate --use-env
Advanced Usage
Custom Configuration File Location
# Initialize with custom location
dailysum init --config-path /path/to/my/config.toml
# Generate using custom location
dailysum generate --config-path /path/to/my/config.toml
Different Models for Different Purposes
You can easily switch between models by updating your config:
# Use a faster, cheaper model
dailysum init --model-id "openai/gpt-4o-mini"
# Use a more powerful model for complex summaries
dailysum init --model-id "anthropic/claude-3-5-sonnet-20241022"
Development
Setting Up Development Environment
git clone https://github.com/njbrake/dailysum.git
cd dailysum
# Install with development dependencies
pip install -e ".[dev]"
# Set up pre-commit hooks
pre-commit install
Running Tests
pytest
Code Quality
# Format and lint
ruff format .
ruff check . --fix
# Type checking
mypy src/
Contributing
Contributions are welcome. Areas of interest:
- New LLM provider support
- Summary templates and prompts
- Additional GitHub data sources
- CLI improvements
- Tests and documentation
See Contributing Guide for details.
Example Output
📋 Your Daily Summary
┌─────────────────────────────────────────────────────────────┐
│ Yesterday: │
│ - Merged PR #234: Implement user authentication system │
│ - Reviewed PR #231: Add Docker configuration │
│ - Fixed critical bug in payment processing (Issue #189) │
│ - Updated documentation for API endpoints │
│ │
│ Today: │
│ - Complete integration tests for authentication system │
│ - Review pending PRs from team members │
│ - Start work on user dashboard redesign │
│ - Investigate performance issues in search functionality │
└─────────────────────────────────────────────────────────────┘
Troubleshooting
"Configuration error: GitHub token not found"
Make sure you've either:
- Run
dailysum initto set up a config file, or - Set the
GITHUB_TOKENenvironment variable
"Unable to import 'any_agent'"
Install the required dependencies:
pip install any-agent any-llm-sdk
Rate Limiting Issues
If you hit GitHub API rate limits:
- Use a GitHub token (provides 5000 requests/hour vs 60 for unauthenticated)
- Consider running the tool less frequently
- The tool automatically respects rate limits and will wait if needed
License
MIT License - see LICENSE for details.
Acknowledgments
- any-llm - Unified LLM provider interface
- any-agent - Unified AI agent framework
- GitHub Copilot MCP - GitHub API access via Model Context Protocol
- Rich - Beautiful terminal output
- Click - Command-line interface framework
Built by Mozilla AI
Metadata
Release files for dailysum 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dailysum-0.0.1.tar.gz | 19.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dailysum-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.4 kB
Release files / dailysum-0.0.1.tar.gz
| Download URL | dailysum-0.0.1.tar.gz |
|---|---|
| Size | 19.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de3f3341b4daa5872a3904d525762fca35085ec9c1286ca9e391998e19adfe90
|
|
BLAKE2b-256 checksum How to use checksums |
8daab3a07120368b2d4d3a6365ffc6898f191dd965ad0d9be46310758c94fa50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2025.
Transparency logRelease files / dailysum-0.0.1-py3-none-any.whl
| Download URL | dailysum-0.0.1-py3-none-any.whl |
|---|---|
| Size | 14.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bbe9889892cc576b706f786476dd48de625b29c9f8e0e7f952f299f03bff95f9
|
|
BLAKE2b-256 checksum How to use checksums |
6cf99186bf19fe90d41c33df0e48a0021b61c089462aa8714295451714d7e14f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2025.
Transparency log