Skip to content
Darab Ahmed
Doc
CS-03
Employer
i2c Inc.
Role
Design and build
Status
Built

Code-analysis engine for AI agents

Headless IntelliJ services in Kotlin that give AI agents exact facts about Java code: symbols, references, call paths, decision trees and the SQL a method runs.

  • Kotlin
  • IntelliJ Platform SDK
  • PSI
  • MCP

Context

This engine is the deterministic half of the code-knowledge system. It can also be used on its own by coding agents.

Problem

LLMs need precise, structural facts about code. Text search and embeddings cannot tell which method calls which, which branch a value takes, or which tables a query touches.

Approach

IntelliJ without the IDE window

The services load a project in a headless IntelliJ instance and use the PSI to resolve code exactly as the IDE does. They answer over MCP.

  • Symbol resolution, references and callers
  • Inheritance, overrides and cycles
  • Call paths, real entry points and reachability
  • Decision trees for every branch
  • SQL, messaging and HTTP call sites, with the tables and columns they touch

Stack

  • Kotlin
  • IntelliJ Platform SDK
  • PSI
  • MCP

What I learned

  • The IntelliJ PSI already solves Java resolution well. Reusing it gave more exact results than writing a parser.