Skip to content
cccskills
FreePublished on GitHub

jetbrains-cli-pin

Switches the Kilo JetBrains plugin between a pinned released CLI and a freshly built local CLI. Includes commands to clear old build artifacts, regenerate the local executable, and verify the selected setup with Gradle.

OriginalShow the original description

Use when pinning or unpinning the CLI version the Kilo JetBrains plugin uses, or fresh-regenerating the local repo CLI. Cleans all leftover CLI binaries and build artifacts in the current worktree so every operation starts from a fresh, artifact-free state.

See how to install

Good for

  • Pinning the plugin to the latest stable CLI release
  • Switching to a locally built CLI for development
  • Regenerating the local CLI after changes
  • Clearing leftover CLI binaries and build artifacts

Files included (3)

  • SKILL.md4.7 KB
  • script/clean.ts1.2 KB
  • script/cli-pin.ts4.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

JetBrains CLI Pin

Pin the Kilo JetBrains plugin to the latest released CLI, unpin it to use the local repo CLI, or fresh-regenerate the local CLI while unpinned. Every command first cleans all CLI/pin build artifacts and binaries in the current worktree so the result never carries state from a previous run.

Run all commands from the repository root of the worktree you want to affect. Paths are relative, so they resolve to the current worktree, not the main checkout.

Two Controls

The plugin's CLI behavior is governed by two independent values:

ControlLocationMeaning
Pin modepackages/kilo-jetbrains/gradle.properties -> kilo.cli.pinnedtrue = download the released CLI at build/connect time. false = build and bundle the local repo CLI.
Pinned versionpackages/kilo-jetbrains/package.json -> versionWhich GitHub CLI release is downloaded and generated from when pinned=true.

"Pin to latest" means kilo.cli.pinned=true and package.json set to the latest stable CLI release. "Unpin" means kilo.cli.pinned=false with a freshly built local CLI bundled.

Commands

bun .kilo/skills/jetbrains-cli-pin/script/cli-pin.ts <command> [--no-verify]
CommandSteps
pinClean -> set kilo.cli.pinned=true -> remove the repo-CLI Bun path hint -> bump package.json to latest release (via set-pin.ts --latest, which validates release assets) -> verify with a cold gradlew clean typecheck.
unpinClean -> set kilo.cli.pinned=false -> write the repo-CLI Bun path hint -> :backend:buildRepoCli (fresh CLI) -> :backend:stageRepoCli -> assert staged kilo-cli.zip -> verify with gradlew typecheck.
regenFast dev loop while unpinned: refresh the repo-CLI Bun path hint -> rm -rf dist -> buildRepoCli -> stageRepoCli. Refuses to run unless kilo.cli.pinned=false.
cleanRun the shared artifact clean only.

--no-verify skips the gradle verification build (rewrites + clean only). Use it when offline or without Java 21.

Cleaned Artifacts

clean() runs ./gradlew clean plus targeted deletes. All paths are gitignored, so tracked files are never touched. The clean removes the stale artifacts that otherwise leak across a pin/unpin flip:

ArtifactPath
Repo CLI binariespackages/opencode/dist/
Staged CLI archivepackages/kilo-jetbrains/backend/build/generated/kilo-cli-res/kilo-cli.zip
Generated props / checksums / OpenAPI clientpackages/kilo-jetbrains/backend/build/generated/
Compiled resources (bundled zip on classpath)packages/kilo-jetbrains/backend/build/resources/
CLI download cachepackages/kilo-jetbrains/backend/build/cli-cache/

The staged kilo-cli.zip is the nastiest leak: once it lands in backend/build/resources/main/ from an unpinned build, runtime prefers the bundled zip over downloading. A full clean is the only reliable reset.

Bun Path Hint

In repo CLI mode, Gradle's generateOpenApiSpec task runs the local CLI source through bun run --conditions=browser ./src/index.ts generate. IDE-launched Gradle runs can have a stripped PATH where bun isn't resolvable. The unpin/regen commands write an ignored, worktree-local hint:

packages/kilo-jetbrains/.gradle/kilo-cli-pin.properties

The file contains bun.path=<absolute path> and is consumed by backend/build.gradle.kts for repo CLI tasks. pin removes it because pinned mode should not depend on local Bun.

Notes

  • Verification builds pass --no-configuration-cache so the changed kilo.cli.pinned value is re-read instead of served from the on-disk Gradle configuration cache.
  • The pin verification is a cold build: it downloads the pinned CLI release via generateOpenApiSpec and needs network access plus Java 21. Use --no-verify offline.
  • kilo.cli.pinned=false is dev-only and not releasable. Production Gradle builds, script/build-version.sh, and the release scripts hard-fail on false -- run pin before releasing.

Related

  • Version-bump and release-gating logic lives in the /release-jetbrains command (.kilo/command/release-jetbrains.md); this skill reuses its set-pin.ts and pin-common.ts helpers from .kilo/skills/release-jetbrains/script/.
  • Background on the build wiring: the "CLI Pinning, Unpinning, and Bumping" section of the jetbrains-dev skill (.kilo/skills/jetbrains-dev/SKILL.md).

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

chart

FreeSummary

Creates charts from numerical data using the chart tool and Chart.js v4. Supports bars, lines, pies, scatter plots, and other formats to show comparisons, trends, proportions, and relationships, with options for dataset colors and mixed charts.

  • Comparing values across categories with a bar chart
  • Showing monthly changes with a line chart
  • Displaying proportions with a pie or doughnut chart
Kilo-Org/kilocode27.7KUpdated Oct 18, 2026

effect

FreeSummary

Develop TypeScript services and workflows with Effect v4 by checking its source and existing project examples. Guides data schemas, typed errors, explicit dependencies, and tests that follow the project's established patterns.

  • Implementing services with Effect v4
  • Defining data schemas and typed errors
  • Organizing dependencies and HTTP handlers
Kilo-Org/kilocode27.7KUpdated Oct 18, 2026

gh-issues

FreeSummary

Create and manage GitHub issues for the Kilo VS Code extension or JetBrains plugin using gh, GitHub's command-line tool. Guides template selection, clear titles, required project board assignment, and authentication permissions.

  • Reporting a bug in the VS Code extension
  • Requesting a feature for the JetBrains plugin
  • Filing usage or design questions
Kilo-Org/kilocode27.7KUpdated Oct 18, 2026

icon-jetbrains

FreeSummary

Create and review SVG icons for IntelliJ New UI. Choose sizes by interface role, prepare matching light and dark versions, refine shapes and strokes, and place the assets in the plugin’s resource folders.

  • Creating icons for actions and tool windows
  • Preparing matching light and dark SVG versions
  • Adapting existing icons to a 16×16 canvas
Kilo-Org/kilocode27.7KUpdated Oct 18, 2026

icon-vscode

FreeSummary

Create and review icons for Kilo’s VS Code extension and webviews, the extension’s embedded interface panels. Choose existing icons or suitable SVG assets, register them correctly, and check theme appearance and accessible button names.

  • Choosing icons for commands, menus, and view containers
  • Adding icons to webview registries
  • Rescaling SVGs while preserving visual weight
Kilo-Org/kilocode27.7KUpdated Oct 18, 2026

jetbrains-arch

FreeSummary

Guides development across the Kilo JetBrains plugin’s shared, frontend, and backend modules. Explains remote calls between modules, UI thread rules, dependency packaging, and testing practices, including serialization failures that require checks in a running IDE.

  • Placing new code in the appropriate plugin module
  • Defining frontend and backend communication
  • Reviewing UI threading and coroutine usage
Kilo-Org/kilocode27.7KUpdated Oct 18, 2026

See all skills by Kilo-Org

Report a problem with this skill