Composables

Library Insight

Community

Coding-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"

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.json or generated API_REFERENCE.md files 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-insight and the short alias li can 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.00 or com.google.firebase:firebase-bom) and KMP libraries, library-insight scan automatically resolves member libraries and applies target platform filtering (-p, --platform android by default) to filter out non-target KMP variants (iOS, JS, Wasm), stubs, and lints in seconds. Pass --platform all to 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 -i and -p flags based on intent.
  • Zero-Knowledge Version Discovery: If the user does not specify a library version, inspect gradle/libs.versions.toml or build.gradle.kts to discover the project's declared version. For standard open-source dependencies not declared in the project, run library-insight search-central <query> to query Maven Central. (Note: AndroidX and Compose libraries are hosted on Google Maven, so check libs.versions.toml or build.gradle.kts directly).
  • 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 --deep auto-resolves top-level GridKt and recursively includes all referenced receiver scopes like GridScope and GridConfigurationScope in 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 audit to audit project dependency APIs recursively.
  • Use library-insight dependency-check to 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 health to generate package health and API complexity reports.
  • Use library-insight dsl-report [--package <pkg>] to inspect Kotlin DSL surfaces, including @DslMarker scopes, 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-export to generate a token-optimized AI context package.
  • Use library-insight export to export the indexed API as JSON or Markdown documentation.

Important

Both scan and scan-source generate the same API index format. Once an index has been created, existing commands such as search, explain, export, and ai-export work 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-export
Analyze a local source project
library-insight scan-source app/src/main

library-insight search LoginRepository

library-insight explain LoginRepository

library-insight ai-export
Compare two versions
library-insight diff old.jar new.jar

library-insight migrate old.jar new.jar

library-insight semver old.jar new.jar

Command 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-insight

or

~/.library-insight/bin/library-insight

Additional 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:

  1. Step 1: Version & Coordinates Discovery: Check gradle/libs.versions.toml or build.gradle.kts to discover declared library versions. For undeclared libraries, run library-insight search-central <query> on Maven Central.
  2. Step 2: Indexing: Run library-insight scan <coordinate> -i "<include-pattern>" -p android (or scan-source) to index the target library.
  3. 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 skip search or jump directly to explain without searching first.
  4. Step 4: Exact Symbol Priority Rule: Run library-insight explain <ExactSymbol> --deep on the exact requested symbol (e.g. Grid) or top match from search before considering secondary alternatives.
  5. 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 .class files exist and prevent NoClassDefFoundError.

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.0

Optional 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 to android. 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.com

Example 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:

  1. Inspects Gradle Module Metadata (.module) to resolve target split coordinates.
  2. Resolves and downloads each platform's binaries (.klib or JVM .jar/.aar) and sources JAR.
  3. Automatically parses .klib manifests and maps compilation targets (e.g. ios, js, wasm, jvm).
  4. Merges all declarations, constructors, methods, and properties into a single unified index.
library-insight scan io.ktor:ktor-client-core:3.0.0

When 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/kotlin

Optional 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.0

Example 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-cache

Example 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 update

Example 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 Retrofit

Optional 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.json

Example 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 HtmlBuilder

Smart 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, explain displays "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.json

Example 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 @DslMarker markers, grouped by marker
  • Extension functions — all ReceiverType.function() signatures
  • Lambda-with-receiver parameters — DSL builder functions (block: Builder.() -> Unit)
  • Inline reified functions — functions with reified type parameters
library-insight dsl-report

Optional 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.json

Example 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 @DslMarker and 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 HtmlBuilder

Optional 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.json

Example 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.database

Optional 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.json

Example 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 health

Optional 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.json

Example 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-check

Optional Parameters:

  • --dir <project-dir>: Target project directory to scan (default: current directory)

Example with options:

library-insight dependency-check --dir /path/to/my-android-project

Example 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 audit

Example 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 doctor

Example 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.jar

Or via Maven coordinates:

library-insight diff com.squareup.retrofit2:retrofit:2.9.0 com.squareup.retrofit2:retrofit:2.11.0

Example 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.0

Optional 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/maven2

Example 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.0

Example 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 retrofit

Or search for another library like Clikt:

library-insight search-central clikt

Example 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.0

Example 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-export

Positional 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.json

Example 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 mcp

Optional 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.json

Example 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 init

Example 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 add

List registered skills in the current workspace:

library-insight skills list

Example 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-export for AI prompts instead.

Export to Markdown format:

library-insight export markdown

Export to JSON format:

library-insight export json

Positional Arguments:

  • [output-file]: Optional target output file path to write export content to. If not specified, defaults to build/API_REFERENCE.md or build/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.json

Example 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.

You're subscribed

The next lesson lands in on Wednesday.