Skip to main content

AI-powered Git commit message generator using Apple Intelligence

Project description

Git SmartCommit CLI

AI-powered Git commit generation running 100% locally on your Mac using Apple Intelligence.

SmartCommit is a lightweight CLI tool that analyzes your staged Git changes and generates concise, professional Conventional Commits (feat:, fix:, refactor:, etc.).

Because it runs completely on-device using the Apple Foundation Models SDK, it offers massive advantages over cloud-based AI tools:

  • Privacy-First: Your codebase never leaves your machine. Perfect for enterprise, proprietary, or sensitive code.
  • Zero API Costs: No OpenAI API keys or GitHub Copilot subscriptions required. It uses the AI already built into your Mac.
  • Fast: Powered natively by Apple Silicon neural engines for instant inference.

Prerequisites

Before installing, ensure your machine meets the hardware and software requirements for local Apple Intelligence:

  • Hardware: Apple Silicon Mac (M1 chip or newer).
  • OS: macOS 15.0 (Sequoia) or newer.
  • Settings: Apple Intelligence must be enabled on your Mac.

Installation

# 1. Download the latest release
curl -fsSL -o smartcommit https://github.com/brazill7/smart-commit/releases/latest/download/smartcommit

# 2. Make the file executable
chmod +x smartcommit

# 3. Clear the macOS Gatekeeper quarantine flag (required for unsigned binaries)
xattr -d com.apple.quarantine smartcommit

# 4. Move it to your local bin so it can be run from anywhere
sudo mv smartcommit /usr/local/bin/

### (Optional) Set up a Git Alias
If you want to use this tool natively within Git (e.g., typing `git sc` or `git smart-commit` etc. ), you can add a global alias:

git config --global alias.sc '!smartcommit'
git config --global alias.smart-commit '!smartcommit'

Usage

Make sure you have staged your changes (git add .) before running the tool.

Option A: Using the Standalone Command

If you skipped the alias step, you can just call the tool directly in your repository:

smartcommit

To provide custom context to the AI (like explaining why you made a change), use the -c flag:

smartcommit -c "race condition on the login screen"

Option B: Using the Git Alias

If you configured the git smart-commit alias, you can use it just like a native Git command:

git smart-commit

With custom context:

git smart-commit -c "refactored the login auth flow"

Example Output:

Analyzing diff... Suggested commit: fix: resolve race condition in login flow Accept this commit message? (y/n):

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

fm_smart_commit-1.1.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

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

fm_smart_commit-1.1.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file fm_smart_commit-1.1.0.tar.gz.

File metadata

  • Download URL: fm_smart_commit-1.1.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for fm_smart_commit-1.1.0.tar.gz
Algorithm Hash digest
SHA256 ed883bf7fe8d622cbe167c7eda870fb81792136a07fbc2ecb0b86911d2257588
MD5 81f78b2acaffc51f14c312bbb6b9602a
BLAKE2b-256 249509610028554f573a4292ed9bd33eceb77907ed74586ce3e0569e38273c7c

See more details on using hashes here.

File details

Details for the file fm_smart_commit-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fm_smart_commit-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9da5a082a16b4fdf570c83e17d83914dbc35ad5e0f39622e163e1dffac99cb45
MD5 f815548c1bb35dde46c94f48a1ff6137
BLAKE2b-256 2e07e52844fb650e18fb7de885d70ab6cddd7b070df19dcb0e02db4357b21fd5

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