Skip to main content

Command catalog

Look up commands by task.

GitHub / PR helpersโ€‹

CommandDescription
,view-my-issuesBrowse your GitHub issues with fzf preview
,remove-commentDelete a comment from the current PR via fzf picker
,gh-subissues-createDraft multiple sub-issues in your editor, create them, and attach to a parent issue via GitHub's sub-issue GraphQL API
,check-backport-progressFind PRs missing backports or required labels across target branches
,disable-auto-mergeDisable auto-merge for all open PRs targeting a base branch
,enable-auto-mergeEnable auto-merge for all open PRs targeting a base branch
,trace-string-prLocate the PR that introduced a matching string and open it in the browser
,hey-branchQuick "am I in sync with upstream?" status: ahead/behind plus missing remote
,codeownersList matching owners, owned paths, or the last CODEOWNERS owner for a path

Search / discovery helpersโ€‹

CommandDescription
,grepoGrep for a pattern across files and open the selected match in $EDITOR at the right line
,search-brew-descSearch installed Homebrew formula descriptions as JSON
,fuzzy-brew-searchFuzzy search Homebrew descriptions, then drive an "add this to Brewfile" workflow
,search-gh-topicSearch GitHub repos by topic with preview, then open the selected repo
,youtube-searchSearch YouTube from an fzf TUI with filters, preview, browser open, and mpv playback

Testing / analysis helpersโ€‹

CommandDescription
,jest-test-title-reportCompare Jest test titles between two worktrees and emit a CSV report; -h / --help lists options, missing required paths exit with status 2
,get-risky-testsRun Jest and report tests whose runtime exceeds a threshold
,get-age-bucketsCompute file age buckets from git history to spot stale areas
,generate-git-sandboxCreate a throwaway git repo for testing rebases, merges, and scripts

AI / agent helpersโ€‹

CommandDescription
,artifactCreate local HTML artifacts and collect feedback on selected content; files and session pollers stay in the cache, outside the worktree
,qOne-shot OpenRouter Pi agent (deepseek/deepseek-v4.1-flash-1017) at high effort with native full context, tools on, a short system prompt, and skills/context/extensions/APPEND_SYSTEM off
,ai-kbSearch and write the local agent knowledge base (~/lib/,ai-kb/): hybrid BM25 + vector search, remember with duplicate refusal, curate for dedupe and decay; on demand only
,behavior-mapKeep a per-repo map of critical behaviors under ~/.local/share/k-ai-behavior-map/<repo>/: a base map shared by all worktrees plus per-branch overlays, with stale/drift checks, changed-since-read write refusal, and three-way promote after merge
,handoffSave, show, and list short task-handoff notes under ~/.local/share/agent-handoffs/<repo>/ so a task can continue in another session or harness
,taskKeep each session's intent card, evidence claims, decision history and resolved findings per worktree under ~/.local/share/agent-tasks/; the intent-guard hooks in every harness call ,task hook to show it, flag edits outside its scope, and send a stop back while an item is open
,doctor aiReport the ownership-aware effective state of generated AI configs; --json is scriptable and --live adds deduplicated local consumer probes without applying or refreshing anything
,llama-cppManage the local llama.cpp endpoint, including shared leases that auto-start a loopback router, configurable last-consumer grace, and an ownership-safe explicit stop that treats zombie owners as already stopped
,codexLaunch Codex with local llama.cpp model catalog metadata injected when a local model is selected
,claude-llama-cppLaunch Claude Code with a shared auto-managed llama.cpp router lease
,claude-openrouterLaunch Claude Code against OpenRouter's Anthropic Messages endpoint, defaulting to xiaomi/mimo-v2.6-pro at high effort; every Claude alias maps to the selected wire id
,codex-llama-cppLaunch Codex with a shared auto-managed llama.cpp router lease
,codex-openrouterLaunch Codex against OpenRouter's OpenAI Responses endpoint, defaulting to xiaomi/mimo-v2.6-pro at high effort
,opencode-llama-cppLaunch OpenCode with a shared auto-managed llama.cpp router lease; context/output limits come from opencode.jsonc
,letsfg-dockerRun LetsFG in a headless Docker/Podman container with Xvfb for browser-based flight connectors

Provider wrappers with model choices accept --model <id> / -m <id>. The OpenRouter wrappers also take --effort <level> (aliases --reasoning-effort, --thinking; --no-thinking = minimal) and --context short|long; see Other harnesses.

Plain interactive claude stays native. Plain interactive codex routes through the managed ,codex wrapper. Local/provider-specific wrappers (*,llama-cpp, ,codex-openrouter, ,claude-openrouter) select their own upstreams.

Artifact feedback: ,artifactโ€‹

Open the Feedback dock to capture a selection, or use a live-page overlay. Click pins one target; Cmd-click adds targets to the same feedback item. Write in Feedback for the selection, then add it to the tray. Feedback controls wrap or scroll in narrow and short viewports, and status updates are announced to assistive technology.

Tagged artifacts can return semantic entity IDs, ancestors, and relations through data-artifact-id and an embedded manifest. Artifact pages hide capture until the Feedback dock is opened; live overlays start armed. Per-session pollers stay outside the worktree.

One-shot pi agent: ,qโ€‹

,q "What is 2+2?"
,q --dry-run "ping"
printf '%s' "$prompt" | ,q

~/bin/,q is a thin launcher for ~/lib/,q/main.py. It execs pi against OpenRouter deepseek/deepseek-v4.1-flash-1017 with --thinking high and no context-limiting extension, so Pi uses the model's native full context. It also passes --no-session, --offline, a short --system-prompt, empty --append-system-prompt (skips ~/.pi/agent/APPEND_SYSTEM.md), and the --no-skills / --no-themes / --no-context-files / --no-prompt-templates / --no-extensions discovery flags. Tools stay enabled. The short prompt replaces Pi's coding-assistant default; Pi still appends the cwd. AGENTS.md, skills, and extensions stay off. Prompt words are the user message; with no words, stdin is the prompt. The explicitly loaded q_literal.md template passes one quoted argument through as literal text, preserving leading flags, @, quotes, and whitespace; default template discovery remains off. --dry-run emits the pi argv JSON.

Utility helpersโ€‹

CommandDescription
,cp-files-for-llmCopy a directory tree's text contents to the clipboard with file headers
,appidPrint the macOS bundle identifier for an app name/path
,dumputiDump the system's registered Uniform Type Identifiers
,to-gifConvert a video to an optimized GIF
,vid-ipadRe-encode a video for iPad playback
,pdf-diffVisual diff two PDFs by compositing pages
,nano-bananaCloud Gemini generate/edit/compose/inpaint (uploads to Google)
,image-localOn-device FLUX.2 klein 9B generate (512 default) and -i edit at input size
,image-openrouterOpenRouter generate/edit; Seedream 5 Pro; strips input metadata; ZDR routing
,image-codexCodex subscription GPT Image 2 generate/edit; automatic settings; strips inputs
,image-openaiNative GPT Image 2 generate/edit/mask with quality, size, and format controls
,set-default-micSelect the preferred external microphone, falling back to the MacBook microphone
,updateReconcile dotfiles and package-manager updates with a native dekit TUI
,parallelForward to GNU Parallel when both GNU Parallel and semantic-git are installed
,semForward to Ataraxy semantic-git's entity-level CLI (telemetry, update check, cloud off)
,format-mdWrap AI prose around complete inline code; leave ordinary Markdown unchanged

Fish history sync: ,history-syncโ€‹

Safety behavior:

  • Before replacing local history, it writes ~/.local/share/fish/fish_history.bak.
  • It refuses to install/push a merged result with fewer entries than the remote copy.
  • If remote pull fails but the fish-history-sync item exists, it aborts instead of overwriting good remote history with local-only history.

If you restore history out-of-band while fish is running, run history merge in active fish shells or restart them.

Internal plumbingโ€‹

These are used by scripts, fzf integrations, and Neovim; you rarely invoke them directly.

CommandDescription
,bat-previewSmart preview for fzf: images via chafa, binaries via hexyl, directories via ls, text via bat
,fzf-git-changed-linesEmit changed lines as grep-like entries for fzf
,fzf-preview-followCenter fzf preview around a match line
,fzf-rg-multilineConvert ripgrep output into NUL-delimited multi-line fzf entries

Verificationโ€‹

make verify-bin-surface
command -v ,w
command -v ,gh-prw
command -v ,tmux-run-all

If commands are missing after apply, verify the script exists under home/exact_bin/, has the correct executable_ prefix, has a matching Fish completion under home/dot_config/fish/completions/, and that ~/bin is on PATH.