Thi Notes
AboutNotesBlogTopicsToolsReading
About|Sketches |Cooking |Cafe icon Support Thi
💫

Using AI Services & Tools & Vibe Coding

Using AI Services & Tools & Vibe Coding

Anh-Thi Dinh
API & Services
Tools
Vibe Coding
This notes is for using AI services and tools. For working with APIs, please refer this note.

Use which one for Coding?

  • Plan with Opus, review with Codex.
  • Implement with either Grok (extremely fast), GLM, Sonnet (and maybe Kimi K3) then review with Claude.
  • Small tasks with Grok / GLM / Sonnet / K3.

Using AI services for general purposes

This is based on my personal experience with each service at the time I tried it, so it may be outdated later. This list may also change significantly in the future.
  • Summarize YouTube videos: Notebook LM or ask Grok with a URL.
  • Get updated news (requires up-to-date information): Grok / Gemini / ChatGPT
  • Check references/sources: Perplexity then Grok / ChatGPT.
  • Translation: ChatGPT, or Grok.
  • Coding assistance: Claude / Codex, then Grok, then GLM / Kimi.
  • Record and summarize live meetings: use meetily for transcription, then summarize with Grok / ChatGPT.
  • Summarize Vietnamese books (outdated): ChatGPT
  • Voice Mode (for English speaking practice): ChatGPT
  • AI IDE: (Updated: whatever with Claude Code extension) Cursor, then VSCode.
  • Image / Video editing/generation: Grok Imagine (⭐)

Good to read

  • Anthropic Academy
  • Best practices for Claude Code
  • Goon's Solo Playbook | Substack (Vietnamese)
  • Claude Code builtin commands.

Tools

  • cc-lens — Local analytics dashboard for Claude Code. No cloud, no telemetry. Alternative: claude-devtools (it’s heavier when running)
  • CCS - Claude Code Switch — I use this to quickly switch between GLM in Claude and Claude itself.
  • Claude Design — Design tool from Anthropic. Offline alternative - Open Design (use your existing coding agent)
  • 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
  • CodexBar — Show usage stats for OpenAI Codex and Claude Code, without having to login. Alternative: Claude-Usage-Tracker (only Claude)
  • https://github.com/AlexsJones/llmfitllmfit — Hundreds of models & providers. One command to find what runs on your hardware.

CodexBar

  • OpenCode Go: login → go to usage page (where it shows 5-hour, weekly,…) → Dev Tool (Inspect Elements) → Network tab → filter with “go” → Header find “Cookie” and copy all auth=Fe26.... → Open CodexBar settings → OpenCode Go → Cookie source “Manual” → whatever label and paste the copied cookie there.
  • Cursor: login to the web dashboard

Skills & MCPs

  • ⭐ coding-friend plugin — a tool I build for disciplined engineering workflows
  • Use Codex as a reviewer, use codex-plugin-cc.
  • Vercel’s Skills, skillsmp, Cursor’s Directory
  • Some useful skills (some for quick checking): XcodeBuildMCP, mcp-server-tauri, ui-ux-pro-max-skill

Claude Code notes

  • Use old version of a model: /model claude-opus-4-8[1m]
  • In the Claude Code extension for VSCode/Cursor, long prompts can make the pinned prompt area cover the whole panel, hiding the response. Workaround: cancel the task after it starts, then enter ”Try again” or ”Continue.” The new prompt replaces the old one at the top, freeing space for the response.
  • Using /btw or /fork to ask about the current conversation but don’t want to dilute the current conversation.
  • Ask about Claude Code, ask claude-code-guide agent.
  • Use cmd+esc to automatically focus in the claude code input field in IDE.
  • Use opt+k on a selection to mention this in the Claude chat.
  • Prompt Repetition Improves Non-Reasoning LLMs (from Google)
  • To add MCP servers to different scopes (global, local, project), read this doc.
  • To fix warning “Warning: Running native installation but config install method is 'global’”, run claude install.
  • To use shift + enter, run /terminal-setup in claude. Note that, iTerms support shift+enter but Terminal.app support alt+enter instead.
  • 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.

CC extension in Cursor

  • In the new version of Cursor, there is an option called “Open chat as editor tabs”. If this option is enabled, we cannot show the Claude tab in the sidebar, so we should disable it.
    • Aug 7, 2026 New workaround: If “Claude Code: Open in Side bar” only shows Claude in the left sidebar while the right sidebar shows the history, let’s drag and drop Claude from the left sidebar to the vertical left sidebar (where the main icons are). Then right-click the new Claude icon there and choose move to the second sidebar.
  • When using the Claude Code extension with VSCode or Cursor, 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.
    • In case you use ESLint, create .vscode/settings.json in the root of the project and put
      • 1{
        2  "eslint.workingDirectories": [
        3    "child_folder_1",
        4    "child_folder_2"
        5  ]
        6}
  • Another idea: Using symlink (I tried on macOS)
    • 1# Create a new "parent" folder
      2mkdir parent/
      3
      4# Create symlinks
      5ln -s folder-1/ parent/folder-1
      6ln -s folder-2/ parent/folder-2
      7
      8# Then just open the folder parent in the cursor/vscode 
      9# and work on this folder
      1# Example
      2~/git/inbox-symlink-aio using ☁️ Azure subscription 1 via 🅒 base
      3➜ ln -s /Users/thi/git/ideta/ideta-cross-platform-lib ./ideta-lib

GLM with CC

  • 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.

Cursor things

  • Different from VSCode, all cmd+k is replaced by cmd+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.

GLM

  • Don’t use GLM with Cursor, it hits the limit error very quickly.
  • Using GLM inside ZCode is terrible: there are too many confirmations, and we cannot disable them, even if we set “Edit automatically” or “Full access,” use /goal, or set ignore in the settings. None of them works.
  • Use GLM with Claude Code instead. Use ccs for quickly switch between Claude (using GLM) with Claude itself.

OpenCode Go

  • Usage limits (how many requests per month and per week for each model)
  • Model endpoints and ids

Local AI

Using Ollama

  • Check the model list on the home page.
  • To download model (cannot do with the desktop app): ollama pull <model_name>
    • Models I use: qwen3:8b (for tasks need a quick response), qwen3-coder:30b (to use with claude code on my Mac M4), gpt-oss:20b (daily chat).
  • Run with API endpoints, check this official doc.
  • Ollama Cloud with Claude
    • 1ollama launch claude
      Don’t worry it will affect the current Claude profile, you can run claude normally. No need to use something like --restore in the case of Codex!
  • Ollama Cloud model with Codex
    • 1# active with codex app
      2ollama launch codex-app
      3
      4# restore to default
      5ollama launch codex-app --restore
      6
      7# active with codex cli
      8ollama launch codex
  • Ollama with Cursor
    • Enable “OpenAI API Key” and put your Ollama API Key here
    • Override OpenAI Base URL with https://ollama.com/v1
    • Add a new model with glm-5.2:cloud (the same model key as on ollama site)

Setting up LM Studio

⚠️
If you wanna use Claude Code with local AIs or enable web (more easily), use Ollama instead.
  • Download LM Studio (it’s better on macOS than ollama)
  • Need to enable server before using endpoints (⚠️ Make sure to enable CORS)
  • No need to load the model before using request to endpoints, it will be loaded automatically.
  • Example of curl
    • 1curl http://127.0.0.1:1234/v1/chat/completions \
      2  -H "Content-Type: application/json" \
      3  -d '{
      4    "model": "google/gemma-3-27b", // or: openai/gpt-oss-20b
      5    "messages": [ 
      6      { "role": "system", "content": "Always answer in rhymes." },
      7      { "role": "user", "content": "Introduce yourself." }
      8    ], 
      9    "temperature": 0.7, 
      10    "max_tokens": -1,
      11    "stream": true
      12  }'

Using Local Models with IDEs

  • Download LM Studio and download the coder models. Alternatively, you can use Ollama.
  • In your IDE (VSCode or Cursor), install the Continue extension.
  • In LM Studio, navigate to the Developer tab, select your downloaded model → Settings → enable "Serve on Local Network" → enable the server.
  • In your IDE, select the "Continue" tab on the left sidebar → Choose "Or, configure your own model" → "Click here to view more providers" (or select the Ollama icon tab if you're using Ollama) → in the provider list, select LM Studio → Set Model to "Autodetect" → Connect → a config file will open at ~/.continue/config.yaml, keep the default settings and save.
  • That's it!
  • As another option, you can use Granite.code (from IBM)

No need to remember commands using AI

I’m using Claude Code, if you use another Coding CLI service, modify the codes. Insert below codes in .bashrc or .zshrc and then source ~/.zshrc:
1claude_execute() {
2  emulate -L zsh
3  setopt NO_GLOB
4  local query="$*"
5  local prompt="You are a command line expert. The user wants to run a command but they don't know how. Here is what they asked: ${query}. Return ONLY the exact shell command needed. Do not prepend with an explanation, no markdown, no code blocks - just return the raw command you think will solve their query."
6  local cmd
7  # use Claude Code
8  cmd=$(claude --dangerously-skip-permissions --disallowedTools "Bash(*)" --model default -p "$prompt" --output-format text | tr -d '\000-\037' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
9  if [[ -z "$cmd" ]]; then
10    echo "claude_execute: No command found"
11    return 1
12  fi
13  echo -e "$ \033[0;36m$cmd\033[0m"
14  eval "$cmd"
15}
16alias ask="noglob claude_execute"
1# Usage
2ask "List all conda env in this computer"
In this post
◆Use which one for Coding?◆Using AI services for general purposes◆Good to read◆Tools○CodexBar◆Skills & MCPs◆Claude Code notes○CC extension in Cursor○GLM with CC◆Cursor things◆GLM◆OpenCode Go◆Local AI○Using Ollama○Setting up LM Studio○Using Local Models with IDEs