Ksrc
Let your AI agents search and read 3rd-party Kotlin dependency sources
Ask AI about Ksrc
Powered by Claude · Grounded in docs
I know everything about Ksrc. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
ksrc
One‑liner search and read for Gradle 3rd-party dependency sources for AI agents.
Your AI agents take ~10 steps just to see a single function signature in a third-party library. ksrc turns that into two commands and ~4x less tokens.
What it is
It's a CLI utility to enable efficient dependency source search for AI agents working with Gradle projects.
Ever saw an AI agent find a function's signature in TypeScript/Python? Simple rg over node_modules and a sed call is all it needs to discover APIs and signatures.
With Gradle ecosystems, agents have to take a 15-step journey to download, locate, unpack and ripgrep source jars.
ksrc turns 16k tokens wasted on that into 2 CLI commands.
1. Install the tool
Start by installing the command itself.
Homebrew (macOS/Linux) - recommended, auto-updated:
brew tap respawn-app/tap
brew install ksrc
Standalone binaries via GitHub Releases:
ksrc installed manually does NOT auto-update, unlike ksrc skills and plugins. Please keep the binary up to date too.
Install script (macOS/Linux):
curl -fsSL https://raw.githubusercontent.com/respawn-app/ksrc/main/scripts/install.sh | sh
2. Teach agents how to use it
Next up, install the claude code plugin/skill, to let your agents know they can use ksrc and how to use it.
Claude Code
Add the Respawn marketplace, then install the plugin:
/plugin marketplace add respawn-app/claude-plugin-marketplace
/plugin install ksrc@respawn-tools
Codex skill
Install from the public GitHub path:
$skill-installer install https://github.com/respawn-app/ksrc/tree/main/skills/ksrc
MCP (Model Context Protocol)
Use when your agent doesn't have bash tool. Configure your MCP client to spawn the stdio server:
{
"mcpServers": {
"ksrc": {
"command": "ksrc",
"args": ["mcp"]
}
}
}
Default tools: search, cat, deps. Enable more via --tools=<list> (e.g., --tools=search,cat,deps,resolve or --tools=all).
You shouldn't need the skill if you use mcp, but if your agent has access to bash tool, prefer CLI+bash instead of the mcp.
AGENTS.md prompt
Avoid directly accessing
.gradle; instead, proactively useksrccli to inspect source code of dependencies to learn API shapes or implementations. Start withksrc --help.
Usage
Give this tool larger timeouts - it can take a minute to download sources (if needed) and resolve gradle projects.
- Start by using ksrc search to get the file identifier and lines you need. Example:
$ ksrc search "updateState<"
pro.respawn.flowmvi:core:3.3.0-alpha03!/commonMain/pro/respawn/flowmvi/api/StateReceiver.kt 19:8: updateState<State.Subtype, _> { }
The tool returns one chainable record per hit in this format: <file-id> <line>:<col>:<line-text>. The text segment is the raw source line with its trailing newline stripped, so it may contain literal : characters.
If you enable --show-extracted-path, each hit uses a debug-oriented tab-delimited shape instead:
<file-id>\t<quoted-extracted-path>\t<line>\t<col>\t<quoted-line-text>
ksrc persists the backing jar path for emitted file-ids, so follow-up cat/open calls usually do not need repeated --project or scope/config flags on the same machine.
If you want faster execution & less noise, specify:
--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.
- When you have found the desired artifact, read the file contents:
$ ksrc cat 'pro.respawn.flowmvi:core:3.3.0-alpha03!/commonMain/pro/respawn/flowmvi/api/StateReceiver.kt' --lines 10,25
- If you already know the path inside the source jar, use
whereto recover the reusable file-id and backing jar path:
$ ksrc where kotlinx/datetime/LocalDate.kt --group org.jetbrains.kotlinx --artifact kotlinx-datetime
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1!/kotlinx/datetime/LocalDate.kt|/path/to/kotlinx-datetime-0.7.1-sources.jar
For path lookups, text before | uses same <file-id> contract as search, so you can pass it directly to ksrc cat or ksrc open.
License
This program is licensed under the Apache License, Version 2.0.
See LICENSE.txt.
Copyright 2026 Respawn LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
