Autopilot commits across all your repos.
🌐 cryptopilot.dev/smartcommits
- Detects dirty repos across all projects under
$HOMEand/opt/ - Generates meaningful commit messages using local Ollama (llama3.1:8b) — no API costs
- Auto-creates GitHub repos for new projects and wires remotes with auth
- Skips clean repos — no empty commits, no noise
- Tags commit source — know if a commit came from Claude Code, Codex, cron, or manual
- Logs everything to JSONL for analytics
- Daily & weekly Telegram rollups — wake up to a summary of what shipped
- Telegram bot — trigger commits, check repo status, and register new projects from your phone
- Git hooks — even manual commits get logged to the system
- Auto preview screenshots — weekly cron retakes landing page screenshots, only commits if the page actually changed
- Smart exclusions — ignores backup dirs,
.codex/.tmp,node_modules, and other noise
┌─────────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Claude Code │ │ Codex │ │ Cron (2h) │ │ Telegram │
│ post-task hook │ │ post-task │ │ auto-sweep │ │ Bot cmds │
└────────┬────────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │ │
└──────────────────┼──────────────────┴──────────────────┘
│
┌────────▼────────┐
│ smart-commit │
│ engine │
└────────┬────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌──────▼──────┐ ┌───▼────┐ ┌──────▼──────┐
│ Ollama LLM │ │ Git │ │ Telegram │
│ commit msg │ │ commit │ │ rollup │
└─────────────┘ └────────┘ └─────────────┘
smart-commit discover # List all repos and their status
smart-commit status # System overview with commit counts
smart-commit all [source] # Commit all dirty repos
smart-commit commit [path] [source] [msg] # Commit specific repo
smart-commit rollup # Send daily Telegram summary
smart-commit weekly # Send weekly Telegram summaryThe bot runs as a systemd service (smartcommit-bot) and listens for commands 24/7.
| Command | Description |
|---|---|
/help |
Show all available commands |
/status |
Dirty/clean repo overview + today's commit count |
/discover |
Full repo list with per-repo change counts |
/all |
Commit all dirty repos immediately |
/commit <path> |
Commit a specific repo |
/rollup |
Send today's commit summary |
/weekly |
Send this week's commit summary |
/register <path> |
Track a repo outside $HOME / /opt/ |
/unregister <path> |
Stop tracking a manually registered repo |
/registered |
List manually registered repos |
| Source | When |
|---|---|
auto |
Cron job sweep (default) |
claude-code |
Claude Code task completion |
codex |
Codex task completion |
manual |
You ran it yourself or via Telegram bot |
direct |
Git hook caught a manual git commit |
# 1. Clone and run the installer
git clone https://github.com/CryptoPilot16/smartcommit /opt/smartcommit
bash /opt/smartcommit/install.sh
# 2. Edit env file with your credentials
nano /opt/smartcommit/.env
# TELEGRAM_BOT_TOKEN=
# TELEGRAM_CHAT_ID=
# GITHUB_TOKEN=
# GITHUB_USERNAME=
# OLLAMA_MODEL=llama3.1:8b
# 3. Start the Telegram bot
systemctl enable --now smartcommit-bot
# 4. Test
smart-commit discover
smart-commit status
smart-commit all| When | What |
|---|---|
| After every sweep (if commits made) | 🔄 X repos updated |
| When a new repo is auto-created | 🆕 New repo created on GitHub |
| 23:55 UTC daily | 📊 Daily commit rollup |
| Monday 08:00 UTC | 📅 Weekly commit rollup |
| When | What |
|---|---|
| Every hour | Wire new repos, create GitHub repos, embed auth |
| Every 2 hours | Auto-commit all dirty repos |
| 23:55 UTC daily | Daily Telegram rollup |
| Monday 08:00 UTC | Weekly Telegram rollup |
| Sunday 03:00 UTC | Retake landing page screenshots (if page changed) |
Smart-commit scans $HOME and /opt/ up to 4 levels deep for git repos. The following are automatically excluded:
.openclaw-backup/,.openclaw.pre-revert-*/— internal backups.codex/.tmp/— Codex temp workspacesnode_modules/— dependencies
For repos outside these paths, use /register <path> in Telegram or the projects.txt file.
- Ollama with
llama3.1:8b(or any model viaOLLAMA_MODEL) - GitHub personal access token with
reposcope - Telegram bot token + chat ID
