{"id":48925845,"url":"https://github.com/jsveron23/v23cc","last_synced_at":"2026-04-21T11:00:56.100Z","repository":{"id":351358781,"uuid":"1210565993","full_name":"jsveron23/v23cc","owner":"jsveron23","description":"A set of Claude Code slash commands that offload repetitive tasks to a local LLM","archived":false,"fork":false,"pushed_at":"2026-04-17T08:31:59.000Z","size":99,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-18T08:03:12.917Z","etag":null,"topics":["claude-code"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsveron23.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-14T14:39:09.000Z","updated_at":"2026-04-17T08:31:28.000Z","dependencies_parsed_at":"2026-04-18T08:00:46.179Z","dependency_job_id":null,"html_url":"https://github.com/jsveron23/v23cc","commit_stats":null,"previous_names":["jsveron23/v23cc"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/jsveron23/v23cc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsveron23%2Fv23cc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsveron23%2Fv23cc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsveron23%2Fv23cc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsveron23%2Fv23cc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsveron23","download_url":"https://codeload.github.com/jsveron23/v23cc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsveron23%2Fv23cc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32000740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code"],"created_at":"2026-04-17T07:00:19.532Z","updated_at":"2026-04-19T09:00:25.293Z","avatar_url":"https://github.com/jsveron23.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# v23cc \u0026middot; [![npm](https://img.shields.io/npm/v/v23cc)](https://www.npmjs.com/package/v23cc)\n\nA set of Claude Code slash commands that offload repetitive tasks to a local LLM — no cloud API calls, no tokens spent on boilerplate.\n\nInstead 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.\n\n**What's included:**\n\n- `/v23cc:model` — manage which local model preset is active\n- `/v23cc:config` — show config list\n- `/v23cc:youtube` — fetch subtitles from a YouTube video and summarize them in any language\n- `/v23cc:commit` — generate a git commit message from staged changes\n- `/v23cc:sync-docs` — update README.md and CLAUDE.md using local LLM\n- `/v23cc:branch` — create, switch, rename, track, or list git branches\n- `/v23cc:pr` — generate a PR title and description from branch diff\n- **Atlassian MCP** — search Jira and Confluence directly in Claude Code via a local MCP server\n\n## Requirements\n\n- **Node.js** \u003e= 18\n- **Python 3** — for the local LLM caller script (installed automatically to `~/.v23cc/`)\n- **Local LLM server** — an OpenAI-compatible endpoint running locally (e.g. [mlx-lm](https://github.com/ml-explore/mlx-lm) on port 9000)\n- **yt-dlp** — required for `/v23cc:youtube` (`pip install yt-dlp`)\n- **gh** — required for `/v23cc:pr` ([GitHub CLI](https://cli.github.com/))\n\n## Install\n\n```bash\n# Interactive (prompts global or local)\nnpx v23cc@latest\n\n# Global (works in all projects)\nnpx v23cc@latest --global\n\n# Local (current project only)\nnpx v23cc@latest --local\n\n# Custom namespace (commands become /wp:commit, /wp:pr, etc.)\nnpx v23cc@latest --local --namespace wp\n```\n\nThe `--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.\n\n**Notes:**\n- `--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`.\n- Running `--local` from `$HOME` is also an error, since that path resolves to the same location as `--global`.\n- 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.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `/v23cc:model [list\\|use\\|add\\|remove]` | Manage local LLM model presets |\n| `/v23cc:config` | Show config list |\n| `/v23cc:youtube \u003cURL\u003e [--lang ko] [--percent 20]` | Summarize a YouTube video using local LLM |\n| `/v23cc:commit [--max 72] [--no-prefix] [--only-msg] [--all]` | Generate and commit using local LLM |\n| `/v23cc:sync-docs [--lines 100] [--keep \"section name\"]` | Update README.md and CLAUDE.md using local LLM |\n| `/v23cc:branch [create\\|switch\\|rename\\|track\\|list\\|current]` | Create, switch, rename, track, or list git branches |\n| `/v23cc:pr [--only-msg]` | Generate a PR title and description using the local LLM |\n| `/v23cc:atlassian [init\\|status]` | Set up Jira \u0026 Confluence credentials |\n| `/v23cc:jira \u003cISSUE-KEY\u003e [--deep] [--note \"...\"]` | Analyze a Jira issue and suggest implementation approach |\n\n## Workflow\n\n```\n# Add a local LLM model preset\n/v23cc:model add gemma mlx-community/gemma-4-e4b-it-4bit 9000\n\n# Switch active model\n/v23cc:model use gemma\n\n# Summarize a YouTube video in Korean (default)\n/v23cc:youtube https://youtube.com/watch?v=...\n\n# Summarize in English, shorter output\n/v23cc:youtube https://youtube.com/watch?v=... --lang en --percent 10\n\n# Generate and commit (conventional prefix style by default)\n/v23cc:commit\n\n# Commit without conventional prefix\n/v23cc:commit --no-prefix\n\n# Print message only, no commit\n/v23cc:commit --only-msg\n\n# Stage all files then commit\n/v23cc:commit --all\n\n# Update README.md and CLAUDE.md\n/v23cc:sync-docs\n\n# Create a new branch and switch to it\n/v23cc:branch create feature/my-feature\n\n# Rename current branch\n/v23cc:branch rename feature/new-name\n\n# Rename another branch\n/v23cc:branch rename old-name new-name\n\n# Track and checkout a remote branch (auto-detects remote)\n/v23cc:branch track feature/my-feature\n\n# Track a branch from a specific remote\n/v23cc:branch track upstream/feature/my-feature\n\n# Switch to an existing local branch\n/v23cc:branch switch main\n\n# List local branches\n/v23cc:branch list\n\n# List all branches including remotes\n/v23cc:branch list --all\n\n# Print current branch name\n/v23cc:branch current\n\n# Generate PR title and description\n/v23cc:pr\n\n# Print PR message only, no PR creation\n/v23cc:pr --only-msg\n\n# Analyze a Jira issue for implementation approach\n/v23cc:jira WPN-123\n\n# Deeper analysis with source snippets\n/v23cc:jira WPN-123 --deep\n\n# Add extra context (use @file for file content)\n/v23cc:jira WPN-123 --note \"related to WPN-100, must avoid breaking the auth flow\"\n```\n\n## Direct shell usage\n\nWhen your Claude token budget is low, run the scripts directly:\n\n```bash\n# Manage model presets\nbash ~/.v23cc/bin/model.sh list\nbash ~/.v23cc/bin/model.sh use gemma\nbash ~/.v23cc/bin/model.sh add gemma mlx-community/gemma-4-e4b-it-4bit 9000\nbash ~/.v23cc/bin/model.sh remove gemma\n\n# Summarize a YouTube video\nbash ~/.v23cc/bin/youtube.sh https://youtube.com/watch?v=...\nbash ~/.v23cc/bin/youtube.sh https://youtube.com/watch?v=... --lang en --percent 10\n\n# Generate and commit\nbash ~/.v23cc/bin/commit.sh\nbash ~/.v23cc/bin/commit.sh --no-prefix\nbash ~/.v23cc/bin/commit.sh --only-msg\nbash ~/.v23cc/bin/commit.sh --all\n\n# Update README.md and CLAUDE.md\nbash ~/.v23cc/bin/sync-docs.sh\nbash ~/.v23cc/bin/sync-docs.sh --lines 80 --keep \"Architecture\"\n\n# Create, switch, rename, track, or list branches\nbash ~/.v23cc/bin/branch.sh create feature/my-feature\nbash ~/.v23cc/bin/branch.sh switch main\nbash ~/.v23cc/bin/branch.sh rename new-name\nbash ~/.v23cc/bin/branch.sh rename old-name new-name\nbash ~/.v23cc/bin/branch.sh track feature/my-feature\nbash ~/.v23cc/bin/branch.sh track upstream/feature/my-feature\nbash ~/.v23cc/bin/branch.sh list\nbash ~/.v23cc/bin/branch.sh list --all\nbash ~/.v23cc/bin/branch.sh current\n\n# Generate PR title/description\nbash ~/.v23cc/bin/pr.sh\n\n# Analyze a Jira issue\nbash ~/.v23cc/bin/jira.sh WPN-123\nbash ~/.v23cc/bin/jira.sh WPN-123 --deep\nbash ~/.v23cc/bin/jira.sh WPN-123 --note \"extra context here\"\n\n# Show config\nbash ~/.v23cc/bin/config.sh\n```\n\n## Atlassian MCP (Jira \u0026 Confluence)\n\nv23cc includes a local MCP server that integrates Jira and Confluence directly into Claude Code. No slash commands needed — just talk to Claude naturally.\n\n### Setup\n\n1. Install and restart Claude Code:\n   ```bash\n   npx v23cc@latest --global\n   # Restart Claude Code to load the MCP server\n   ```\n\n2. Configure your Atlassian credentials once:\n   ```\n   /v23cc:atlassian init\n   ```\n   Claude will ask for your domain, email, and API token one at a time.\n\n   Generate an API token at [id.atlassian.com/manage-profile/security/api-tokens](https://id.atlassian.com/manage-profile/security/api-tokens).\n\n### Usage\n\nJust ask Claude naturally — no commands to remember:\n\n| What you say | What happens |\n|---|---|\n| \"search jira for ocr\" | Searches Jira, groups results by Bug/Story/Task, writes `v23cc/jira/\u003ctimestamp\u003e.md` |\n| \"search jira for payment bugs in project CORE\" | Filtered by project and type |\n| \"search confluence for deployment guide\" | Fetches pages, summarizes each via local LLM, writes `v23cc/confluence/\u003ctimestamp\u003e.md` |\n\nResults are written as markdown files to `v23cc/jira/` and `v23cc/confluence/` in your project (git-ignored automatically).\n\n### Jira tool parameters\n\n| Parameter | Description | Default |\n|---|---|---|\n| `query` | Search text | required |\n| `project` | Project key filter (e.g. `CORE`) | — |\n| `max` | Max results | 20 |\n| `type` | Issue type: `Bug`, `Story`, `Task` | — |\n\n### Confluence tool parameters\n\n| Parameter | Description | Default |\n|---|---|---|\n| `query` | Search text | required |\n| `space` | Space key filter | — |\n| `max` | Max results | 10 |\n\n\u003e **Note:** Confluence summaries require a local LLM server running (configured via `/v23cc:model`). If no model is active, raw content is shown instead.\n\n## Uninstall\n\n```bash\nnpx v23cc@latest --global --uninstall\nnpx v23cc@latest --local --uninstall\n```\n\n## Legal\n\nThis 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.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsveron23%2Fv23cc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsveron23%2Fv23cc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsveron23%2Fv23cc/lists"}