A set of Claude Code slash commands that offload repetitive tasks to a local LLM — no cloud API calls, no tokens spent on boilerplate.
Instead of asking Claude to summarize a video or draft a commit message (burning context and API quota), v23cc pipes the work to a locally running model (e.g. Gemma via mlx-lm). Claude stays focused on what it's good at; the local model handles the grunt work.
What's included:
/v23cc:model— manage which local model preset is active/v23cc:config— show config list/v23cc:youtube— fetch subtitles from a YouTube video and summarize them in any language/v23cc:commit— generate a git commit message from staged changes/v23cc:sync-docs— update README.md and CLAUDE.md using local LLM/v23cc:branch— create, switch, rename, track, or list git branches/v23cc:pr— generate a PR title and description from branch diff- Atlassian MCP — search Jira and Confluence directly in Claude Code via a local MCP server
- Node.js >= 18
- Python 3 — for the local LLM caller script (installed automatically to
~/.v23cc/) - Local LLM server — an OpenAI-compatible endpoint running locally (e.g. mlx-lm on port 9000)
- yt-dlp — required for
/v23cc:youtube(pip install yt-dlp) - gh — required for
/v23cc:pr(GitHub CLI)
# Interactive (prompts global or local)
npx v23cc@latest
# Global (works in all projects)
npx v23cc@latest --global
# Local (current project only)
npx v23cc@latest --local
# Custom namespace (commands become /wp:commit, /wp:pr, etc.)
npx v23cc@latest --local --namespace wpThe --namespace flag lets you rename the command prefix to anything you like. The internal tool home (~/.v23cc/) stays the same regardless of namespace. Re-installing with a different namespace automatically removes the old one.
Notes:
--localrequires a.claude/directory in the current directory. If one is not found, the install exits with an error — you are likely in the wrong directory, or should use--global.- Running
--localfrom$HOMEis also an error, since that path resolves to the same location as--global. - Multiple installs (e.g. one global, one or more local) are tracked in
~/.v23cc/config.json. Shared scripts and MCP files in~/.v23cc/are only removed when the last install scope is uninstalled.
| Command | Description |
|---|---|
/v23cc:model [list|use|add|remove] |
Manage local LLM model presets |
/v23cc:config |
Show config list |
/v23cc:youtube <URL> [--lang ko] [--percent 20] |
Summarize a YouTube video using local LLM |
/v23cc:commit [--max 72] [--no-prefix] [--only-msg] [--all] |
Generate and commit using local LLM |
/v23cc:sync-docs [--lines 100] [--keep "section name"] |
Update README.md and CLAUDE.md using local LLM |
/v23cc:branch [create|switch|rename|track|list|current] |
Create, switch, rename, track, or list git branches |
/v23cc:pr [--only-msg] |
Generate a PR title and description using the local LLM |
/v23cc:atlassian [init|status] |
Set up Jira & Confluence credentials |
/v23cc:jira <ISSUE-KEY> [--deep] [--note "..."] |
Analyze a Jira issue and suggest implementation approach |
# Add a local LLM model preset
/v23cc:model add gemma mlx-community/gemma-4-e4b-it-4bit 9000
# Switch active model
/v23cc:model use gemma
# Summarize a YouTube video in Korean (default)
/v23cc:youtube https://youtube.com/watch?v=...
# Summarize in English, shorter output
/v23cc:youtube https://youtube.com/watch?v=... --lang en --percent 10
# Generate and commit (conventional prefix style by default)
/v23cc:commit
# Commit without conventional prefix
/v23cc:commit --no-prefix
# Print message only, no commit
/v23cc:commit --only-msg
# Stage all files then commit
/v23cc:commit --all
# Update README.md and CLAUDE.md
/v23cc:sync-docs
# Create a new branch and switch to it
/v23cc:branch create feature/my-feature
# Rename current branch
/v23cc:branch rename feature/new-name
# Rename another branch
/v23cc:branch rename old-name new-name
# Track and checkout a remote branch (auto-detects remote)
/v23cc:branch track feature/my-feature
# Track a branch from a specific remote
/v23cc:branch track upstream/feature/my-feature
# Switch to an existing local branch
/v23cc:branch switch main
# List local branches
/v23cc:branch list
# List all branches including remotes
/v23cc:branch list --all
# Print current branch name
/v23cc:branch current
# Generate PR title and description
/v23cc:pr
# Print PR message only, no PR creation
/v23cc:pr --only-msg
# Analyze a Jira issue for implementation approach
/v23cc:jira WPN-123
# Deeper analysis with source snippets
/v23cc:jira WPN-123 --deep
# Add extra context (use @file for file content)
/v23cc:jira WPN-123 --note "related to WPN-100, must avoid breaking the auth flow"
When your Claude token budget is low, run the scripts directly:
# Manage model presets
bash ~/.v23cc/bin/model.sh list
bash ~/.v23cc/bin/model.sh use gemma
bash ~/.v23cc/bin/model.sh add gemma mlx-community/gemma-4-e4b-it-4bit 9000
bash ~/.v23cc/bin/model.sh remove gemma
# Summarize a YouTube video
bash ~/.v23cc/bin/youtube.sh https://youtube.com/watch?v=...
bash ~/.v23cc/bin/youtube.sh https://youtube.com/watch?v=... --lang en --percent 10
# Generate and commit
bash ~/.v23cc/bin/commit.sh
bash ~/.v23cc/bin/commit.sh --no-prefix
bash ~/.v23cc/bin/commit.sh --only-msg
bash ~/.v23cc/bin/commit.sh --all
# Update README.md and CLAUDE.md
bash ~/.v23cc/bin/sync-docs.sh
bash ~/.v23cc/bin/sync-docs.sh --lines 80 --keep "Architecture"
# Create, switch, rename, track, or list branches
bash ~/.v23cc/bin/branch.sh create feature/my-feature
bash ~/.v23cc/bin/branch.sh switch main
bash ~/.v23cc/bin/branch.sh rename new-name
bash ~/.v23cc/bin/branch.sh rename old-name new-name
bash ~/.v23cc/bin/branch.sh track feature/my-feature
bash ~/.v23cc/bin/branch.sh track upstream/feature/my-feature
bash ~/.v23cc/bin/branch.sh list
bash ~/.v23cc/bin/branch.sh list --all
bash ~/.v23cc/bin/branch.sh current
# Generate PR title/description
bash ~/.v23cc/bin/pr.sh
# Analyze a Jira issue
bash ~/.v23cc/bin/jira.sh WPN-123
bash ~/.v23cc/bin/jira.sh WPN-123 --deep
bash ~/.v23cc/bin/jira.sh WPN-123 --note "extra context here"
# Show config
bash ~/.v23cc/bin/config.shv23cc includes a local MCP server that integrates Jira and Confluence directly into Claude Code. No slash commands needed — just talk to Claude naturally.
-
Install and restart Claude Code:
npx v23cc@latest --global # Restart Claude Code to load the MCP server -
Configure your Atlassian credentials once:
/v23cc:atlassian initClaude will ask for your domain, email, and API token one at a time.
Generate an API token at id.atlassian.com/manage-profile/security/api-tokens.
Just ask Claude naturally — no commands to remember:
| What you say | What happens |
|---|---|
| "search jira for ocr" | Searches Jira, groups results by Bug/Story/Task, writes v23cc/jira/<timestamp>.md |
| "search jira for payment bugs in project CORE" | Filtered by project and type |
| "search confluence for deployment guide" | Fetches pages, summarizes each via local LLM, writes v23cc/confluence/<timestamp>.md |
Results are written as markdown files to v23cc/jira/ and v23cc/confluence/ in your project (git-ignored automatically).
| Parameter | Description | Default |
|---|---|---|
query |
Search text | required |
project |
Project key filter (e.g. CORE) |
— |
max |
Max results | 20 |
type |
Issue type: Bug, Story, Task |
— |
| Parameter | Description | Default |
|---|---|---|
query |
Search text | required |
space |
Space key filter | — |
max |
Max results | 10 |
Note: Confluence summaries require a local LLM server running (configured via
/v23cc:model). If no model is active, raw content is shown instead.
npx v23cc@latest --global --uninstall
npx v23cc@latest --local --uninstallThis tool uses yt-dlp to download subtitles from YouTube. Users are responsible for complying with YouTube's Terms of Service and applicable copyright laws in their jurisdiction.
MIT