GitHub CLI–style workflows for Jenkins controllers
jk gives developers and operators a modern, scriptable interface to Jenkins: inspect runs, stream logs, manage credentials, and administer controllers from a single cross-platform binary.
- Context-aware auth – store multiple controllers, switch with
jk context use, or pin a context viaJK_CONTEXT. - Friendly pipelines – trigger, rerun, follow, and summarize jobs with human or JSON/YAML output.
- Scriptable output –
--format json|yaml,--jq, and--templatefor machine-friendly pipelines;--quietfor scripting. - Discovery-first runs – filter with
--filter, bound history with--since, group by parameters, and attach machine-readable metadata for agents. - Artifacts & tests – browse artifacts, download filtered sets, and surface aggregated test reports.
- Platform operations – cordon nodes, manage credentials, inspect queues, and view installed plugins.
- GitHub CLI parity – command structure and UX mirror
gh, easing adoption in developer toolchains.
brew install avivsinai/tap/jkscoop bucket add avivsinai https://github.com/avivsinai/scoop-bucket
scoop install jk# Install latest version
go install github.com/avivsinai/jenkins-cli/cmd/jk@latest
# Or install specific version
go install github.com/avivsinai/jenkins-cli/cmd/[email protected]Binary will be installed to $GOPATH/bin (or $HOME/go/bin by default).
Download prebuilt binaries for your platform from GitHub Releases.
git clone https://github.com/avivsinai/jenkins-cli.git
cd jenkins-cli
make build # produces ./bin/jkInstall the jk skill for Claude Code or Codex CLI:
Via skild registry
npx skild install @avivsinai/jk -t claude -yVia Skills Marketplace
Known Issue: Claude Code uses SSH to clone marketplace repos, which fails without SSH keys configured. See issue #14485. Use the skills or skild methods instead.
/plugin marketplace add avivsinai/skills-marketplace
/plugin install jk@avivsinai-marketplaceManual install
git clone https://github.com/avivsinai/jenkins-cli.git
cp -r jenkins-cli/.claude/skills/jk ~/.claude/skills/Find jobs fast with jk search (alias for jk run search) before drilling into specific pipelines.
jk auth login https://jenkins.company.example # authenticate and create a context
jk context ls # list available contexts
jk search --job-glob '*deploy-*' --limit 5 --json # discover job paths across folders
jk run ls team/app/pipeline --filter result=SUCCESS --since 7d --limit 5 --json --with-meta
jk run ls team/app/pipeline --include-queued # include queued builds (shown as qN)
jk run params team/app/pipeline # inspect inferred parameter metadata
jk run view team/app/pipeline 128 --follow # stream logs until completion
jk artifact download team/app/pipeline 128 -p "**/*.xml" -o out/Structured jk search output already includes lightweight search metadata; --with-meta is only needed for jk run ls.
Add --json, --yaml, or --format json|yaml to supported commands for machine-readable output. Use --jq or --template to select or reshape JSON results.
# Extract a single field with jq
jk run view team/app/pipeline 128 --format json --jq '.result'
# Custom formatting with Go templates
jk run view team/app/pipeline 128 --format json --template 'Result={{.result}}'- Specification - Architecture and design decisions
- API Contracts - JSON/YAML schemas for structured output
- Agent Cookbook - Automation recipes and examples
- Changelog - Release notes and migration guidance
This project uses automated secret scanning (gitleaks), dependency updates (Dependabot), and security posture tracking (OSSF Scorecard).
Found a security issue? See our security policy for responsible disclosure.
- Read the code of conduct and contributing guide
- Ask questions or propose ideas via GitHub Discussions (coming soon) or issues
- Follow the support guidelines for help
# First-time setup
make pre-commit-install # Install git hooks (gitleaks, formatting, etc.)
# Standard workflow
make build # Build the binary
make test # Run unit tests
make lint # Run linters
make security # Run security checks (gitleaks + pre-commit)make e2e # End-to-end tests (requires Docker)
make e2e-up # Launch test Jenkins (port 28080)
make e2e-down # Tear down test environmentPrerequisites:
- golangci-lint for linting
- gitleaks for secret scanning
- pre-commit for git hooks
- Docker/Colima for e2e tests
Note: E2e tests require Docker. On macOS with Colima, use colima start --network-address. See CONTRIBUTING.md for details. Skip with JK_E2E_DISABLE=1 make test.
make security # Gitleaks + pre-commit checks
make lint # Run linter
make test # Run testsjk is available under the MIT License.