name: ksrc
description: Search/read 3rd-party Gradle (Kotlin/Java) dependency sources. Avoid directly accessing .gradle; instead, proactively use this skill to inspect source code of dependencies to learn API shapes or implementations.
How to use:
- Search dependencies to retrieve coordinates and matches using rg-style globs:
ksrc search "class LocalDate\("
If you want faster execution & less noise, consider adding:
--artifactto limit search to one artifact, (or--moduleto also limit by version)--subprojectto help discovery for monorepos/large modular apps--targetsto limit to specific KMP targets.
- Read a file by returned id:
ksrc cat org.jetbrains.kotlinx:kotlinx-datetime:0.6.1!/kotlinx/datetime/LocalDate.kt --lines 1,200
File-id format: group:artifact:version!/path/inside/jar.kt
Common issues
- If, unexpectedly, no matches are found, try
--projectwith app project (not monorepo root), specifying--scope(esp. for build-time deps), orksrc doctor. E_NO_SOURCES: dependency sources not available; tryksrc deps,ksrc fetch <coord>, specify a project and scope.- Gradle not found: a) run in a Gradle project dir, b) set
--projectpath explicitly, c) install gradle on machine. - Gradle build script is failing in the repo:
ksrcfalls back to cache-only resolution and warns; re-run with-vto see Gradle output for debugging. - 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--artifactto narrow scope. - Give this tool generous timeouts. It can take a few minutes to download sources and set up gradle.
Commands
ksrc search <pattern> [-- <rg-args>]
Search dependency sources.
Output format: <file-id> <line>:<col>:<match>
Common flags:
--allsearch 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>--offlineonly use cached sources--refreshforce dependency refresh--context <n>shortcut forrg -C <n>(context lines emit column0)--rg-args <args>extra rg args (comma‑separated)-- <rg-args>pass through raw rg args--show-extracted-pathinclude 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/--versionto 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.