ksrc

star 67

Search/read 3rd-party Gradle dependency sources. Avoid directly accessing `.gradle`; instead, proactively use this skill to inspect source code of dependencies to learn API shapes or implementations.

respawn-llc By respawn-llc schedule Updated 5/12/2026

name: ksrc description: Search/read 3rd-party Gradle dependency sources. Avoid directly accessing .gradle; instead, proactively use this skill to inspect source code of dependencies to learn API shapes or implementations.

  1. Search dependencies to retrieve coordinates and matches using rg-style globs: ksrc search "class LocalDate\("

If you want faster execution & less noise, consider adding:

  • --artifact to limit search to one artifact, (or --module to also limit by version)
  • --subproject to help discovery for monorepos/large modular apps
  • --targets to limit to specific KMP targets.

KMP note: --module group:artifact searches common/base sources plus Gradle-selected platform variant source jars by default. Use --targets or --config to narrow variants.

  1. Read a file by returned id: ksrc cat org.jetbrains.kotlinx:kotlinx-datetime:0.8.0!/kotlinx/datetime/LocalDate.kt --lines 1,200

File-id format: group:artifact:version!/path/inside/jar.ext — works for any language in the source JAR (e.g. .kt, .java, .groovy)

When a file-id comes from ksrc search or ksrc where <path>, follow-up cat/open usually do not need repeated --project or scope/config flags on same machine.

Give this tool generous timeouts. It can take a few minutes to download sources and set up gradle.

Common issues

  • If, unexpectedly, no matches are found, try --project with app project (not monorepo root), specifying --scope (esp. for build-time deps), or ksrc doctor.
  • E_NO_SOURCES: dependency sources not available; try ksrc deps, ksrc fetch <coord>, specify a project and scope.
  • Gradle not found: a) run in a Gradle project dir, b) set --project path explicitly, c) install gradle on machine.
  • Gradle build script is failing in the repo: ksrc falls back to cache-only resolution and warns; when no version is pinned it picks the highest cached source-bearing version under Maven-style ordering. Re-run with -v to see Gradle output for debugging.
  • Custom Gradle user home: ksrc respects GRADLE_USER_HOME. Use --gradle-user-home <path> to override it for both Gradle invocation and cache fallback.
  • Gradle fails with unresolved class version: User's Local java in env is resolved to something unsupported by gradle. Help them fix Gradle<>JDK incompatibility.
  • Ambiguous modules: use --module, --group, or --artifact to narrow scope.

Commands

ksrc search <pattern> [-- <rg-args>]

Search dependency sources.

Output format: <file-id> <line>:<col>:<line-text>

Parsing rule:

  • Split once on first space to isolate <file-id>.
  • Parse first two :-delimited decimal fields as <line> and <col>.
  • Treat remainder verbatim as <line-text>; it may contain :.

With --show-extracted-path, output shape changes to: <file-id>\t<quoted-extracted-path>\t<line>\t<col>\t<quoted-line-text>

Common flags:

  • --all search across all resolved deps (default, slow)
  • --project <path> project root (default .)
  • --subproject <name> limit to a subproject (repeatable)
  • --targets <list> limit KMP targets (comma‑separated: jvm,android,iosX64)
  • --config <name> resolve specific configuration(s) (comma‑separated)
  • --scope <compile|runtime|test|all>
  • --module <glob> module filter (group:artifact[:version])
  • --group <glob> / --artifact <glob> / --version <glob>
  • --offline only use cached sources
  • --refresh force dependency refresh
  • --gradle-user-home <path> override GRADLE_USER_HOME / ~/.gradle
  • --context <n> shortcut for rg -C <n> (context lines emit column 0)
  • --rg-args <args> extra rg args (comma‑separated)
  • -- <rg-args> pass through raw rg args
  • --show-extracted-path include temp extracted paths in output (off by default)

ksrc cat <file-id|path>

Print file contents.

Common flags:

  • --lines <start,end> 1‑based inclusive range
  • --module <glob> / --group / --artifact / --version to disambiguate when using a path

ksrc open <file-id|path>

Open in $PAGER (defaults to less -R). Same flags as cat.

ksrc deps

List resolved dependencies and source availability.

ksrc resolve

Resolve and print source JARs: group:artifact:version|/path/to/sources.jar.

ksrc fetch <coord>

Ensure sources for a coordinate exist: group:artifact:version. Usually only needed with offline mode.

ksrc where <path|coord>

Locate cached source JAR or file.

ksrc doctor

Basic diagnostics for environment issues.

Install via CLI
npx skills add https://github.com/respawn-llc/ksrc --skill ksrc
Repository Details
star Stars 67
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator