Library Insight
CommunityCoding-Meet
Use when the user asks to inspect a Java, Kotlin, or Kotlin Multiplatform (KMP) library API, scan Bill of Materials (BOM) coordinates (compose-bom, firebase-bom), auto-discover versions from Version Catalog (libs.versions.toml), verify method/class availability in installed dependency versions, compare or migrate between versions, audit deprecated APIs, check Gradle dependency graphs, scan local source code, or run commands like li scan and li explain.
Overview
- Repository
- Coding-Meet/Library-Insight
- Publisher
- Coding-Meet
- Stars
- 22
- Forks
- 1
- Bundled files
- 2
- License
- Apache-2.0
- Updated
- Sep 11, 2026
Installation
tmp=$(mktemp -d)
git clone --depth 1 https://github.com/Coding-Meet/Library-Insight.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/.agents/skills/library-insight" ~/.claude/skills/library-insight
rm -rf "$tmp"tmp=$(mktemp -d)
git clone --depth 1 https://github.com/Coding-Meet/Library-Insight.git "$tmp"
mkdir -p ~/.codex/skills
cp -R "$tmp/.agents/skills/library-insight" ~/.codex/skills/library-insight
rm -rf "$tmp"Install the Library Insight agent skill from https://github.com/Coding-Meet/Library-Insight/tree/main/.agents/skills/library-insight into this project's skills folder.Instructions
Library Insight Agent Skill
Use this skill when you need to understand, inspect, or build AI prompts for:
- Java and Kotlin libraries (JAR/AAR files)
- Kotlin Multiplatform libraries (KLib files)
- Maven Central dependencies
- Local Java or Kotlin source code projects
Library Insight analyzes compiled libraries (JVM artifacts and Kotlin Multiplatform libraries) and local source code to build a searchable API index. It extracts public APIs, type information, documentation, source metadata, and Kotlin-specific language features, allowing AI agents to work with the exact code being used instead of relying on outdated documentation or web examples.
[!IMPORTANT] AI Agent Token Optimization Rule:
DO NOT read the entire
build/library-insight-index.jsonor generatedAPI_REFERENCE.mdfiles directly using file-viewing tools. These files can be extremely large and will quickly exhaust the available context window.Instead, interact with the indexed database using the CLI query commands so that only the required symbols are loaded into context.
Both
library-insightand the short aliaslican be used interchangeably (e.g.,li scan ...,li search ...,li explain ...).Indexing & Version Discovery
- Use
library-insight scan <jar|aar|klib|directory|maven-coordinate>to index compiled libraries.- BOM & KMP Scanning: For Bill of Materials (BOM) coordinates (e.g.
androidx.compose:compose-bom:2024.09.00orcom.google.firebase:firebase-bom) and KMP libraries,library-insight scanautomatically resolves member libraries and applies target platform filtering (-p, --platform androidby default) to filter out non-target KMP variants (iOS, JS, Wasm), stubs, and lints in seconds. Pass--platform allto scan all variants. Use-i, --include <pattern>(e.g.-i "*foundation*"or-i "*ui*") to selectively scan matching member artifacts. AI Agent Rule: Use surrounding wildcards like-i "*foundation*"for include filters to match full group/artifact coordinates. Automatically infer and append missing-iand-pflags based on intent.- Zero-Knowledge Version Discovery: If the user does not specify a library version, inspect
gradle/libs.versions.tomlorbuild.gradle.ktsto discover the project's declared version. For standard open-source dependencies not declared in the project, runlibrary-insight search-central <query>to query Maven Central. (Note: AndroidX and Compose libraries are hosted on Google Maven, so checklibs.versions.tomlorbuild.gradle.ktsdirectly).- Use
library-insight scan-source <directory>to index a local Java/Kotlin source project without compilation.Querying
- Use
library-insight search <query>to locate packages, classes, methods, or properties.- Use
library-insight explain <class|function|member> [--deep]to inspect a class or top-level Kotlin symbol. Always pass--deep(or-d) when exploring DSLs or multi-type APIs (e.g.library-insight explain Grid --deepauto-resolves top-levelGridKtand recursively includes all referenced receiver scopes likeGridScopeandGridConfigurationScopein 1 single turn).- Inner & Companion Class Shell Escaping: When querying nested or Companion classes in bash/zsh shell, escape the dollar sign with quotes (e.g.
library-insight explain "GridTrackSize\$Companion").- Use
library-insight examples <class>to generate typical usage examples (for top-level Kotlin functions, pass the facade class name e.g.examples GridKt).Analysis
- Use
library-insight diff <old> <new>to compare two library versions.- Use
library-insight migrate <old> <new>to generate a migration report with replacement suggestions.- Use
library-insight auditto audit project dependency APIs recursively.- Use
library-insight dependency-checkto detect runtime linkage and ABI conflicts across transitive dependencies.- Use
library-insight dependency-graph <coordinate>to visualize dependency trees.- Use
library-insight semver <old> <new>to validate Semantic Versioning API compatibility.- Use
library-insight healthto generate package health and API complexity reports.- Use
library-insight dsl-report [--package <pkg>]to inspect Kotlin DSL surfaces, including@DslMarkerscopes, type aliases, extension functions, lambda receivers, and inline reified functions.- Use
library-insight callgraph <class.method>to recursively trace internal library method invocation call graphs.AI Context
- Use
library-insight ai-exportto generate a token-optimized AI context package.- Use
library-insight exportto export the indexed API as JSON or Markdown documentation.Important
Both
scanandscan-sourcegenerate the same API index format. Once an index has been created, existing commands such assearch,explain,export, andai-exportwork identically regardless of whether the data originated from compiled bytecode or local source code.
[!NOTE] What Library Insight extracts
Depending on the input, Library Insight indexes:
- Packages
- Classes
- Interfaces
- Enums
- Java Records
- Kotlin Objects
- Companion Objects
- Constructors
- Methods
- Properties and Fields
- Generic type parameters
- Nullability information
- Modifiers
- Annotations
- Package imports
- Source locations (
file:line)- Javadoc
- KDoc
- Kotlin metadata (
@Metadata)- Data classes
- Value classes
- Sealed classes and interfaces
- Extension functions
- Kotlin DSL constructs
[!TIP] MCP Integration Rule
If an MCP server is already configured (for example in Cursor, Claude Desktop, VS Code, Windsurf, or another MCP-compatible IDE), prefer using the MCP server instead of invoking the CLI through subprocesses.
The MCP server provides native tools for indexing libraries or source projects, searching indexed symbols, explaining APIs, and serving AI context with lower overhead than repeatedly executing CLI commands.
Typical Workflows
Analyze a compiled library
library-insight scan my-library.jar
library-insight search Retrofit
library-insight explain retrofit2.Retrofit
library-insight ai-exportAnalyze a local source project
library-insight scan-source app/src/main
library-insight search LoginRepository
library-insight explain LoginRepository
library-insight ai-exportCompare two versions
library-insight diff old.jar new.jar
library-insight migrate old.jar new.jar
library-insight semver old.jar new.jarCommand Reference
The library-insight CLI can be executed globally by:
- Installing using the installer:
curl -fsSL https://raw.githubusercontent.com/Coding-Meet/Library-Insight/main/install.sh | bash- Running the locally installed binary:
library-insightor
~/.library-insight/bin/library-insightAdditional Guidance for AI Agents
When answering questions or generating code for a library or project, AI agents MUST follow this mandatory step-by-step workflow:
- Step 1: Version & Coordinates Discovery: Check
gradle/libs.versions.tomlorbuild.gradle.ktsto discover declared library versions. For undeclared libraries, runlibrary-insight search-central <query>on Maven Central. - Step 2: Indexing: Run
library-insight scan <coordinate> -i "<include-pattern>" -p android(orscan-source) to index the target library. - Step 3: Mandatory Symbol Search: ALWAYS run
library-insight search <query>(e.g.library-insight search Grid) FIRST to discover all matching packages, classes, methods, and properties in the index. DO NOT skipsearchor jump directly toexplainwithout searching first. - Step 4: Exact Symbol Priority Rule: Run
library-insight explain <ExactSymbol> --deepon the exact requested symbol (e.g.Grid) or top match fromsearchbefore considering secondary alternatives. - Step 5: Code Generation & File Edits Rule: Directly modify or create the target source file in the user's project with the version-matched code instead of only outputting raw code snippets in the chat response. Always execute project build (e.g.
gradle_build(commandLine=app:assembleDebug)) before invoking Compose UI Preview rendering tools to ensure compiled.classfiles exist and preventNoClassDefFoundError.
Scanners & Indexing
scan — Scan a Library
Scan a JAR, AAR, local directory, or Maven coordinate. Use this first to build the local index.
Offline-First & Smart Caching:
- Checks your Gradle cache (
~/.gradle/caches/) first before downloading.- Inside a Gradle project, downloaded artifacts land in
build/library-insight/cache/.
library-insight scan com.squareup.retrofit2:retrofit:2.11.0Optional Parameters:
--db <file>: Path to save the JSON index database (default:build/library-insight-index.json)-s, --sources <file>: Path to sources JAR/AAR or source code folder to extract Javadoc/KDoc comments & guide examples-p, --platform <target>: Target platform filter for BOM and KMP scans (android,jvm,ios,desktop,all). Defaults toandroid. Filters out non-target KMP variants (e.g. iOS/JS/Wasm), stubs, and lints.-i, --include <pattern>: Filter BOM managed dependencies by wildcard pattern (e.g.-i "compose-ui*",-i "*animation*"). Multiple allowed.--repo <url>: Additional Maven repository URL to download coordinates (multiple allowed)--lib-name <name>: Override the library name in the generated index--lib-version <version>: Override the version tag in the generated index
Example with options:
library-insight scan com.squareup.okhttp3:okhttp:4.12.0 --sources okhttp-sources.jar --repo https://maven.google.comExample output:
Detected Maven coordinate: com.squareup.retrofit2:retrofit:2.11.0
-> Using cached binary JAR from Gradle cache: retrofit-2.11.0.jar
-> Using cached sources JAR from Gradle cache: retrofit-2.11.0-sources.jar
Scan complete! Found 113 classes across 3 packages.
Saved API index to: build/library-insight-index.json
Kotlin Multiplatform (KMP) Scanning
When you supply a root Kotlin Multiplatform library coordinate, the scan command automatically:
- Inspects Gradle Module Metadata (
.module) to resolve target split coordinates. - Resolves and downloads each platform's binaries (
.klibor JVM.jar/.aar) and sources JAR. - Automatically parses
.klibmanifests and maps compilation targets (e.g.ios,js,wasm,jvm). - Merges all declarations, constructors, methods, and properties into a single unified index.
library-insight scan io.ktor:ktor-client-core:3.0.0When explaining a class from a KMP index, platform target tags are annotated on class and member declarations:
==================================================
CLASS EXPLAIN REPORT
==================================================
Class: io.ktor.client.HttpClient
Package: io.ktor.client
Kind: class
Visibility: public
Targets: common, jvm
...
Constructors:
- public constructor(engine: HttpClientEngine, userConfig: HttpClientConfig<out HttpClientEngineConfig>) [common]
- public constructor(engine: io.ktor.client.engine.HttpClientEngine, ... ) [jvm]
scan-source — Local Source Directory Scanner
Scan a local raw source directory containing Kotlin (.kt) and Java (.java) files to build an API index database.
library-insight scan-source sample/src/main/kotlinOptional Parameters:
--db <file>: Target index database JSON file path to write to (default:build/library-insight-index.json)--lib-name <name>: Override the library name tag in the generated index--lib-version <version>: Override the version tag in the generated index
Example with options:
library-insight scan-source src/main/kotlin --db build/my-app-index.json --lib-name MyApp --lib-version 1.0.0Example output:
Scanning source directory: /Users/meet/AndroidStudioProjects/Library-Insight/sample/src/main/kotlin
Detected:
• Kotlin files : 1
• Java files : 0
Scan complete!
Found 15 classes across 3 packages.
Saved API index to:
/Users/meet/AndroidStudioProjects/Library-Insight/build/library-insight-index.json
clear-cache — Clear Local Cache
Delete all locally downloaded Maven artifacts.
library-insight clear-cacheExample output:
Clearing local cache at: ~/.library-insight/cache...
Cache cleared successfully. Deleted 12.4 MB.
update — Self-Update CLI
Check for the latest release on GitHub and automatically download and update the Library Insight installation to the latest version.
library-insight updateExample output:
Checking for updates...
A new version is available: v1.4.0 (Current: v1.3.0)
Updating Library Insight...
==================================================
Installing Library Insight v1.4.0...
==================================================
...
SUCCESS: Library Insight installed globally!
Library Insight updated successfully to v1.4.0!
API Explorer & Lookup
search — Search Symbols
Search for packages, classes, methods, or properties in the saved index.
library-insight search RetrofitOptional Parameters:
--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)
Example with options:
library-insight search "anno:Keep" --db custom-index.jsonExample output:
Found 2 matches for 'Retrofit':
--------------------------------------------------
[CLASS] class retrofit2.Retrofit
Source: src/main/java/retrofit2/Retrofit.java:18
[CLASS] class retrofit2.Retrofit$Builder
Source: src/main/java/retrofit2/Retrofit.java:82
--------------------------------------------------
explain — Explain a Class or Symbol
Print detailed structural information (modifiers, superclass, constructors, properties, methods, Javadoc/KDoc, and nested usage guide examples extracted from README/Dokka markdown files) for a specific class or top-level symbol.
library-insight explain HtmlBuilderSmart Resolution Capabilities:
- Kotlin Top-Level Function Resolution (
${name}Kt): Querying a top-level Kotlin function (e.g.library-insight explain Grid) automatically resolves to its Kotlin facade class (GridKt). - Member Method & Property Lookup: Querying a method or property directly (e.g.
library-insight explain gridItem) automatically locates its declaring class (e.g.GridScope). - Fuzzy Typo Suggestions: If a symbol is not found or has a typo,
explaindisplays "Did you mean one of these?" with close matches.
Optional Parameters:
-d, --deep: Recursively explain referenced parameter types, DSL receiver scopes, and return types in a single output.--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)
Example with options:
# Deep recursive DSL scope resolution
library-insight explain Grid --deep
# Custom database index
library-insight explain HtmlBuilder --db custom-index.jsonExample output:
==================================================
CLASS EXPLAIN REPORT
==================================================
Class: com.meet.sample.HtmlBuilder
Package: com.meet.sample
Kind: class
Visibility: public
Source: sample/src/main/kotlin/com/meet/sample/SampleLibrary.kt:25
Annotations: @HtmlDsl
==================================================
Imports:
- kotlin.text.*
- retrofit2.Retrofit
Properties:
- private val children: Any (sample/src/main/kotlin/com/meet/sample/SampleLibrary.kt:27)
Methods:
// /** Adds a paragraph element to the HTML output. */
- public fun p(text: String): Unit (sample/src/main/kotlin/com/meet/sample/SampleLibrary.kt:29)
// /** Adds a heading element. */
- public fun h1(text: String): Unit (sample/src/main/kotlin/com/meet/sample/SampleLibrary.kt:32)
// /** Adds a nested div block. */
- public fun div(block: HtmlBuilder.() -> Unit): Unit (sample/src/main/kotlin/com/meet/sample/SampleLibrary.kt:35)
- public fun build(): String (sample/src/main/kotlin/com/meet/sample/SampleLibrary.kt:41)
dsl-report — Kotlin DSL Surface Report
Generate a dedicated Kotlin DSL surface report for DSL-heavy libraries. Shows:
- Type aliases extracted from package metadata
- DSL scopes — classes annotated with
@DslMarkermarkers, grouped by marker - Extension functions — all
ReceiverType.function()signatures - Lambda-with-receiver parameters — DSL builder functions (
block: Builder.() -> Unit) - Inline reified functions — functions with
reifiedtype parameters
library-insight dsl-reportOptional Parameters:
--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)-p, --package <pkg>: Filter results to a specific package name prefix
Example with options:
library-insight dsl-report --package io.ktor.client --db custom-index.jsonExample output:
==================================================
DSL SURFACE REPORT — ktor-client-core-jvm 2.3.12
==================================================
▶ Type Aliases (3)
typealias HttpClientConfig<T> = T.() -> Unit
typealias ResponseValidator = suspend (response: HttpResponse) -> Unit
typealias HeadersBuilder = StringValuesBuilder
▶ DSL Scopes — @DslMarker annotated classes (5)
@KtorDsl → HttpClientConfig, HttpRequestBuilder, HeadersBuilder
▶ Extension Functions (24)
fun HttpClient.get(urlString: String, block: (String) -> Unit): HttpResponse
fun HttpRequestBuilder.contentType(contentType: ContentType): Unit
...
▶ Lambda-with-Receiver Parameters — DSL builder functions (12)
fun httpClient([config: HttpClientConfig<*>.() -> Unit]): HttpClient
fun HttpRequestBuilder.headers([block: HeadersBuilder.() -> Unit]): Unit
...
▶ Inline Reified Functions (3)
inline fun <reified T> HttpClient.get(url: String): T
inline fun <reified T> HttpResponse.body(): T
...
==================================================
Tip: run 'explain <ClassName>' for full API details on any class above.
==================================================
Note for DSL library authors: If your library uses
@DslMarkerand the annotation is bundled in the same JAR, Library Insight will group all DSL builder scopes by their marker annotation — making it easy for AI agents and developers to understand which builders can safely nest.
examples — API Usage Examples Generator
Generate idiomatic Kotlin code examples showing typical usage patterns for a specific class. Automatically scans bytecode signatures to determine target design patterns (Constructor, Builder, Factory, Singleton) and extracts nested guide examples from README/Dokka markdown files.
library-insight examples HtmlBuilderOptional Parameters:
--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)
Example with options:
library-insight examples HtmlBuilder --db custom-index.jsonExample output:
==================================================
API USAGE EXAMPLES GENERATOR — HtmlBuilder
==================================================
// Target API: com.meet.sample.HtmlBuilder
Detected Usage Patterns:
✓ Constructor
✗ Builder
✗ Factory
✗ Singleton
==================================================
// Pattern: Guide Examples (from README/Dokka)
val result = html {
head {
title("My Page")
}
div {
p("Welcome to Library Insight!")
}
}
// Pattern: Constructor Instantiation
val htmlbuilder = com.meet.sample.HtmlBuilder()
// API Invocation Examples
htmlbuilder.p(text = "example") // returns: kotlin.Unit
htmlbuilder.h1(text = "example") // returns: kotlin.Unit
htmlbuilder.div(block = { }) // returns: kotlin.Unit
htmlbuilder.build() // returns: kotlin.String
==================================================
Analysis & Diagnostics
callgraph — Method Call Graph Generator
Generate a recursive tree representation showing all internal library methods called by a specific method node. Uses ASM instructions analysis to map actual execution paths.
library-insight callgraph AppConfigBuilder.databaseOptional Parameters:
--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)
Example with options:
library-insight callgraph AppConfigBuilder.database --db custom-index.jsonExample output:
==================================================
METHOD INVOCATION CALL GRAPH — database
==================================================
▶ Starting entrypoint: com.meet.sample.AppConfigBuilder.database(Lkotlin/jvm/functions/Function1;)V
└── com.meet.sample.DatabaseConfigBuilder.<init>()
==================================================
health — Package Health & Complexity Report
Generate a detailed report showing public API statistics, deprecation ratios, topo package sizes, and structural complexity metrics (largest classes, deepest inheritance hierarchies, generic density).
library-insight healthOptional Parameters:
--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)
Example with options:
library-insight health --db custom-index.jsonExample output:
==================================================
PACKAGE HEALTH & COMPLEXITY REPORT
==================================================
Library Target : sample-1.1.0 (1.0.0)
API Health Grade: A (Deprecation ratio: 1.11%)
==================================================
▶ API Distribution
Total Public APIs : 90
├─ Classes/Objects : 16
├─ Constructors : 13
├─ Methods : 37
├─ Properties : 21
└─ Type Aliases : 3
Deprecated APIs : 1
Experimental APIs : 0
▶ Package Topology
Largest Package : com.meet.sample (16 classes)
Most Deprecated Pkg : com.meet.sample (1 deprecated methods)
▶ API Complexity Metrics
Largest Class : com.meet.sample.SampleLibraryKt (9 methods)
Longest Signature : com.meet.sample.User.copy (3 parameters)
Deepest Inheritance : com.meet.sample.AppConfig (1 supertypes: kotlin.Any)
Most Generic Class : com.meet.sample.SampleLibraryKt$retry$1 (1 parameters: <T>)
==================================================
dependency-check — Transitive ABI Dependency Conflict Detector
Scan all Gradle build dependencies and verify classpath bytecode references against resolved dependency JARs. Flags potential runtime LinkageError and NoSuchFieldError issues before deployment.
library-insight dependency-checkOptional Parameters:
--dir <project-dir>: Target project directory to scan (default: current directory)
Example with options:
library-insight dependency-check --dir /path/to/my-android-projectExample output:
==================================================
DEPENDENCY CONFLICT & ABI DETECTOR
==================================================
Analyzing 5 dependencies on classpath...
Defined classes in classpath: 39
Defined methods: 582
Analyzing references for ABI linkage conflicts...
🚨 Potential ABI Method Conflicts (LinkageError risk):
[Method Missing] class org.objectweb.asm.CurrentFrame (from asm-9.7.jar)
└── Calls missing method: org.objectweb.asm.CurrentFrame.merge(...)
==================================================
Analysis Complete: ❌ 12 potential linkage conflicts detected.
==================================================
audit — Dependency API Audit
Scan all project Gradle dependencies recursively (build.gradle.kts, libs.versions.toml) and report deprecated classes, methods, and properties found in the bytecode.
library-insight auditExample output:
==================================================
Library Insight Dependency Audit
==================================================
Found 10 dependencies to audit.
Auditing org.ow2.asm:asm:9.7...
- Status: ⚠️ Deprecations detected
* Deprecated Methods : 2
* Deprecated Properties : 2
Audit Summary: Scanned 10 libraries. Total Deprecated APIs: 1819
doctor — Diagnostics
Check Java version, cache directory, and active AI agent skill configurations.
library-insight doctorExample output:
==================================================
Library Insight Diagnostics & Doctor
==================================================
1. Java Runtime Environment (JRE):
- Version: 17.0.17
- Vendor: Microsoft
- Status: OK (Java 17+ verified)
2. Local Download Cache:
- Path: ~/.library-insight/cache
- Status: OK
3. Global AI Agent Skill Configurations:
- Cursor : INSTALLED (Verified)
- Gemini Config : INSTALLED (Verified)
- Claude Desktop : INSTALLED (Verified)
- Antigravity Agents : INSTALLED (Verified)
- GitHub Copilot : INSTALLED (Verified)
==================================================
Diagnostics completed.
Versioning & Migration
diff — Compare Versions
Compare two library archives to check for added, removed, and changed APIs including breaking changes.
library-insight diff retrofit-2.9.0.jar retrofit-2.11.0.jarOr via Maven coordinates:
library-insight diff com.squareup.retrofit2:retrofit:2.9.0 com.squareup.retrofit2:retrofit:2.11.0Example output:
==================================================
LIBRARY INSIGHT API DIFF REPORT
==================================================
Breaking Changes Found: NO
➕ Added Classes:
- retrofit2.Reflection
📝 Changed Classes:
Class: retrofit2.Invocation
Added Methods:
+ fun service(): java.lang.Class<?>
migrate — Migration Advisor
Compare two versions and get a structured migration report showing removed, deprecated, and replacement APIs.
library-insight migrate com.squareup.retrofit2:retrofit:2.9.0 com.squareup.retrofit2:retrofit:2.11.0Optional Parameters:
--repo <url>: Additional Maven repository URLs to resolve coordinates (multiple allowed)
Example with options:
library-insight migrate com.squareup.retrofit2:retrofit:2.9.0 com.squareup.retrofit2:retrofit:2.11.0 --repo https://repo.maven.apache.org/maven2Example output:
==================================================
Library Insight Migration Report
==================================================
Old Version : 2.9.0
New Version : 2.11.0
❌ Removed Classes
- retrofit2.Platform$Android
❌ Removed Methods
- fun retrofit2.Platform.defaultCallbackExecutor(): Executor
Binary Compatibility: ❌ BREAKING CHANGES DETECTED
semver — SemVer Compliance Check
Verify that the version number bump between two releases correctly reflects the bytecode changes (breaking change requires major bump, added APIs require minor bump).
library-insight semver com.squareup.retrofit2:retrofit:2.9.0 com.squareup.retrofit2:retrofit:2.11.0Example output:
🚨 SemVer Violation: Version bump does not match API changes!
❌ API Breaking Change detected but MAJOR version was not incremented!
Maven & Dependency Resolution
search-central — Search Maven Central
Search Maven Central dynamically for matching coordinates and versions.
Search for Retrofit on Maven Central:
library-insight search-central retrofitOr search for another library like Clikt:
library-insight search-central cliktExample output:
Searching Maven Central for 'clikt'...
Found 10 matching libraries on Maven Central:
📦 Coordinate: com.github.ajalt.clikt:clikt:5.0.3
Repository: central
Group: com.github.ajalt.clikt
Artifact: clikt
--------------------------------------------------
📦 Coordinate: com.github.ajalt:clikt:2.8.0
Repository: central
Group: com.github.ajalt
Artifact: clikt
dependency-graph — Dependency Tree
Print a visual recursive tree of transitive dependencies from POM descriptors.
library-insight dependency-graph com.github.ajalt.clikt:clikt-jvm:4.4.0Example output:
com.github.ajalt.clikt:clikt-jvm:4.4.0
│ ├── com.github.ajalt.mordant:mordant-jvm:2.5.0
│ │ ├── com.github.ajalt.colormath:colormath-jvm:3.5.0
│ │ │ ├── org.jetbrains.kotlin:kotlin-stdlib:1.9.21
AI Context & Integration
ai-export — AI Context Export (Recommended for AI prompts)
Splits the scanned database into a token-efficient directory structure under build/ai-context/. AI agents read metadata.json first, then load only the class files they need — reducing token usage by 95%+.
library-insight ai-exportPositional Arguments:
[output-dir]: Optional target output directory to save AI context files (default:build/ai-context/)
Optional Parameters:
--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)
Example with options:
library-insight ai-export custom-ai-context/ --db custom-index.jsonExample output:
Generated compact LLM context directory structure at: build/ai-context
mcp — MCP Server
Start the Model Context Protocol server on stdio. Connect Cursor, Claude Desktop, or any MCP-compatible IDE to use scan_library, search_symbols, explain_class, and dsl_report tools natively.
library-insight mcpOptional Parameters:
--db <file>: Index database JSON file path to read from and write to (default:build/library-insight-index.json)
Example with options:
library-insight mcp --db /path/to/project/custom-index.jsonExample output (JSON-RPC tools list response):
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "scan_library",
"description": "Scans a Java/Kotlin library and creates an API index.",
"inputSchema": {
"type": "object",
"properties": { "pathOrCoordinate": { "type": "string" } }
}
},
{
"name": "search_symbols",
"description": "Search for symbols in the active library index.",
"inputSchema": {
"type": "object",
"properties": { "query": { "type": "string" } }
}
}
]
}
}MCP vs CLI: If an MCP server is already configured in your IDE, prefer it over running CLI commands directly.
init — Initialize Workspace Skill
Write a SKILL.md into .agents/skills/library-insight/ so local AI agents auto-discover the CLI.
library-insight initExample output:
Initializing Library Insight agent environment...
Creating directory: .agents/skills/library-insight/
Successfully initialized workspace skill instructions!
skills — Manage Agent Skills
Add skill to the current workspace:
library-insight skills addList registered skills in the current workspace:
library-insight skills listExample output (skills list):
Workspace AI Agent Skills:
- [Installed] library-insight
export — Export Index
Export the scanned index to Markdown or JSON.
For large libraries, Markdown files can be huge. Use
ai-exportfor AI prompts instead.
Export to Markdown format:
library-insight export markdownExport to JSON format:
library-insight export jsonPositional Arguments:
[output-file]: Optional target output file path to write export content to. If not specified, defaults tobuild/API_REFERENCE.mdorbuild/library-insight-index.json. Use-to print to stdout.
Optional Parameters:
--db <file>: Index database JSON file path to read from (default:build/library-insight-index.json)
Example with options:
library-insight export markdown API_REFERENCE.md --db custom-index.jsonExample output:
Exported MARKDOWN to: build/API_REFERENCE.md
Bundled files
FAQ
What does Library Insight do?
Use when the user asks to inspect a Java, Kotlin, or Kotlin Multiplatform (KMP) library API, scan Bill of Materials (BOM) coordinates (compose-bom, firebase-bom), auto-discover versions from Version Catalog (libs.versions.toml), verify method/class availability in installed dependency versions, compare or migrate between versions, audit deprecated APIs, check Gradle dependency graphs, scan local source code, or run commands like li scan and li explain.
Who made Library Insight?
Coding-Meet (a community member) publishes it in the Coding-Meet/Library-Insight repository on GitHub.
Is Library Insight free?
Yes. Library Insight is open source, published by Coding-Meet under the Apache-2.0 license.
What comes with Library Insight?
Its instructions and 2 files the agent reads only when a task needs them, such as references, examples or scripts.
Which agents can use Library Insight?
Any coding agent that reads SKILL.md files, including Claude Code, Codex, Cursor, GitHub Copilot and Gemini CLI. The agent loads the skill when a task matches its description.
What are agent skills?
An agent skill is a folder with a SKILL.md file: instructions that teach a coding agent how to do one kind of task, and optionally files it can read while it works. The agent keeps only the skill's name and description in mind and reads the rest when a task calls for it.
How are agent skills different from MCP servers?
An MCP server gives an agent new tools to call, code that runs somewhere and returns results. A skill gives it knowledge: how to approach a task with the tools it already has. Many agents use both.
How can my agent test my Android app?
Robomori lets coding agents create, start and control Android emulators and devices from one command, so they can install your app, take screenshots and check dark mode, font sizes and languages.