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.1.tar.gz (13.8 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.1-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: commitflow-1.0.1.tar.gz
  • Upload date:
  • Size: 13.8 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.1.tar.gz
Algorithm Hash digest
SHA256 2080c42ceec663273477ba60141933b00a1c59ad604f50198b41404b235b5d00
MD5 9331b06d22111b232fbdc0b77fcd3415
BLAKE2b-256 5878d959b819b9e540b9672a547383b945e09c1561fbae5f8ffb94e33e09c322

See more details on using hashes here.

File details

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

File metadata

  • Download URL: commitflow-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 13cda6eb608eaebf1382a421b2a1e2dda11d4795e4a125b919e5e7e1134ab63b
MD5 20ab314b5c5337188088b28ae0b931cd
BLAKE2b-256 149d718b60b4106f47559e05af555727ec08f83cf867122c932cf44063b09808

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