Skip to content

Latest commit

 

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

GhostCommit fills your GitHub contribution graph with backdated commits, randomly distributed across any time range you choose — years, months, weeks, days, or a single specific date. Built to be minimal, stable, and safe to run for hundreds of commits at once without crashing.


Preview

      ________  ___ ___ ________    ____________________
     /  _____/ /   |   \_____  \  /   _____/\__    ___/
    /   \  ___/    ~    \/   |   \ \_____  \   |    |
    \    \_\  \    Y    /    |    \/        \  |    |
     \______  /\___|_  /\_______  /_______  /  |____|
            \/       \/         \/        \/
                          COMMIT

  Author   :  @MatrixTM26
  Version  :  3.0

  1 ─ Commit by Years
  2 ─ Commit by Month
  3 ─ Commit by Week
  4 ─ Commit by Day
  5 ─ Commit on Specific Date
  0 ─ Exit

  :: Option > 5
  ~[Date YYYY-MM-DD] > 2024-03-15
  ~[Commit Count] > 200

  Mode: Specific Date (2024-03-15, 200 commits)

  [████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒]  20.0% (40/200)

Modes

Option Mode Input Description
1 Commit by Years Years count Spreads commits randomly across the last N years
2 Commit by Month Month count Spreads commits randomly across the last N months
3 Commit by Week Week count Spreads commits randomly across the last N weeks
4 Commit by Day Day count Spreads commits randomly across the last N days
5 Specific Date YYYY-MM-DD Spreads commits across the full 24 hours of a single date

Specific Date validates the input automatically — invalid formats, non-existent dates (e.g. Feb 30), and future dates are all rejected with a re-prompt until a valid date is entered.


Requirements

Git installed and configured with user name and email
Node.js version 18 or higher
A remote repository with push access

Installation

git clone https://github.com/MatrixTM26/GhostCommit.git
cd GhostCommit
npm init -y

Open package.json and set:

"type": "module"

Usage

node GhostCommit.js

GhostCommit will prompt you to choose a mode, enter the range or date, and the number of commits. It then generates all commits with backdated timestamps, displays a live progress bar, and pushes everything once it finishes.


Configuration

Open GhostCommit.js and edit the Config object at the top of the file:

const Config = {
    TotalCommits: 1000,
    DataFile: "./data.json",
    RetryAttempts: 3,
    PushAfterAll: true
};
Key Default Description
TotalCommits 1000 Default commit count shown as fallback when input is empty
DataFile ./data.json File that gets modified and staged on each commit
RetryAttempts 3 How many times to retry a failed commit before skipping
PushAfterAll true Push all commits to remote at the end in one go

Project Structure

GhostCommit/
├── GhostCommit.js   — main script
├── data.json        — auto-generated, committed each run
├── package.json
└── README.md

Changelog

v3.0

  • Added Commit by Week mode
  • Added Commit by Day mode
  • Added Commit on Specific Date mode with full input validation
  • Refactored menu dispatch to handler map — no more if-else chains
  • Each mode isolated into its own handler function

v2.0

  • Added Commit by Month mode
  • Live progress bar with percentage and counter
  • Retry mechanism per commit
  • Auto push after all commits finish

© Copyright 2023-2026 @MatrixTM26  ·  All rights reserved.
Licensed under   AGPL-V3

About

Automation tool built for auto commit and fill your GitHub contribution graph. Schedule commits silently and keep your activity consistent.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

44 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages