Skip to content

Repository files navigation

GhostCommit // Auto-Commit Workflow Scheduler

GhostCommit is an offline-first, browser-local dashboard designed to programmatically schedule and manage dynamic activity logs pushing to a target GitHub repository. It acts as a visual interface for generating and automatically deploying realistic, scattered commit workflows powered by GitHub Actions.

With zero server-side storage, GhostCommit ensures full data privacy: your Personal Access Token (PAT) and repository details are kept exclusively in your browser's local storage.


🚀 Key Features

  • Offline-First & Local-Only: Credentials are saved strictly within browser localStorage. No keys are sent to third-party database servers.
  • Realistic Scattering (0–90m Delay): Commits do not fire exactly on the hour. The workflow automatically introduces an active, randomized delay of up to 90 minutes inside the runner, mimicking organic human activity.
  • Custom Active Hours Window: Define precisely what hours of the day (e.g., 9:00 AM - 11:00 PM) you want commits to occur, matching your typical waking/work schedules.
  • Automatic Multi-Slot Cron Calculation: Generates multiple optimized daily Cron trigger schedules dynamically distributed across your active window.
  • Dynamic Heatmap Preview: Live visualization of your target repository's current contribution graph and recent commit logs using the official GitHub REST API.
  • Seamless Automation: Generate and push the .github/workflows/auto-commit.yml file directly into your repository with one click.

🛠️ Step-by-Step Guide for New Users

Follow these steps to set up GhostCommit and activate your auto-commit engine:

1. Prerequisites (GitHub PAT Setup)

  1. Go to your GitHub Personal Access Tokens Settings.
  2. Click Generate new token (classic).
  3. Name it (e.g., GhostCommit Token) and check the repo scope (required to allow pushing workflow modifications and commits).
  4. Copy the generated token immediately and save it somewhere secure.

2. Configure GitHub Repository Secrets (CRITICAL)

For the GitHub Actions scheduler to push commits back to your repository, you must add your Personal Access Token as an encrypted secret:

  1. Open your target GitHub repository in a browser.
  2. Navigate to Settings > Secrets and variables > Actions.
  3. Click New repository secret.
  4. Set Name to: AUTO_COMMIT_PAT
  5. Paste your Personal Access Token (from Step 1) as the Value.
  6. Click Add secret.

3. Clone and Run this Dashboard Locally

If you want to run the GhostCommit dashboard interface on your local machine:

  1. Clone the repository:

    git clone https://github.com/your-username/ghostcommit.git
    cd ghostcommit
  2. Install the dependencies:

    npm install
  3. Start the development server:

    npm run dev
  4. Access the application: Open http://localhost:3000 in your web browser.


💻 Dashboard Configuration

Once the dashboard is open:

  1. Enter your PAT: Paste the Personal Access Token you created.
  2. Enter your Repository: Input your target repo name (e.g., username/repository-name).
  3. Choose Commits per Day: Select how many daily commits you would like the scheduler to create.
  4. Set Timezone & Active Window: Choose Local/UTC timezone and customize the start/end hours.
  5. Generate & Deploy: Click Generate & Deploy Workflow to push the automated workflow file directly to .github/workflows/auto-commit.yml in your target repository.

📝 Technical Stack

  • Framework: Next.js 15+ (App Router, React 19)
  • Styling: Tailwind CSS v4 (configured with professional GitHub Dark Mode styles)
  • Animations: Motion (formerly Framer Motion)
  • Icons: Lucide React
  • Hosting Compatibility: Fully compatible with Cloud Run, Vercel, static exports, or standard Node containers.

📁 Project Structure

├── app/
│   ├── globals.css      # Custom Tailwind imports
│   ├── layout.tsx       # Root layout configuration with Inter & JetBrains Mono
│   └── page.tsx         # Dashboard engine containing configuration form, heatmap, and workflow generator
├── lib/
│   └── utils.ts         # Tailwind merger utilities
├── package.json         # Package manifest & run scripts
├── tsconfig.json        # TypeScript configuration
└── tailwind.config.ts   # Tailwind configuration

🛡️ License

This project is open-source. Feel free to fork, customize, and extend its behavior to suit your developer habits!

About

⚡ Automatically commit to GitHub every day at random times to keep your contribution graph green. Free forever, no server needed, 2 minute setup.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages