v23cc
v0.11.1
Published
A lightweight Claude Code workflow system by Tony Jin<[email protected]>
Maintainers
Readme
v23cc · 
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
Requirements
- 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)
Install
# 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.
Commands
| 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 |
Workflow
# 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"Direct shell usage
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.shAtlassian MCP (Jira & Confluence)
v23cc includes a local MCP server that integrates Jira and Confluence directly into Claude Code. No slash commands needed — just talk to Claude naturally.
Setup
Install and restart Claude Code:
npx v23cc@latest --global # Restart Claude Code to load the MCP serverConfigure 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.
Usage
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).
Jira tool parameters
| Parameter | Description | Default |
|---|---|---|
| query | Search text | required |
| project | Project key filter (e.g. CORE) | — |
| max | Max results | 20 |
| type | Issue type: Bug, Story, Task | — |
Confluence tool parameters
| 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.
Uninstall
npx v23cc@latest --global --uninstall
npx v23cc@latest --local --uninstallLegal
This 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.
License
MIT
