A Cross-Platform Command-Line AI-tool for automating git commit messages by outsourcing them to LLMs. Supports multiple providers including OpenAI, Gemini, Anthropic, Groq, Grok, Kimi K2, Qwen, DeepSeek, Perplexity's Sonar, and Ollama.
brew install vibecheckcurl -fsSL https://install.raashed.xyz | bashiwr https://install.raashed.xyz/install.ps1 -useb | iexImportant : Make sure to run the command as an
administratorusing Powershell.
vibecheck commitNote : Make sure you stage your files, right before you check that it passes the vibecheck ;)
vibecheck dashboardDashboard : It keeps the tab of the commits you generated and money you saved with vibecheck
vibecheck keysKeys : It keeps your keys globally accessable to vibecheck, so that you always dont have to introduce a environmental variable
vibecheck modelsModels : You can switch the models for better latency and accuracy all along
flowchart TD
%% Nodes Styling
classDef user fill:#f9f,stroke:#333,stroke-width:2px,color:black;
classDef system fill:#e1f5fe,stroke:#0277bd,stroke-width:2px,color:black;
classDef external fill:#fff9c4,stroke:#fbc02d,stroke-width:2px,color:black;
classDef error fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:black;
Start([User Action]) --> InstallCheck{Is vibecheck installed?}
class Start user
%% Installation Branch
InstallCheck -- No --> OS{Select OS}
OS -- macOS/Linux --> Curl[Run curl command]
OS -- Windows --> PS[Run PowerShell as Admin]
OS -- macOS Brew --> Brew[Run brew install]
Curl & PS & Brew --> Config[Setup API Keys]
Config --> EnvVars[Export vars OR .env file]
Config --> KeysCmd[vibecheck keys]
KeysCmd --> KeysFile[Store in ~/.vibecheck_keys.json]
%% Main Execution
InstallCheck -- Yes --> Command{Run Command}
EnvVars -.-> Command
KeysFile -.-> Command
%% Branch: UPGRADE
Command -- "vibecheck upgrade" --> PermCheck{Protected Dir?}
PermCheck -- Yes --> Sudo[Auto-run with Sudo] --> UpdateBin[Download & Replace Binary]
PermCheck -- No --> UpdateBin
UpdateBin --> End([Done])
%% Branch: DASHBOARD/MODELS/KEYS
Command -- "vibecheck dashboard" --> ShowDash[Read Logs] --> DisplayStats[Show Commits & $$ Saved] --> End
Command -- "vibecheck models" --> ShowMods[List Supported Models] --> SwitchMod[Switch Model Preference] --> End
Command -- "vibecheck keys" --> KeysUI[Interactive Keys Manager] --> KeysList[List Providers with Status] --> KeysEdit[Add/Edit/Delete Keys] --> KeysSave[Save to ~/.vibecheck_keys.json] --> End
%% Branch: COMMIT (Core Feature)
Command -- "vibecheck commit" --> GitCheck{Files Staged?}
%% Git Check Logic
GitCheck -- No --> ErrStage[Error: Stage files first!]:::error
ErrStage --> End
GitCheck -- Yes --> KeyCheck{API Key Found?}
%% Key Lookup Priority
KeyCheck --> CheckEnv{Check .env file}
CheckEnv -- Found --> KeyFound[Use Key]
CheckEnv -- Not Found --> CheckExport{Check export vars}
CheckExport -- Found --> KeyFound
CheckExport -- Not Found --> CheckKeysFile{Check vibecheck keys}
CheckKeysFile -- Found --> KeyFound
CheckKeysFile -- Not Found --> ErrKey[Error: Missing API Key]:::error
ErrKey --> Config
KeyFound --> ProviderSelect{Provider Flag?}
%% Provider Logic
ProviderSelect -- Default --> DefModel[Default Model]
ProviderSelect -- "--provider X" --> SelectModel[Select Specific Provider]
subgraph AI_Providers [External AI Cloud / Local]
direction LR
OpenAI
Gemini
Anthropic
Groq
XAI_Grok
Kimi
Qwen
DeepSeek
Perplexity
Ollama_Local
end
class AI_Providers external
%% Context Injection
SelectModel & DefModel --> PromptCheck{Custom Prompt?}
PromptCheck -- Yes --> InjectContext[Inject User Context]
PromptCheck -- No --> GenPayload[Prepare Diff Payload]
InjectContext & GenPayload --> AI_Providers
%% Output
AI_Providers --> Response[Receive Generated Message]
Response --> Display[Output to Terminal]
Display --> SaveLog[Update Dashboard Stats]
SaveLog --> End
Set up your API keys as environment variables:
Skip: If you already have one of the API keys in your .env already, then it picks it up AUTOMATICALLY.
export OPENAI_API_KEY="your-openai-api-key"
export GEMINI_API_KEY="your-gemini-api-key"
export ANTHROPIC_API_KEY="your-anthropic-api-key"
export GROQ_API_KEY="your-groq-api-key"
export XAI_API_KEY="your-xai-api-key"
export MOONSHOT_API_KEY="your-moonshot-api-key"
export QWEN_API_KEY="your-qwen-api-key"
export DEEPSEEK_API_KEY="your-deepseek-api-key"
export PERPLEXITY_API_KEY="your-perplexity-api-key"
export OLLAMA_HOST="http://localhost:11434"vibecheck commit
vibecheck commit --provider openai # GPT-4o-mini
vibecheck commit --provider gemini # Gemini 2.5 Flash
vibecheck commit --provider anthropic # Claude 3.5 Haiku
vibecheck commit --provider groq # Llama 3.3 70B
vibecheck commit --provider grok # Grok Beta
vibecheck commit --provider kimi # Kimi K2 (Moonshot-v1-auto)
vibecheck commit --provider qwen # Qwen Turbo
vibecheck commit --provider deepseek # DeepSeek Chat
vibecheck commit --provider perplexity # Perplexity Sonar (sonar)
vibecheck commit --provider ollama # gpt-oss:20b (local)
vibecheck commit --prompt "make sure to use 02 emoji's in my commit message"
vibecheck commit --provider gemini --prompt "fixed bug in parser"
vibecheck --version
vibecheck --helpKeep vibecheck up to date with a single command:
vibecheck upgradeNote : If vibecheck is installed in a protected directory like
/usr/local/bin, the upgrade command will automatically re-run itself with sudo to complete the installation.
Obtaining API Credentials : A Contributor’s Guide to Access the Free-tier
gemini.mp4
perplexity.mp4
https://pkg.go.dev/github.com/rshdhere/vibecheck
https://app.codecov.io/gh/rshdhere/vibecheck
https://goreportcard.com/report/github.com/rshdhere/vibecheck




