Getting Started
Add Jackknife to your project and start exploring.
Add to your CLAUDE.md
Drop this in ~/.claude/CLAUDE.md so every Claude session knows how to use Jackknife:
## Jackknife
- When you need to inspect, decompile, or find classes in jar dependencies,
run `mvn jackknife:index` in the project. This generates `.jackknife/USAGE.md`
with full instructions. Read that file — it has everything you need.
No skill to install, no plugin to configure. Claude reads the generated USAGE.md
and takes it from there.
Use everywhere
Add Jackknife to ~/.m2/settings.xml and it’s available in every Maven project:
<settings>
<pluginGroups>
<pluginGroup>org.tomitribe.jackknife</pluginGroup>
</pluginGroups>
</settings>
Add to a specific project
Or add the plugin to a project’s pom.xml:
<plugin>
<groupId>org.tomitribe.jackknife</groupId>
<artifactId>jackknife-maven-plugin</artifactId>
<version>0.3</version>
</plugin>
Index your dependencies
mvn jackknife:index
This creates .jackknife/manifest/ with lightweight class listings for every
dependency jar. Sub-second for an entire classpath.
Find a class
Grep "ObjectMapper" .jackknife/manifest/
Read source code
mvn jackknife:decompile -Dclass=com.fasterxml.jackson.databind.ObjectMapper
Instrument a method
mvn jackknife:instrument -Dclass=org.tomitribe.util.Join -Dmethod=join
mvn test
Debug output appears as JSON:
JACKKNIFE {"event":"call","time":"12.3us","class":"Join","method":"join","args":[", ",["x","y","z"]],"return":"x, y, z"}
Clean up
mvn jackknife:clean
Add .jackknife/ to .gitignore
.jackknife/
All Jackknife state is local. Nothing touches your source, your jars, or your repository.