Git It
AI-powered, local-first Git automation for VS Code. Git It watches your workspace for changes and produces clean, Conventional Commit-style commit messages, with optional auto-commit and auto-push flows. Everything stays on your machine: only commit data leaves it (to the Git remote you already use and, only in AI mode, to the Groq API).
Features
- Per-workspace enablement — Git It is off for every folder by default. You opt in per workspace.
- Three automation modes
review (default) — when changes settle, Git It generates a commit message and opens a review panel. You review/edit, then Commit, Commit & Push, or Cancel.
autoCommit — commits automatically after changes settle; pushing is manual.
autoSync — commits and pushes automatically after changes settle.
- AI-generated commit messages via the Groq API (Llama/Mixtral models), producing Conventional Commit-style messages (
feat:, fix:, etc.).
- Secret scanning — Git It refuses to auto-commit sensitive changes (
.env*, key/cert files, tokens, passwords, etc.); it warns you instead and lets you review first.
- Duplicate prevention — it never commits the same workspace state twice, so auto-commit won't loop.
- Status bar + control panel — a live status indicator and a Git It view in the Activity Bar. The sidebar shows the git tree (every changed file with its status letter), commit stats (commits committed vs. left to commit, ahead/behind your upstream), branch, remote, and quick actions.
Requirements
- VS Code 1.93.0 or newer
- Git installed and on your
PATH
- A Groq API key only if you want AI commit messages
- Git credentials for push authentication (Git It runs
git with prompts disabled; configure your credential helper or SSH keys in advance)
Installation
You can install Git It from the VS Code Marketplace/Extension view, or package it yourself:
npm install
npm run compile
npx vsce package
code --install-extension gitit-0.0.1.vsix
First-time setup
- Open the folder you want to automate.
- Open Git It in the Activity Bar (or run
Git It: Enable for Workspace). Enable the workspace.
- If you want AI messages, paste your Groq API key when prompted. The key is stored in VS Code's SecretStorage — never in files or settings.
- Pick a mode (
gitit.mode):
review — suggested; you approve every commit.
autoCommit — commits on its own; you push when ready.
autoSync — fully hands-off.
Commands
| Command |
Description |
Git It: Enable for Workspace |
Enable Git It for the current folder |
Git It: Disable for Workspace |
Disable Git It for the current folder |
Git It: Commit Now |
Process pending changes immediately in the current mode |
Git It: Commit and Push |
Commit and push pending changes (review mode) |
Git It: Generate Commit Message |
Generate a message for the current diff and copy it |
Git It: View Pending Changes |
Inspect working-tree changes (sensitive files flagged) |
Git It: Sync Now |
Push the current branch to its remote |
Git It: Pause / Git It: Resume |
Temporarily pause or resume automation |
Git It: Open Settings |
Open Git It settings |
Git It: Set Groq API Key |
Set/update the Groq API key (stored in VS Code SecretStorage) |
Settings
| Setting |
Default |
Scope |
Description |
gitit.mode |
"review" |
folder |
review, autoCommit, or autoSync |
gitit.delayPreset |
"30s" |
folder |
Idle delay preset: 30s, 1m, 2m, 5m, 10m, or custom |
gitit.delayMs |
30000 |
folder |
Custom delay in ms when preset is custom (min 5000) |
gitit.autoPush |
false |
folder |
Push after committing in autoCommit mode |
gitit.useAiCommits |
true |
folder |
Generate commit messages with Groq |
gitit.groqModel |
"llama-3.3-70b-versatile" |
folder |
Groq model to use |
gitit.commitStyle |
"minimal" |
folder |
minimal (subject only) or detailed (subject + body) |
gitit.maxDiffSize |
30000 |
folder |
Max diff characters sent to Groq |
gitit.secretScanning |
true |
folder |
Block auto-commit when sensitive files/secrets are found |
gitit.requireReview |
false |
folder |
Always require review confirmation, even in automation modes |
gitit.globalEnabled |
true |
machine |
Global kill switch for all workspaces |
gitit.enabled |
false |
folder |
Whether Git It is enabled here (managed by the extension) |
Enablement is stored per workspace. It is intentionally not synced across machines or shared with the team.
Privacy & security
- Git It runs entirely locally; your code and diffs are never sent anywhere by default.
- In AI mode, only the current diff is sent to the Groq API to generate a message. It does not send file contents beyond the diff, other files, or your Git history.
- Your Groq API key is stored via VS Code SecretStorage.
- Auto-commit is blocked when the diff contains sensitive file paths or secret-looking values. Such changes are only committed if you review and explicitly confirm them.
- Git It disables Git's interactive auth prompt (
GIT_TERMINAL_PROMPT=0), so automated operations never hang on a password dialog. Push requires pre-configured credentials.
How it works
- Git It tracks working-tree changes in your enabled workspace.
- When changes have been quiet for the configured delay, it snapshots the change state and checks the commit fingerprint.
- In
review mode it generates a message and opens the review panel.
- In
autoCommit/autoSync mode it commits (and pushes in autoSync) automatically, always passing the secret scan.
Troubleshooting
Git It: an automatic operation failed — open the output channel, select Git It, and scroll to the error. The error handler is invoked for any callback failure.
- Nothing happens after making changes — confirm the workspace shows ON in the status bar and the folder is enabled in the Git It view.
- Push fails with auth errors — Git It runs non-interactively. Configure a credential helper (
git config --global credential.helper manager on Windows, or use an SSH remote) and test git push from a terminal first.
- Status bar says OFF — either the workspace is disabled or the global kill switch (
gitit.globalEnabled) is off.
Development
npm install
npm run compile # tsc → out/
npm test # compile tests → run node:test on out-test/
npm run lint # eslint on src/
npm run watch # incremental tsc
Run the extension locally with F5 (.vscode/launch.json configures an Extension Development Host).
License
MIT — see the LICENSE file in the repository root.
| |