jd init
Setup and install CLI dependencies (optional first-time setup)
jd init [--skip-deps] [--skip-completions]
-
Helps set up the jd CLI by installing required tools like
GitHub CLI, devcontainer CLI, and configuring shell
completions.
-
--skip-deps
Skip dependency installation checks
-
--skip-completions
Skip shell completion setup
jd dev
Apply devcontainer templates to projects
jd dev [template-id] [--force] [--list]
-
template-id
Custom template ID (default:
ghcr.io/devcontainers/templates/nodejs-postgres)
-
--force
Force overwrite existing .devcontainer
-
--list
List available templates
jd pr
Create GitHub pull requests with AI-generated title and
description
jd pr [--draft] [--auto-draft] [--base BRANCH] [--web] [--title
TITLE] [--body BODY] [--no-claude] [--model MODEL] [--reviewers
USERS] [--labels LABELS]
-
--draft
Create as draft PR
-
--auto-draft
Auto-detect draft from branch name (wip/draft prefixes)
-
--base BRANCH
Target base branch (default: main/master)
-
--web
Open PR in browser after creation
-
--title TITLE
Custom PR title (AI generates description if not
provided)
-
--body BODY
Custom PR body/description
-
--no-claude
Disable Claude AI generation (use fallback)
-
--model MODEL
Claude model: sonnet (default), haiku, or opus
-
--reviewers USERS
Comma-separated list of reviewers
-
--labels LABELS
Comma-separated list of labels
jd merge
Merge GitHub pull request and cleanup branches with worktree
support (squash by default)
jd merge [--branch BRANCH] [--type TYPE] [--clean]
-
--branch BRANCH
Branch name to find PR for (defaults to current branch)
-
--type TYPE
Merge type: squash (default), merge, or rebase
-
--clean
Only cleanup old temporary branches (no merge)
jd repo
Initialize GitHub repository and configure secrets from 1Password
jd repo [--npm] [--extensions] [--claude] [--apple] [--suffix
SUFFIX] [--kubeconfig NS] [--kubeconfig-minimal NS] [--rules]
[--rules-strict] [--pages] [--release] [--action] [--public]
[--description DESC] [--no-init]
-
--npm
Add NPM_TOKEN secret
-
--extensions
Add VSCE_PAT and OVSX_PAT secrets for extension
publishing
-
--claude
Add CLAUDE_CODE_OAUTH_TOKEN secret, copy JD workflows, and
create JD label
-
--apple
Add Apple App Store, Fastlane, and GitHub PAT secrets
-
--suffix SUFFIX
Add suffix to APPSTORE_* and MATCH_* secrets (use with
--apple)
-
--kubeconfig [NS]
Generate and add KUBE_CONFIG secret for namespace NS (creates
NS, NS-dev, NS-pr). Auto-detects from charts/*.yaml if NS not
specified
-
--kubeconfig-minimal [NS]
Generate and add KUBE_CONFIG secret for single namespace NS
only. Auto-detects from charts/*.yaml if NS not
specified
-
--rules
Apply default branch protection rulesets (main: prevents
deletion and force pushes; dev: prevents deletion and force
pushes)
-
--rules-strict
Apply strict branch protection rulesets (main: prevents
deletion, force pushes, and requires pull requests; dev:
prevents deletion and force pushes)
-
--pages, --gh-pages
Setup GitHub Pages (copy gh-pages.yml workflow and
docs/index.html)
-
--release
Setup release workflow (copy release.yml workflow)
-
--action
Shortcut for --release --pages --claude
-
--public
Create public repository (default: private)
-
--description DESC
Repository description
-
--no-init
Use existing git repo (skip git init)
jd npm
Setup npm package with OIDC trusted publishing
jd npm
-
Publishes placeholder package (0.0.0-placeholder) and guides
through OIDC configuration on npmjs.com
jd update
Self-update to latest version
jd update [--check] [--force]
-
--check
Check for updates without installing
-
--force
Force reinstall current version
jd venv
Create and manage Python virtual environments
jd venv
-
Creates ./venv if missing, activates it, and auto-installs
from requirements.txt
jd requirements
Generate requirements.txt from active virtual environment
jd requirements
-
Uses pip freeze to capture all installed packages
jd cleanup
Clean up node_modules directories and free disk space
jd cleanup [--path PATH] [--include-hidden] [--dry-run]
[--skip-mac-cleanup]
-
--path PATH
Path to start cleanup from (default: ~/Projects)
-
--include-hidden
Include hidden directories (starting with .)
-
--dry-run
Show what would be deleted without actually deleting
-
--skip-mac-cleanup
Skip running mac-cleanup system cleanup
jd claude-github
Update Claude Code OAuth token across all GitHub repositories and
1Password
jd claude-github
-
Runs 'claude setup-token', prompts for the OAuth token,
updates 1Password vault, and loops through all GitHub
repositories to update the CLAUDE_CODE_OAUTH_TOKEN secret
where it exists
-
Prerequisites: GitHub CLI (gh), 1Password CLI (op), Claude
Code CLI (claude)
jd pg
Port-forward to PostgreSQL database cluster on localhost:5432
jd pg
-
Creates a port-forward connection from localhost:5432 to the
postgres-rw service in the postgres namespace. Press Ctrl+C to
stop the port-forward.
-
Prerequisites: kubectl CLI, active Kubernetes context,
postgres namespace with postgres-rw service
-
Connect using: psql -h localhost -p 5432 -U <username>
<database>
jd release
Automate release process: merge dev→main, bump versions, create GitHub release
jd release [--dry-run]
-
--dry-run
Preview changes without executing them
-
Merges dev into main, increments MINOR version in root package.json
(e.g., 2025.7.0 → 2025.8.0), updates versions in apps/*/app.config.ts
and apps/*/package.json, commits and pushes "Version bump" to dev,
and creates GitHub release with auto-generated notes on main
-
Prerequisites: GitHub CLI (gh), clean working directory, root
package.json with version field