| Crates.io | inspequte |
| lib.rs | inspequte |
| version | 0.8.0 |
| created_at | 2026-01-17 09:55:48.557801+00 |
| updated_at | 2026-01-25 21:49:34.419407+00 |
| description | Fast, CLI-first static analysis for JVM class and JAR files. |
| homepage | https://github.com/KengoTODA/inspequte |
| repository | https://github.com/KengoTODA/inspequte |
| max_upload_size | |
| id | 2050211 |
| size | 1,332,934 |

[!WARNING] Experimental / Proof-of-Concept Project
This repository is intended for experimental and evaluation purposes only. It is not designed, reviewed, or supported for production use.
Do NOT use this code in production environments.
inspequte is a fast, CLI-first static analysis tool for JVM class and JAR files. It focuses on CI/CD speed, deterministic output, and SARIF-only reporting for global standard compatibility.
The name combines "inspect" and "cute". The CLI command is inspequte.
JAVA_HOME.inspequte --input app.jar --classpath lib/ --output results.sarif
Create a baseline of current findings to suppress them in future runs:
inspequte baseline --input app.jar --classpath lib/ --output inspequte.baseline.json
Run with a baseline to emit only new issues:
inspequte --input app.jar --classpath lib/ --output results.sarif --baseline inspequte.baseline.json
If you omit --baseline output/input paths, .inspequte/baseline.json is used by default; missing files are ignored.
You can read input or classpath lists from a file by prefixing the path with @.
The file format is one path per line; empty lines and lines starting with # are ignored.
inspequte --input @inputs.txt --classpath @classpath.txt --output results.sarif
Use a Gradle task to write the inputs and classpath to files, then reference them via @:
tasks.register("writeInspequteInputs") {
dependsOn(tasks.named("classes"))
inputs.files(sourceSets.main.get().output.classesDirs, configurations.runtimeClasspath)
outputs.files(
file("$buildDir/inspequte/inputs.txt"),
file("$buildDir/inspequte/classpath.txt")
)
doLast {
val inputsFile = file("$buildDir/inspequte/inputs.txt")
val classpathFile = file("$buildDir/inspequte/classpath.txt")
inputsFile.parentFile.mkdirs()
inputsFile.writeText(sourceSets.main.get().output.classesDirs.files.joinToString("\n"))
classpathFile.writeText(configurations.runtimeClasspath.get().files.joinToString("\n"))
}
}
tasks.register<Exec>("inspequte") {
dependsOn(tasks.named("writeInspequteInputs"))
inputs.files(
file("$buildDir/inspequte/inputs.txt"),
file("$buildDir/inspequte/classpath.txt")
)
outputs.file(file("$buildDir/inspequte.sarif"))
commandLine(
"inspequte",
"--input", "@$buildDir/inspequte/inputs.txt",
"--classpath", "@$buildDir/inspequte/classpath.txt",
"--output", "$buildDir/inspequte.sarif"
)
}
{
"version": "2.1.0",
"$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0.json",
"runs": [
{
"tool": {
"driver": {
"name": "inspequte",
"informationUri": "https://github.com/KengoTODA/inspequte"
}
},
"results": []
}
]
}
- name: Install inspequte
run: cargo install inspequte --locked
- name: Run inspequte
run: |
inspequte \
--input app.jar \
--classpath lib/ \
--output results.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
- name: Run inspequte with schema validation
run: |
INSPEQUTE_VALIDATE_SARIF=1 inspequte \
--input app.jar \
--classpath lib/ \
--output results.sarif
AGPL-3.0. See LICENSE.
Please follow Conventional Commits 1.0.0. See CONTRIBUTING.md.