🧠 AM I GOOD AT VIBE
AM I GOOD AT VIBE silently records every Claude Code / Codex / Gemini CLI / aider / Copilot CLI conversation you have in the integrated terminal, plus your code changes and prompt entries — then hands the log to your own local AI CLI to produce a witty, social-media-shareable analysis: a nickname, a spicy one-line roast, six competency scores, and concrete action items. 100% local. Your source code never leaves your machine. (audit the capture path → · audit the masking regex →) ⚠️ Beta status (v0.1.0) — testers wantedThis is the first public release. I (the author) have only been able to verify it on a single environment:
If you try it, please open an issue with what worked and what didn't — even a one-line "macOS, Claude Code, capture works ✅" is genuinely helpful. PRs for cross-platform fixes are especially welcome (see the Contributing section). ✨ Features
🚀 InstallThe marketplace listing isn't live yet. Until then: From a release
|
| Key | Default | Description |
|---|---|---|
amigoodatvibe.localCliTool |
claude |
Local AI CLI used for vibe analysis |
amigoodatvibe.outputLanguage |
auto |
auto / english / korean — forces nickname/roast language (only EN & KO are supported; everything else falls back to English) |
amigoodatvibe.autoCapture |
true |
Background auto-capture on/off |
amigoodatvibe.maskingEnabled |
true |
Real-time secret masking on/off |
amigoodatvibe.cliTimeoutMs |
120000 |
Analysis CLI execution timeout (ms) |
amigoodatvibe.captureCodeChanges |
true |
Capture code-change metadata |
amigoodatvibe.logRotateBytes |
1048576 |
Log rotation threshold (bytes) |
🧩 Supported AI CLIs
| Tool | Command pattern examples | Verified? |
|---|---|---|
| Claude Code | claude "...", claude -p "...", claude (REPL) |
✅ |
| OpenAI Codex CLI | codex chat "...", codex exec "..." |
❓ |
| Google Gemini CLI | gemini chat "...", gemini "..." |
❓ |
| aider | aider --message "..." |
❓ |
| Amazon Q | q chat "..." |
❓ |
| GitHub Copilot CLI | gh copilot suggest "...", gh copilot explain "..." |
❓ |
| Sourcegraph Cody | cody chat "..." |
❓ |
| Cursor Agent | cursor-agent "..." |
❓ |
Adding a new tool is usually a one-line addition to AI_CLI_PATTERNS in src/util.ts.
🛠 Troubleshooting
No activity in the sidebar?
- Run
AM I GOOD AT VIBE: 🩺 Run Capture Diagnosticsfrom the command palette. Check that Shell Integration is reported asON. - Make sure you're using VS Code's built-in integrated terminal — external terminals (Terminal.app, iTerm, Warp) aren't visible to VS Code.
- A small dot next to the terminal prompt = Shell Integration is active. If absent, set
terminal.integrated.shellIntegration.enabled: true. - Still nothing? Open the + New Terminal dropdown and pick AM I GOOD AT VIBE Capture — that profile captures 100% of stdio without needing Shell Integration.
"Local CLI not found"?
The amigoodatvibe.localCliTool setting (default claude) must resolve in the same $PATH that your VS Code-spawned shell sees. Check which claude (or your configured CLI) inside the VS Code integrated terminal.
No Claude Code history imported by Analyze?
The extension reads ~/.claude/projects/<workspace-hash>/*.jsonl. If Claude Code is installed but the directory doesn't exist for your workspace, you haven't used Claude Code in that project yet — capture will start working from your next claude invocation. The vibe analysis still runs on whatever was captured.
Analyze reports "could not find a JSON object"?
The local CLI returned prose instead of pure JSON. Open View → Output → AM I GOOD AT VIBE to see the raw CLI output. Most often this means the system prompt got truncated or the CLI is at a model version that ignores the JSON-only directive; try a stricter CLI flag or a different model.
📐 Analysis output schema
The local CLI must respond with a single valid JSON object matching:
{
"nickname": "Claude-Whisperer Black Belt",
"one_line_pack": "Catches Claude's bugs like a sniper, never reads their own diff.",
"overall_score": 82,
"summary": "Solid prompting habits with one glaring security gap.",
"competency_scores": {
"prompt_quality": 85,
"context_setting": 72,
"iteration_efficiency": 78,
"security_awareness": 55,
"code_review_habit": 88,
"tool_diversity": 70
},
"strengths": [{ "title": "...", "evidence": "..." }],
"improvements": [{ "title": "...", "evidence": "...", "actionable": "..." }],
"action_items": ["...", "..."],
"recommended_next_actions": ["...", "..."]
}
🌐 Language adaptive:
nickname,one_line_pack,summary, and all evidence strings come out in either English or Korean — picked from the majority language of your user prompts. Sparse / mixed / other-language logs fall back to English.
Full system instruction lives in src/prompt.ts.
🐞 Known limitations
- macOS-only verified — see Beta status above.
- Windows IDE-cache import is disabled — the SQLite import path shells out to the system
sqlite3CLI; Windows ships without it, so that command becomes a no-op. Terminal capture is unaffected. - Interactive REPLs need Shell Integration — without it, REPL turn-by-turn parsing degrades to best-effort line classification.
- The opt-in 100% Capture Terminal isn't a real PTY — raw TUI apps (the
claudeREPL with full-screen UI, vim, etc.) won't render correctly inside it. Use it for one-shot commands. - External terminals (Terminal.app, iTerm, Warp) aren't captured — they're outside VS Code's process tree.
🧪 Testing
npm test # → 100 unit tests for pure helpers + prompt builder + extension cache reader
Tests cover everything that doesn't depend on the vscode module. UI/webview/capture changes need a manual repro inside the Extension Development Host (F5).
🤝 Contributing
This is a v0.1 release with one tester (me, on one machine). Help is wanted on:
- Cross-platform verification (Windows, Linux) — install, run, file an issue with results.
- End-to-end testing of CLIs other than Claude Code (Codex, Gemini, aider, q chat, gh copilot, cody, cursor-agent).
- Adding new AI CLIs — usually a one-line addition to
AI_CLI_PATTERNSin src/util.ts. - Code review of src/extension.ts and the capture paths (this is being open-sourced for the first time — fresh eyes very welcome).
See CONTRIBUTING.md for the full guide, including the local-first invariant every PR must preserve.
⭐ Support
If AM I GOOD AT VIBE gave you a good chuckle, please drop a star — it's the only signal the project optimizes for. 👉 github.com/mykim-aus/AM-I-GOOD-AT-VIBE
📄 License
MIT — see LICENSE.