Automatic GitHub commit bot that logs developer activity.
Project description
🚀 AutoCommitBot (v1.1.5)
Maintain a professional GitHub presence with AI-powered automation and built-in security.
AutoCommitBot is an intelligent, cross-platform CLI tool designed for developers who want to maintain a consistent contribution history without the manual overhead. It monitors your local repositories, generates meaningful commit messages using Google's Gemini AI, and manages the full Git lifecycle automatically.
🖥️ Preview
🌟 Why AutoCommitBot?
- AI Commit Messages — Generates meaningful, context-aware commits instead of generic updates
- Security (Secret Shield) — Prevents accidental exposure of sensitive files and credentials
- Natural Activity Mode — Simulates realistic developer commit patterns
- Backup & Restore — Enables complete rollback of local and remote states
- Automated Execution — Runs seamlessly in the background on system logon
✨ Features
Core Capabilities
- AI Commit Generation — Context-aware commit messages using Gemini with model fallback
- Security Layer (Secret Shield) — Automatic protection against sensitive file and credential exposure
- Scheduling Engine — Supports logon, fixed-time, and natural activity-based execution
- Backup & Restore — Pre-commit snapshots with full local and remote rollback capability
- Repository Management — GitHub repo discovery, selection, and automatic cloning
- Dashboard & Analytics — CLI-based insights into commit history and activity
- Execution Reliability — Built-in retry logic, conflict handling, and network checks
🔍 View Full Feature Breakdown
⚙️ Setup & Configuration
- GitHub Repository Discovery via API
- Interactive multi-select repo setup
- Base folder configuration
- Automatic cloning of missing repos
- Git authentication verification
- Backward navigation during setup
🕐 Scheduling System
- Logon trigger (Windows Task Scheduler)
- Fixed-time daily scheduling
- Randomized daily execution (9 AM – 11 PM)
- Natural Activity Mode (probabilistic commits with 48h enforcement)
- Runs with highest privileges
- Works on battery power
🔁 Commit Engine
- Smart change detection across repositories
- Commits real user changes with descriptive messages
- Generates fallback activity commits when idle
- Automatic pull → merge → push workflow
- Push retry logic on failure
🤖 AI Commit System
- Gemini AI integration for commit messages
- Model fallback chain: 2.5 Flash → 2.0 Flash → 1.5 Flash → Pro
- Diff truncation for large inputs (8000 chars)
💾 Backup & Restore
- ZIP snapshot before every commit
- Configurable backup retention (
config-backup) - Restore command with snapshot selection
- Automatic GitHub rollback via force push
📊 Dashboard & Management
- Dashboard with last 50 commits (rich table view)
- Commit classification (User vs Activity)
- Status command for tracked repos
- Add/remove repositories dynamically
- Persistent history tracking (500 entries)
- Clean uninstall command — removes scheduler task before uninstalling
🌐 Reliability Layer
- Internet availability check (retry up to 2 minutes)
- Automatic admin privilege escalation
- Resilient Git operations with fallback handling
⚙️ How It Works
- Detects changes in tracked repositories
- Syncs with remote using
git pull - Analyzes
git diffusing Gemini AI - Generates a contextual commit message
- Runs security checks (Secret Shield)
- Commits and pushes changes
- Stores a backup snapshot
All of this runs automatically in the background.
🚀 Getting Started
Prerequisites
- Python 3.8+
- Git installed and configured
- (Recommended) Gemini API Key → https://aistudio.google.com/app/apikey
📦 Installation
Option 1: From Source
git clone https://github.com/RohitKSahoo/auto-commit-bot.git
cd auto-commit-bot
pip install -e .
Option 2: Via pip (Recommended)
pip install autocommitbot
🛠️ Usage
| Command | What it does | When to use |
|---|---|---|
autocommit setup |
Launches interactive wizard to connect GitHub, select repos, and configure schedule | First-time setup or reconfiguration |
autocommit add [path] |
Adds a local Git repository to tracking (defaults to current folder) | When starting a new project you want automated |
autocommit run |
Manually scans repos, commits changes, and pushes to GitHub | Testing or forcing an immediate commit |
autocommit dashboard |
Displays last 50 commits with stats (user vs activity) | Monitoring activity and verifying behavior |
autocommit status |
Lists all tracked repositories and their state | Checking what the bot is managing |
autocommit enable |
Activates automation via scheduler (logon/time-based) | Turning on background automation |
autocommit disable |
Stops automation and removes scheduled task | Temporarily or permanently stopping the bot |
autocommit restore |
Restores a previous backup and force-pushes to GitHub | Rolling back unwanted changes or commits |
autocommit uninstall |
Removes the scheduler task and fully uninstalls the bot via pip | Cleanly removing AutoCommitBot from your system |
⚠️ Notes
- Automation runs only on tracked repositories
restoreperforms a force push (overwrites remote history)runis for manual triggering, not regular use- Internet connection required for full functionality
- Always use
autocommit uninstallinstead ofpip uninstalldirectly — running pip uninstall alone will leave an orphaned task in Windows Task Scheduler that silently fails on every trigger
🔐 Security Notes
- Your code is not stored externally (only analyzed for commit messages)
- Sensitive files are automatically excluded via
.gitignore restoreuses force push — use with caution
🆘 Support & Contributions
- Report issues: https://github.com/RohitKSahoo/auto-commit-bot/issues
- Contributions welcome (see
CONTRIBUTING.md) - Additional docs in
/docs
👤 Maintainer
Maintained by @RohitKSahoo
📄 License
Licensed under the MIT License. See LICENSE for details.
🧾 TL;DR
AutoCommitBot is not just automation— it’s a smart Git workflow layer with AI, security, and recovery built in.
Project details
Release history Release notifications | RSS feed
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 autocommitbot-1.1.6.tar.gz.
File metadata
- Download URL: autocommitbot-1.1.6.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63288e16d7ce675a3847720f34b0f51d1d5112f9731b28c76b6435754777200e
|
|
| MD5 |
12e1935fe2eb22aade211ba9d7a2d564
|
|
| BLAKE2b-256 |
032199c0e2b458c6ce60b8bb46a8893bb2fa8aac218eb7af883700e07aa97847
|
File details
Details for the file autocommitbot-1.1.6-py3-none-any.whl.
File metadata
- Download URL: autocommitbot-1.1.6-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e01cbf83b3affc8b7eb6bec5058401dbc4ca9b97bffa1264b161c432ee6505cf
|
|
| MD5 |
90ee52081b9b0dc200f37ec231eb27b9
|
|
| BLAKE2b-256 |
580bbf2699433f47cb7fdfe0e5610ec9ef4c153dd30daf1da85b449d1480f1d5
|