Skip to main content

Not now. Later.

Project description

gitlater

Not now. Later.

What is this?

gitlater is a small tool that helps you do things at the right time.

It started with git commits. Now it works anywhere — CLI, pre-commit, or inside your Python scripts.

It doesn’t optimize productivity. It protects your boundaries.

Why?

Sometimes the problem is not:

  • writing code
  • committing code
  • running scripts

But when you do it.

gitlater helps you say:

Not now. Later.”

Features

  • simple time-based commit guard
  • two modes:
    • personal → allow outside working hours
    • work → allow during working hours
  • weekend & holiday awareness
  • project-level configuration
  • zero external dependencies

Installation

Using uv (CLI tool)

uv tool install gitlater

Using uv (Python dependency)

uv add gitlater

Local development

uv sync
uv run gitlater status

Setup

Initialize in your project:

gitlater init

This creates:

.gitlater/
  config.toml
  holidays.txt

Configuration

.gitlater/config.toml

mode = "personal"

[work_hours]
start = 9
end = 18

.gitlater/holidays.txt

2026-01-01 # New Year
2026-08-17 # Independence Day

Pre-commit integration

Add to your local pre-commit config:

- repo: local
  hooks:
    - id: gitlater
      name: git later
      entry: gitlater check
      language: system
      stages: [pre-commit]
      pass_filenames: false

pass_filenames: false ensures the check runs once (not per file).

Usage

gitlater status

Example:

🌙 Not now — this time is yours.

🗓 Friday • 10:08
⏳ Next window: 18:00

Using in Python scripts

gitlater can also be used directly inside Python scripts.

Basic check

from gitlater import allow

if not allow():
    print("Skip execution")
    exit()

# run your logic
print("Running task...")

Get status message

from gitlater import status

allowed, message = status()

if not allowed:
    print(message)
else:
    print("Running task...")

Enforce (exit automatically)

from gitlater import guard

guard()

# only runs if allowed
print("Running task...")

Notes

  • Uses the same .gitlater/ configuration as the CLI
  • Behavior depends on the current working directory
  • No external dependencies required

Philosophy

gitlater is intentionally simple.

  • no remote API
  • no auto-detection
  • no global config

It doesn’t decide your schedule.

Roadmap

Keep it boring.

Future improvements (if needed):

  • better status output
  • small UX refinements
  • optional helpers (init, holidays)

License

MIT

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

gitlater-0.2.1.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

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

gitlater-0.2.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file gitlater-0.2.1.tar.gz.

File metadata

  • Download URL: gitlater-0.2.1.tar.gz
  • Upload date:
  • Size: 34.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.4.30

File hashes

Hashes for gitlater-0.2.1.tar.gz
Algorithm Hash digest
SHA256 3a63ac3886521ab25557eb58be922c2d5ecdcd11b0343306cb81ae0395828a61
MD5 ca4d00d1a064fbb9f86fd34bea769983
BLAKE2b-256 cc88b5e42970710309c1a3727cdfaebc90bf4b2ab59318a46ba2ce5a72534831

See more details on using hashes here.

File details

Details for the file gitlater-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: gitlater-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.4.30

File hashes

Hashes for gitlater-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 910583aa05507fc6649119255a0ad33cf27fbbc8ce57f0885f9443cd84b14b13
MD5 5383c38099286f923fbe9bca44eee9a0
BLAKE2b-256 1b7c7b3b9cbfce971b736297661e90e94a064223998e701cafa92bdf7ed1fca6

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