A custom CLI tool to generate professional monthly work reports from your Git activity using AI.
Kepler CLI is a command-line tool designed to:
- Navigate your local file system safely
- Detect and work with Git repositories
- Extract commit history
- Transform commits into structured data (JSON) using AI
- Generate monthly reports in Word (
.docx) - Use AI to enhance and summarize development activity
- Interactive CLI interface
- Custom command system
- Safe terminal command execution
- Directory navigation (
cd,ls,pwd, etc.) - Permission control for system access
- Git commit extraction
- AI integration for commit analysis and summarizing
- Monthly report generation in Word (
.docx)
- Smart filtering of commits
Before running the CLI, you can set environment variables in a .env file in the root directory:
# Google Gemini API Key (Required)
GEMINI_API_KEY=your_api_key_here
# AI Model Configuration (Optional, defaults to gemini-2.5-flash)
GEMINI_MODEL=gemini-2.5-flash
# Report Information (Optional)
COMPANY_NAME=Your Company
PROJECT_NAME=Project Name
EMPLOYEE_NAME=Your NameThe project uses a structured configuration system located in config/. It handles API authentication, model selection, and report settings. Environment variables are supported for development, and persistent configuration support is available through config_impl.py.
The core logic for report generation relies on Markdown templates.
- Custom Prompt: If present, the CLI reads
prompts/generate_summary.md. - Fallback Template: If that file does not exist, Kepler uses
prompts/generate_summary.example.md. - Customization: Create your own
prompts/generate_summary.mdfollowing the structure of the example file. - Variables: The prompt template supports placeholders like
{commits_data},{period_month},{company_name},{employee_name}, and{project_name}.
| Command | Description |
|---|---|
| generate | Generate report from commits |
| config | Show current configuration |
| version | Show CLI version |
| help | Show help menu |
| uninstall | Remove local configuration and uninstall package |
cli-kepler/
โโโ cli/ # CLI logic and interface
โ โโโ app_info.py # Version and app metadata
โ โโโ commands.py # Command definitions
โ โโโ entrypoint.py # Main CLI execution flow
โ โโโ welcome.py # Welcome messages and UI
โโโ config/ # Configuration management
โ โโโ config.py # Config interfaces
โ โโโ config_impl.py # Implementation of persistent config
โ โโโ prompt_config.py # AI prompt loading logic
โโโ prompts/ # AI Prompt templates
โ โโโ generate_summary.example.md
โ โโโ generate_summary.md (optional, user-defined)
โโโ service/ # Core business logic
โ โโโ ai_service.py # Gemini AI integration
โ โโโ word_service.py # Word report (.docx) generation
โโโ utils/ # Helper functions
โ โโโ date_util.py
โ โโโ git_util.py
โ โโโ write_markdown.py
โโโ main.py # Entry point script
โโโ pyproject.toml # Project dependencies and packaging
โโโ README.md
- User navigates to a project directory.
- CLI detects Git repository.
- Extracts commit history from the specified period.
- Processes commits and sends them to Gemini AI using the template in
prompts/generate_summary.md. - AI generates a structured summary (JSON).
- CLI converts the data into a professional Word report (
.docx) using theword_service.
If you are not a developer and just want to use Kepler to generate reports, follow these steps:
- Python 3.10 or newer: https://www.python.org/downloads/. IMPORTANT: On Windows, check "Add Python to PATH" during installation.
- Git: https://git-scm.com/downloads. Required for Kepler to read your commits.
Open a terminal (PowerShell or CMD on Windows) and run:
pip install git+https://github.com/Froggap/kepler-cli.gitKepler needs a Google Gemini API key to use the AI features:
- Obtain an API Key from Google AI Studio: https://aistudio.google.com/app/apikey.
- In your terminal run:
kepler config --set-key
- Paste your key when prompted (input is hidden for security).
To update Kepler without losing your configuration, run:
kepler updateIf the kepler command is not found after installation, the Python Scripts folder might not be in your system PATH.
- Solution: Locate where Python installed scripts (usually
C:\Users\YOUR_USER\AppData\Roaming\Python\Python3x\Scripts) and add that folder to your PATH environment variable.
If you work inside OneDrive, Dropbox, or Google Drive folders:
- File locking: These services can lock the
.docxfile while syncing, causing Kepler to fail saving the report. - Long paths: OneDrive can create very long paths that exceed Windows path limits (260 characters).
- Recommendation: Run Kepler on projects located in local paths such as
C:\Projects\my-repo.
Kepler stores your API key in the Windows Credential Manager so you don't need to re-enter it each time.
- If you get an error related to
keyringor backend issues, ensure you have the proper permissions or set the key directly in a local.envfile in the folder where you run the command:GEMINI_API_KEY=your_key_here
Kepler must be executed inside a Git repository. If the current folder does not contain a .git folder, the generate command will fail because there is no commit history to analyze.
If you want to contribute or customize the behavior:
git clone https://github.com/Froggap/kepler-cli.git
cd kepler-cli
python -m venv venv
# Windows:
.\venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
pip install -e .keplerThen use commands like:
cd your-project
generateYou can also run configuration directly:
kepler config --set-key
kepler config --output-path C:\Users\YourUser\Documents\ReportsGenerated artifacts:
commits.json
report_<month>_<year>.docxCurrent additions related to report generation:
config/config_impl.pyservice/word_service.py
If you want to remove local configuration and uninstall the package, you have two options:
- Use the interactive command inside the CLI:
kepler uninstallThis command offers options to remove the stored API key, the commits cache (~/.kepler/commits.json), generated reports and, optionally, run pip uninstall kepler-cli.
- Manual uninstall:
pip uninstall kepler-cli
# and, if you want to clear local configuration:
rm -rf ~/.keplerBe careful deleting ~/.kepler as it contains persistent settings and the commits cache.
- The CLI only executes safe read-only commands
- No source files are modified
- Works best inside a Git repository
- Multi-language support
- Better terminal UX (autocomplete, history)
- Switch AI models
- Generate and send reports by email
Built by Froggap ๐
MIT License ยฉ 2026 Froggap
Free to use, modify and distribute with attribution.
