Skip to main content

CLI tool for maintaining consistent Git commits automatically

Project description

CommitFlow

Python License Tests

CommitFlow is a lightweight command-line tool that helps developers maintain consistent Git commits automatically without interrupting their workflow . It provides a simple interface to commit progress, automate daily commits and keep your GitHub contribution graph active while you focus on actual development.

Why CommitFlow?

CommitFlow is built to simplify a common developer habit: committing progress regularly.

Developers often forget to commit progress regularly while working across multiple projects. CommitFlow simplifies this by providing a clean command-line workflow that helps automate and manage daily commits. It is designed to be simple, practical and useful for everyday development workflows.

If this tool helps your workflow, feel free to star the repository ! It means a lot !!

Features

  • Automatic repository detection
  • Commit preview before committing
  • Interactive commit workflow
  • Quick commit mode for frequent commits
  • Automatic daily commits (Scheduled runs)
  • Windows Task Scheduler support
  • Linux cron support
  • Configuration file support
  • Logging system
  • Cross-platform terminal color support

Installation

Install CommitFlow directly from PyPI:

pip install commitflow

Verify installation:

commitflow --version

Quick Start

Run CommitFlow in interactive mode. This mode guides you through the commit process step by step.

commitflow

You will be prompted for:

  • repository path
  • files to add
  • commit message
  • push confirmation

CommitFlow shows a preview before committing.

CLI Commands

Interactive Mode (Default)

Run the standard interactive workflow:

commitflow

Quick Mode

Use repository settings from your configuration file.

commitflow --quick

Quick mode skips repository selection and speeds up the commit process.

Auto Mode

Fully automatic commit process:

commitflow --auto

This mode:

  • adds files automatically
  • commits with a default message
  • optionally pushes to remote

Auto mode is mainly used by schedulers.

Setup Wizard

Run the configuration wizard:

commitflow --setup

The setup wizard asks for:

  • repository path
  • automatic push preference
  • default commit message
  • daily schedule time

It can also configure the system scheduler automatically.

Scheduler Setup

Create an automated daily commit task:

commitflow --schedule

CommitFlow supports:

  • Windows Task Scheduler
  • Linux/macOS cron

Scheduler settings such as power conditions and retry behavior can be customized during setup.

Example Workflow

Typical setup:

commitflow --setup

After configuration, CommitFlow can run automatic commits daily.

Manual commits can also be executed anytime:

commitflow --quick

Configuration File

CommitFlow stores configuration in:

~/.commitflow_config.json

Example configuration:

{
  "repo": "/projects/my-project",
  "auto_push": true,
  "auto_add": ".",
  "commit_message": "daily progress update"
}

Logs

CommitFlow keeps logs for debugging and activity tracking. Default log location:

~/.commitflow.log

Log entries include:

  • commit operations
  • warnings
  • errors
  • scheduler events

Supported Platforms

  • Windows
  • Linux

Contributing

Contributions are welcome. If you would like to improve CommitFlow:

  • Fork the repository
  • Create a feature branch
  • Submit a pull request

Bug reports and feature suggestions are appreciated.

License

This project is licensed under the MIT License.

Author

Abhinav Kumar Singh

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

commitflow-1.0.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

commitflow-1.0.0-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file commitflow-1.0.0.tar.gz.

File metadata

  • Download URL: commitflow-1.0.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for commitflow-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5bfb802fe4575d29e20ccb8affccb7667252992ab7b92c85dbc29f3f77513619
MD5 43996d5f5b03763aa5bcc7b927b05e07
BLAKE2b-256 d529bbac2498307b0a1f5d9b115ed7c7b2e8ba5c1ddfd86f14609cd5f44c8e47

See more details on using hashes here.

File details

Details for the file commitflow-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: commitflow-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for commitflow-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 666bb82aa4d57eaa4041178a0886ac480259f3370f2110e3df99eed9100fe348
MD5 61652da056293adcb20bfa4ea17fdcb6
BLAKE2b-256 674dd7f6a43ca0e82253cbebfb5beb721e2ca644c4c880f99874d174a1c305e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page