docs

AICommit Documentation

A drop-in replacement for git that tracks your AI-assisted development and builds a verified portfolio.

# 1. Installation

AICommit works on macOS, Linux, and Windows. See the Download page for all options.

macOS / Linux (one-liner)

terminal
curl -fsSL https://aicommit.vercel.app/install.sh | bash

Auto-detects OS and architecture, downloads the standalone binary (no Node.js needed), and optionally aliases git → aicommit.

macOS (Homebrew)

terminal
brew tap pandey019/aicommit
brew install aicommit

Windows (PowerShell)

terminal
irm https://aicommit.vercel.app/install.ps1 | iex

Uses winget, Chocolatey, or Scoop to install git and Node.js if missing.

Windows (Scoop)

terminal
scoop bucket add aicommit https://github.com/pandey019/aicommit-
scoop install aicommit

npm (any OS with Node.js 18+)

terminal
npm install -g @aicommit/cli

Local Source (Development)

terminal
# From the monorepo root:
bash install.sh --local
 
# Or point to a specific path:
bash install.sh --source=/path/to/aicommit

Builds the CLI from source and links it globally via npm link. Useful for local development.

Uninstall

terminal
# npm
npm unlink -g @aicommit/cli
 
# Standalone binary
sudo rm /usr/local/bin/aicommit
 
# Homebrew
brew uninstall aicommit
 
# Windows (Scoop)
scoop uninstall aicommit

# 2. Getting Started

AICommit replaces git entirely. Use aicommit for every git command — it does everything git does, plus tracks your AI prompts automatically.

terminal
# Initialize a new repo (works like git init + aicommit tracking)
aicommit init
 
# Or clone an existing repo
aicommit clone https://github.com/user/repo.git
 
# Connect to the platform
aicommit login
 
# Code with AI tools — the proxy captures everything
# Then commit and push like normal
aicommit add .
aicommit commit -m "feat: add auth"
aicommit push

aicommit commit runs git commit, then auto-matches prompts to the commit and syncs to the platform.
aicommit push runs git push, then syncs encrypted prompts to your portfolio.

Local Storage Structure

terminal
.aicommit/
├── config.json # Auth, platform, privacy defaults
├── config.yml # Human-readable config
├── history.db # SQLite — prompts, responses, matching
└── hooks/ # Git hook scripts (post-commit, pre-push, post-checkout)

# 3. Git Wrapper

AICommit is a complete git wrapper. Every git command works — you never need to type git again.

Passthrough Commands

These commands pass directly through to git with no extra behavior:

terminal
aicommit add . # git add
aicommit diff # git diff
aicommit stash # git stash
aicommit fetch --all # git fetch
aicommit pull # git pull
aicommit merge main # git merge
aicommit rebase -i HEAD~3 # git rebase
aicommit reset --soft HEAD~1 # git reset
aicommit revert abc123 # git revert
aicommit cherry-pick abc123 # git cherry-pick
aicommit blame file.ts # git blame
aicommit remote -v # git remote
aicommit checkout -b feature # git checkout
aicommit switch main # git switch
aicommit branch -a # git branch
aicommit config user.name "Name" # git config
aicommit clone <url> # git clone

Enhanced Commands

These commands do git operations plus AICommit tracking:

CommandDescription
aicommit initgit init + aicommit tracking setup + git hooks
aicommit commit -m "msg"git commit + match prompts + auto-sync to platform
aicommit commit -a -m "msg"Stage all + commit + match + sync (all git flags work)
aicommit pushgit push + sync prompts to platform
aicommit push --no-gitOnly sync prompts (skip git push)
aicommit push --no-platformOnly git push (skip prompt sync)
aicommit commit --no-syncOnly git commit (skip AICommit tracking)

Dual-Purpose Commands

Some commands have both a git and AICommit meaning. Use the git- prefix for the git version:

CommandDescription
aicommit logAICommit prompt history
aicommit git-loggit log (commit history)
aicommit tag <id> <tag>Tag an AICommit prompt
aicommit git-taggit tag (create/list git tags)
aicommit statusAICommit tracking status
aicommit git-statusgit status (working tree status)

Git Alias (Optional)

The installer offers to alias git → aicommit so even git commit goes through AICommit:

terminal
# bash / zsh
alias git='aicommit'
 
# fish
alias git aicommit
 
# PowerShell
Set-Alias -Name git -Value aicommit -Scope Global

# 4. CLI Commands Reference

Setup & Auth

CommandDescription
aicommit loginAuthenticate with a CLI token (generated from dashboard)
aicommit login --token <token>Headless / CI authentication
aicommit initgit init + tracking setup + git hooks
aicommit init --privateInitialize with all prompts set to private
aicommit init --bareCreate a bare git repository
aicommit statusShow tracking status, branch stats, last sync
aicommit status --jsonOutput status as JSON (for scripts/hooks)

Tracking & History

CommandDescription
aicommit prompt "text" --model=copilotLog a prompt manually
aicommit logView all prompts (paginated, color-coded)
aicommit log --last 20Show last 20 prompts
aicommit log --model claudeFilter by AI model name
aicommit log --branch feature-xFilter prompts by git branch
aicommit log --since 2dPrompts from the last 2 days
aicommit show <commit-sha>Show prompts matched to a specific commit
aicommit show HEADPrompts matched to the latest commit
aicommit branchesList all branches with prompt/commit counts
aicommit tag <id> <tag>Add a tag to a prompt
aicommit note <id> "text"Add a note to a prompt

Commit, Push & Sync

CommandDescription
aicommit commit -m "msg"git commit + match prompts + auto-sync
aicommit pushgit push + sync prompts to platform
aicommit push --dry-runPreview what will be synced
aicommit push --reviewInteractively approve each prompt
aicommit push --branch mainPush only prompts from a specific branch
aicommit syncRe-match unmatched prompts to commits
aicommit sync --forceFull re-run of matching on all prompts

Privacy & Visibility

CommandDescription
aicommit privacyInteractive privacy manager — scan for secrets
aicommit redact <id>Redact sensitive content from a prompt
aicommit set-public <id>Make a prompt publicly visible
aicommit set-private <id>Make a prompt private

Security & Certificates

CommandDescription
aicommit setup-certsGenerate local CA certificates for HTTPS proxy interception
aicommit push --skip-scanSkip secret scanning before sync

# 5. Proxy Interceptor

The local proxy runs on localhost:7331 and transparently captures AI API calls from any tool that makes HTTP requests. It works with direct API calls and IDE integrations alike.

Supported Integrations

API / Direct

  • OpenAI API
  • Anthropic API
  • Google Gemini API
  • Groq / Together / Fireworks
  • Ollama (local)
  • LM Studio (local)

IDE / Tool

  • GitHub Copilot (LSP hook)
  • Cursor IDE (proxy setting)
  • Windsurf / Codeium
  • Aider (chat history file)
  • Continue.dev (config hook)
  • VS Code Extension

Each intercepted request is parsed by a provider-specific handler that extracts the prompt text, response, model name, temperature, and token usage. Data is stored locally in .aicommit/history.db.

# 6. Prompt-to-Commit Matching

AICommit uses a weighted scoring algorithm to link prompts to git commits. Matching runs automatically on aicommit commit, or manually with aicommit sync.

Signal Weights

File Overlap30%

Files open at prompt time match files changed in commit

Branch Match20%

Prompt and commit are on the same git branch

Temporal Proximity20%

Prompt within 90 minutes before commit

Keyword Match15%

Prompt words appear in commit message or diff

Code Similarity10%

AI response code appears (fuzzy) in git diff

Session Continuity5%

Same session as a previously matched prompt

Confidence Levels

≥ 80%
HIGH — auto-matched
50–79%
MEDIUM — dev confirms
< 50%
Review Queue

# 7. Branch-Aware Tracking

AICommit tracks which git branch each prompt and commit belongs to. When you switch branches, the post-checkout hook records the change. All filtering supports branch context.

CLI Branch Features

terminal
# List all branches with stats
aicommit branches
 
# Filter prompt log by branch
aicommit log --branch feature-auth
 
# Push only prompts from a branch
aicommit push --branch feature-auth
 
# Switch branches (git passthrough)
aicommit checkout feature-auth
aicommit switch main

How It Works

  • Post-commit hook records the current branch with each commit
  • Post-checkout hook writes the active branch to .aicommit/.current-branch
  • Proxy interceptor tags each captured prompt with the current branch
  • Matching algorithm uses branch match as a 20% weighted signal

# 8. Privacy & Redaction

AICommit has three layers of privacy protection. Your data stays on your machine until you decide to share it.

Local-First

All data stored in .aicommit/history.db on your machine. Nothing transmitted until aicommit push.

Encrypted

AES-256 encryption at rest. TLS 1.3 for all data in transit to the platform.

Granular Visibility

Each prompt can be Public, Private, or Redacted. You control what the world sees.

Auto-Redaction Engine

The redaction engine scans prompts for sensitive content before push:

  • API keys and tokens (AWS, OpenAI, Stripe, etc.)
  • Passwords and secrets
  • PII — emails, phone numbers, addresses
  • IP addresses and internal URLs
  • SQL literals and connection strings

Redaction is advisory — it warns and asks for confirmation, never silently alters your data.

# 9. Authentication

AICommit uses token-based authentication. No passwords are stored on your machine.

Setup

terminal
# 1. Log in to the web platform
# 2. Go to your profile → CLI Tokens tab → Generate
# 3. Copy the token (shown once)
 
# Interactive login
aicommit login
 
# Headless / CI login
aicommit login --token <your-token>

Token Management

From the dashboard, you can:

  • Generate tokens with custom names and expiry (30/60/90/180/365 days)
  • View active tokens with last-used timestamps
  • Revoke tokens instantly

Tokens are SHA-256 hashed before storage — the platform never stores your raw token.

# 10. Web Dashboard

Your profile page at aicommit.vercel.app/username is your dashboard. When logged in, you see the full dashboard experience — when others visit, they see your public profile.

Dashboard Features (Owner View)

📊
Quick Stats
Total prompts, projects, commits tracked, and models used at a glance.
📁
Project Cards
Each project shows model attribution, prompt/commit counts, repo link, visibility badge, and AI score.
💬
Recent Prompts
Latest prompts with model badges, confidence indicators, relative timestamps, and linked commits.
📈
Activity Graph
Heatmap showing your AI-assisted coding activity over the last 12 weeks.
🤖
Model Chart
Breakdown of which AI models you use and how often.
🔑
CLI Tokens
Generate, view, and revoke CLI authentication tokens (via nav tab).
📥
Repo Import
Import repos from GitHub, GitLab, or Bitbucket (via nav tab).
🔒
Private Prompts
Only you can see private prompts and private projects on your profile.

Navigation

When logged in, the nav bar shows: Overview, CLI Tokens, Settings, Import Repo. The old /dashboard URL redirects to /username automatically.

# 11. Public Profiles

Every developer gets a profile at aicommit.vercel.app/username. It works like GitHub — your profile is both your public page and your dashboard.

Owner vs Visitor View

CommandDescription
Owner (logged in)Sees nav tabs (Tokens, Settings, Import), CLI setup guide, private prompts, quick links
VisitorSees public projects, public prompts, stats, activity graph, model chart

Profile Includes

👤
Profile Header
Display name, headline, bio, GitHub link, CLI verified badge.
📁
Project Portfolio
Projects with model attribution, AI scores, repo links, visibility badges (🌐/🔒).
📜
Prompt Timeline
Prompts with model badges, confidence scores, relative timestamps ("2h ago"), commit links.
📊
Stats & Activity
Activity heatmap, model chart, total prompts/projects/commits/models.

Project Detail Pages

Click any project to open aicommit.vercel.app/username/project showing:

  • Model attribution bar with percentage breakdowns
  • AI Score (computed from prompt + commit activity)
  • Full prompt timeline with branch filtering
  • Visibility badge (🌐 Public / 🔒 Private)
  • Clickable repo link (GitHub / GitLab / Bitbucket)
  • Project info sidebar with stats

# 12. Repo Import

Import public repositories from GitHub, GitLab, or Bitbucket directly from the dashboard.

terminal
# From the dashboard:
# 1. Go to Dashboard → Import Repo
# 2. Paste the repo URL (e.g., github.com/user/repo)
# 3. Platform is auto-detected from URL
# 4. Click Import — commits and metadata are fetched
 
# Supported platforms:
# - GitHub (api.github.com)
# - GitLab (gitlab.com/api/v4)
# - Bitbucket (api.bitbucket.org/2.0)

# 13. AI Workflow Builder

Document your AI-assisted development processes as step-by-step workflows. Share them with the community or keep them private.

Workflow Steps

Each workflow is a sequence of steps with:

  • Title and description
  • AI tool/model used
  • Prompt template or example
  • Expected output or outcome
  • Tips and notes

# 14. Secret Scanning

Before syncing prompts to the platform, AICommit scans for secrets using Shannon entropy analysis and known secret patterns.

What It Detects

  • High-entropy strings (Shannon entropy > 4.5 for strings > 20 chars)
  • AWS access keys and secret keys
  • GitHub / GitLab / Bitbucket tokens
  • Private key headers (RSA, EC, etc.)
  • JWT tokens and database connection strings
  • OpenAI, Anthropic, Stripe API keys

Behavior on Push

When secrets are found, you get three options:

CommandDescription
Redact allAuto-redact flagged secrets and continue push
Skip flaggedSkip prompts with secrets, sync the rest
AbortCancel the push entirely
terminal
# Skip secret scanning for trusted workflows
aicommit push --skip-scan

In CI/headless mode (no TTY), secrets are auto-redacted by default.

# 15. .aicommitignore

Exclude files from proxy tracking with a .aicommitignore file in your repo root. Uses gitignore-compatible glob syntax.

Default Patterns

terminal
# Created by aicommit init
.env*
*.pem
*.key
*secret*
*.credentials
.aicommit/

How It Works

When the proxy intercepts an AI API call, it checks the active_files context. If any file matches an ignore pattern, the entire prompt is discarded and not stored in the local database.

Supports *, **, ! negation, and # comments.

# 16. Certificate Management

For HTTPS-only AI APIs, AICommit can generate local CA certificates for proxy interception.

terminal
aicommit setup-certs

What It Does

  • Generates a CA root certificate and private key in ~/.aicommit/certs/
  • Checks for existing certs before overwriting
  • Shows platform-specific trust instructions (macOS Keychain, Linux ca-certificates, Windows Certificate Store)

If certs are missing when the proxy starts, it falls back to HTTP-only mode with a warning.

# 17. CI / Headless Mode

AICommit works in CI pipelines and automated scripts. When no TTY is detected, interactive prompts are skipped and safe defaults are applied.

Setup

terminal
# Generate a CLI token from Dashboard → CLI Tokens
# Then in your CI pipeline:
aicommit login --token $AICOMMIT_TOKEN
aicommit push --skip-scan

Headless Behavior

CommandDescription
Secret scanningAuto-redacts flagged secrets (no interactive prompt)
Push --reviewSkipped in headless mode (all prompts synced)
Token authCLI tokens (act_...) work without browser OAuth

# 18. MCP Server (IDE Integration)

AICommit includes a built-in MCP (Model Context Protocol) server that integrates with IDEs like Cursor, Windsurf, and VS Code. It exposes tools that allow AI agents to log prompts directly into your local history.

Setup

terminal
# During aicommit init, MCP config is auto-generated
aicommit init
 
# Or set up MCP manually
aicommit mcp
 
# Start the MCP server standalone
aicommit mcp --start

Exposed Tools

CommandDescription
log_promptLog a prompt with model name, text, response, temperature, active files, and branch
get_session_infoGet current session ID, project directory, branch, and prompt count

IDE Configuration

The MCP config is written to .cursor/mcp.json (for Cursor) during aicommit init. For other IDEs, add the server config manually:

terminal
{
"mcpServers": {
"aicommit": {
"command": "/path/to/node",
"args": ["/path/to/aicommit/cli/dist/index.js", "mcp", "--start"]
}
}
}

The MCP server uses the absolute path to your Node.js binary to avoid PATH issues in IDE environments.

# 19. Settings & GDPR

Manage your data usage preferences and exercise your right to data erasure from the dashboard.

Data Usage Toggle

Under Dashboard → Settings, toggle "Allow anonymized prompts for platform-wide trend analysis". Default is OFF. When off, your prompts are excluded from all aggregation and analytics.

Delete Project Data (GDPR)

On any project settings page, use "Delete Forever" to permanently remove all prompts, commits, links, and project metadata. Requires typing the project name to confirm. Deletion is logged in the audit trail.

Contribution Heatmap

Public profiles show a contribution heatmap with daily activity counts. For private repos, only the date and count are shown — no prompt text, repo names, or file names are revealed.

# 20. API Reference

The platform exposes REST API routes. Authenticated routes accept either a session cookie or a CLI token via Authorization: Bearer <token> header.

Endpoints

CommandDescription
POST /api/authLogin with username/password, returns session cookie
POST /api/auth/registerCreate a new account
GET /api/auth/sessionCheck current session status
GET /api/auth/meGet authenticated user (supports JWT + CLI token)
POST /api/syncPush prompts, commits, links from CLI (supports JWT + CLI token)
GET /api/branchesList branches with stats for authenticated user
GET /api/profilesList all developer profiles
GET /api/profiles/:usernameGet a specific developer profile
GET /api/projectsList projects for authenticated user
POST /api/importImport a public repo from GitHub/GitLab/Bitbucket
GET /api/search?q=...Search developers by name, model, or keyword
GET /api/tokensList CLI tokens for authenticated user
POST /api/tokensGenerate a new CLI token
DELETE /api/tokensRevoke a CLI token
GET /api/settingsGet user settings (analytics toggle)
PATCH /api/settingsUpdate user settings
DELETE /api/projects/:idGDPR delete — permanently remove project and all data
GET /api/heatmap/:usernameContribution heatmap data (daily activity counts)
POST /api/hooks/githubGitHub webhook receiver
POST /api/hooks/gitlabGitLab webhook receiver
POST /api/hooks/bitbucketBitbucket webhook receiver

Sync Payload (CLI Push)

terminal
POST /api/sync
Authorization: Bearer <cli-token>
Content-Type: application/json
 
{
"prompts": [{ id, session_id, model_name, prompt_text, ... }],
"commits": [{ id, sha, message, files_changed, branch, ... }],
"links": [{ prompt_id, commit_id, confidence_score, ... }],
"repo_name": "my-project",
"repo_url": "https://github.com/user/repo",
"git_platform": "github"
}

# 21. Plans & Pricing

Free
$0
  • 5 projects
  • 10 prompts
  • 1 workflow
  • Basic repo import
  • Public profile
Pro
$9/mo
  • Unlimited projects
  • Unlimited prompts
  • Unlimited workflows
  • Analytics dashboard
  • Verified badge
  • Priority search
Team
$29/mo
  • Everything in Pro
  • Team dashboard
  • Org analytics
  • Shared workflows
  • API access

# 22. Troubleshooting

aicommit status shows 0 prompts

The proxy interceptor must be running to capture AI API calls. Check:

  • Run aicommit proxy to start the proxy on localhost:7331
  • Ensure your AI tool is configured to use the proxy (HTTP_PROXY=http://localhost:7331)
  • For Cursor/VS Code, check that the MCP server is enabled in IDE settings
  • Verify .aicommit/ directory exists in your project (run aicommit init if not)

MCP server shows as disabled in Cursor

  • Open Cursor Settings → MCP and manually enable the aicommit server
  • Check .cursor/mcp.json exists and has the correct node path
  • Re-run aicommit init to regenerate the MCP config with the correct absolute node path
  • Restart Cursor after enabling the MCP server

MCP server works but 0 prompts tracked

MCP tool usage is soft enforcement — the IDE agent may not automatically call log_prompt on every interaction. This is a known limitation.

  • Add a .cursorrules file instructing the agent to call log_prompt after every response
  • Use the proxy interceptor as the primary capture method instead of MCP
  • Log prompts manually with aicommit prompt "text" --model=cursor

aicommit push fails with 'Not logged in'

  • Run aicommit login and enter your CLI token
  • Generate a token from your profile → CLI Tokens tab
  • Check ~/.aicommit/config.json has a valid token

aicommit push --no-git for branches without upstream

If your branch has no upstream remote, aicommit push will fail on the git push step. Use:

terminal
# Sync prompts to platform without git push
aicommit push --no-git
 
# Or set upstream first
aicommit push -u origin feature-branch

Private repo prompts not visible on profile

Private repo prompts are synced with private visibility by default. They are only visible when you are logged in and viewing your own profile. Visitors cannot see them.

  • Log in to see your private prompts at aicommit.vercel.app/username
  • Use aicommit set-public <id> to make individual prompts public

Project page shows 404

Project names that contain slashes (e.g., org/repo) are URL-encoded. If you get a 404:

  • Click the project from your profile page — the link is auto-encoded correctly
  • If typing manually, use %2F instead of / in the project name

Proxy not capturing HTTPS API calls

  • Run aicommit setup-certs to generate local CA certificates
  • Trust the CA cert in your OS keychain (instructions shown after setup)
  • Set NODE_EXTRA_CA_CERTS=~/.aicommit/certs/ca.pem for Node.js tools
  • Without certs, the proxy falls back to HTTP-only mode

Secret scanner false positives

  • Use aicommit push --skip-scan to bypass scanning for trusted workflows
  • Choose "Skip flagged" during interactive push to skip only flagged prompts
  • The scanner uses Shannon entropy (>4.5) — long random strings may trigger it

Database locked or corrupted

  • Close all aicommit processes and IDE instances
  • Delete .aicommit/history.db-wal and .aicommit/history.db-shm (WAL files)
  • If still broken, back up and delete .aicommit/history.db, then re-run aicommit init

Complete reset

terminal
# Remove all local AICommit data for a project
rm -rf .aicommit/
rm -rf .cursor/mcp.json
 
# Re-initialize
aicommit init
aicommit login
Built for developers who build with AI. — AICommit