This note covers Vibe Coding—using AI agents like Claude Code to write code. For general AI service usage, see this note. For API comparisons, check this note.
I mainly use Claude Code in Cursor. This note covers everything about Cursor, Antigravity, Claude Code, and other tools—but focuses primarily on Claude Code.
- Maketplace for Skills: Vercel’s Skills, skillsmp
- Skill_Seekers — Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection
- MCP marketplace: Cursor’s, modelcontextprotocol/servers
- ⭐ coding-friend plugin — a tool I build for disciplined engineering workflows
- ⭐ AI Sync — a tool I build to sync AI configs across all my machines
- Claude-Usage-Tracker — If you have multiple Claude accounts, this tool tracks each account's usage and displays stats in the menubar. Note that it doesn't track usage per conversation. To see tokens used in each conversation, use sniffly instead.
- sniffly — Claude Code dashboard with usage stats, error analysis, and sharable feature. Use this to know which prompt uses how many tokens.
- claude-mem: A Claude Code plugin that automatically captures everything Claude does during your coding sessions, compresses it with AI (using Claude's agent-sdk), and injects relevant context back into future sessions.
⚠️ Be careful when working with Xcode projects. Claude-mem creates multiple
CLAUDE.md files in subfolders, causing Xcode to fail builds due to duplicate file errors. You'll need to manually ignore these files (which is tedious) for the project to build successfully. I don't use this tool in Xcode projects.- CLIProxyAPI — Wrap Gemini CLI, Antigravity, ChatGPT Codex, Claude Code, Qwen Code, iFlow as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini 2.5 Pro, GPT 5, Claude, Qwen model through API
- spec-kit — An open source toolkit that allows you to focus on product scenarios and predictable outcomes instead of vibe coding every piece from scratch.
- Alternative to (and compatible with) Claude Code: Z.ai's GLM Coding, which is much cheaper.
- claude-devtools — A desktop app that reconstructs exactly what Claude Code did — every file path, every tool call, every token — from the raw session logs already on your machine.
- Claude Code: Best practices for agentic coding | Anthropic
- Skill authoring best practices | Anthropic
- Connect browser to Claude Code (even with CC extension in VSCode)
- Install Claude Code in Chrome extension first (works with both Chrome and Brave)
- Try first with CC in terminal →
claude --chrome→@chrome, you will see - In CC extension, type
@browser(then space, then enter) to enter "Browser connected" mode. Next, try "Open google.com in the browser." Your browser will show a prompt to name the browser, or it may open a new group called "Claude (MCP)" that CC can control.
- Plugin things
- Disable a plugin:
claude plugin disable coding-friend - List all plugins:
claude plugin list - Install plugins in different scopes (user, project, local, managed)
- In case a plugin is installed globally and you wanna disable it in a specific project, add following to
<project>/.claude/settings.jsonorsettings.local.json
1{
2 "enabledPlugins": {
3 "swift-lsp@claude-plugins-official": false
4 }
5}- Use
cmd+escto automatically focus in the claude code input field in IDE.
- Use
opt+kon a selection to mention this in the Claude chat.
- When using the Claude Code extension, organize multiple folders under a single parent folder and create your project from that parent—rather than importing separate folders into one VSCode project. This makes it easier to reference files and folders in Claude Code.
- Use local models with Claude Code → Ollama
- Always look for
llms.txtof a site. This doc is LLM friendly for AI services. For example AI SDK’s llms.txt
- 💡Prompt Repetition Improves Non-Reasoning LLMs (from Google)
- Use Apple’s Icon Composer to generate a icon package for applications. This will export an
.iconfile that you can drag and drop into XCode project.
In order to convert this to a
.png file, use below command1/Applications/Xcode.app/Contents/Applications/Icon\ Composer.app/Contents/Executables/ictool your_app.icon --export-preview macOS Light 1024 1024 1 your_app.png- To add MCP servers to different scopes (global, local, project), read this doc.
- Let CC answer in your language (but it still use English for task), set this in the
~/.claude/settings.json
1{
2 "language": "vietnamese",
3 "permissions": {}
4}- To fix warning “Warning: Running native installation but config install method is 'global’”, run
claude install.
- To update CC, run
claude update, check the version withclaude --version.
- To use
shift + enter, run/terminal-setupin claude. Note that, iTerms supportshift+enterbut Terminal.app supportalt+enterinstead.
- When coding CLI with Claude, if you want to add something to
CLAUDE.md, just add#before what you want to say, e.g.# Response in Vietnamese every question.
- Using multiple Claude Code accounts?
- In CLI, there are 2 ways:
- Use
/logoutand then/login. It will generate a new token each time. - Use this script to quickly switch between accounts.
- In CC VSCode extension, there are 2 ways to switch:
- Switch in the CLI first, then reload the window to update the account in CC extension. Remark: you may see a wrong account when using
/usagein CC extension. - Type
/loginand login with the account you want. This won’t affect the one in the CLI. - We can use
/resumeto continue a conversation where it stopped.
- Using GLM with Claude Code?
- Check the official guide but it’s not enough.
- CCS - Claude Code Switch — Instant switch between Claude Subscription profile and GLM Coding Plan profile with one command.
- To make GLM work with the latest VSCode extension: open the terminal, switch to GLM with
vb_glm, then open the current folder usingcursor .orcode .. - Test the Claude Code extension by asking: "Who r u? Which model r u?" (you may need to ask several times until you see an answer containing "glm-4.6")
- ⭐ Another way: Open IDE Settings → search for "Claude Code" → Click to open the
settings.jsonfile and add the following:
1"claude-code.environmentVariables": [
2 {
3 "name": "ANTHROPIC_AUTH_TOKEN",
4 "value": "xxx"
5 },
6 {
7 "name": "ANTHROPIC_BASE_URL",
8 "value": "https://api.z.ai/api/anthropic"
9 },
10 {
11 "name": "ANTHROPIC_DEFAULT_OPUS_MODEL",
12 "value": "glm-4.6"
13 },
14 {
15 "name": "ANTHROPIC_DEFAULT_SONNET_MODEL",
16 "value": "glm-4.6"
17 },
18 {
19 "name": "ANTHROPIC_DEFAULT_HAIKU_MODEL",
20 "value": "glm-4.5-air"
21 }
22],
23"claude-code.selectedModel": "opus"Then reload the current IDE windows.
⚠️ Note that "default" for "selectedModel" will not work! You can also type
/model and then select "opus".- Play a sound after task completion: This method works with both Claude Code CLI and the latest Claude Code extension in IDE.
- Create or update
~/.claude/settings.jsonwith the following hook: - Create a script
~/.claude/scripts/notify-end.shwith following content: - Then run
chmod +x ~/.claude/scripts/notify-end.sh - Restart your Claude Code (both CLI or extension) to see the result!
1{
2 "hooks": {
3 "Stop": [{
4 "matcher": "",
5 "hooks": [{
6 "type": "command",
7 "command": "bash ~/.claude/scripts/notify-end.sh"
8 }]
9 }]
10 }
11}1#!/bin/bash
2# macOS
3# osascript -e 'display notification "Task completed" with title "Claude Code" sound name "Glass"'
4
5# Or just play a custom sound file
6afplay /System/Library/Sounds/Glass.aiff- Different from VSCode, all
cmd+kis replaced bycmd+r!
- If you prefer a vertical activity bar like VSCode’s (for search, extensions, and other icons) instead of the horizontal layout, navigate to Settings → Workbench → Activity Bar → Orientation and change it there.