https://github.com/jsveron23/v23cc
A set of Claude Code slash commands that offload repetitive tasks to a local LLM
https://github.com/jsveron23/v23cc
claude-code
Last synced: 2 months ago
JSON representation
A set of Claude Code slash commands that offload repetitive tasks to a local LLM
- Host: GitHub
- URL: https://github.com/jsveron23/v23cc
- Owner: jsveron23
- License: mit
- Created: 2026-04-14T14:39:09.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-17T08:31:59.000Z (2 months ago)
- Last Synced: 2026-04-18T08:03:12.917Z (2 months ago)
- Topics: claude-code
- Language: JavaScript
- Homepage:
- Size: 96.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# v23cc · [](https://www.npmjs.com/package/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](https://github.com/ml-explore/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](https://github.com/ml-explore/mlx-lm) on port 9000)
- **yt-dlp** — required for `/v23cc:youtube` (`pip install yt-dlp`)
- **gh** — required for `/v23cc:pr` ([GitHub CLI](https://cli.github.com/))
## Install
```bash
# 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 wp
```
The `--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:**
- `--local` requires 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 `--local` from `$HOME` is 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 [--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 [--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:
```bash
# 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.sh
```
## Atlassian 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
1. Install and restart Claude Code:
```bash
npx v23cc@latest --global
# Restart Claude Code to load the MCP server
```
2. Configure your Atlassian credentials once:
```
/v23cc:atlassian init
```
Claude 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](https://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/.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/.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
```bash
npx v23cc@latest --global --uninstall
npx v23cc@latest --local --uninstall
```
## Legal
This tool uses [yt-dlp](https://github.com/yt-dlp/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