Kotlin Support in Maguyva: Code Graphs for Android and JVM
Kotlin hides a lot of wiring in receivers and lambdas. The graph puts it back.
Extensions
.kt, .kts
Maguyva parses Dart with AST, symbol, and graph support, so AI agents can follow classes, mixins, extensions, and constructors across Flutter and Dart code.
Dart spreads one type across several constructs. A class can extend one base, implement several interfaces, and mix in behaviour with mixins. Extension methods attach members to types defined elsewhere, and named and factory constructors hide which class actually gets built. Text search finds the names but not the structure behind them.
Maguyva gives an agent that structure, so it can follow a change from a widget to the service it depends on.
Maguyva covers .dart files. Classes, mixins, and extensions are extracted as types. The functions preset in structural_search covers functions, methods, local functions, lambdas, and generative, const, and factory constructors. Signatures record optional positional and named parameter groups and static members, and definition names drop trailing ? and !.
Imports normalise import, part, and library directives and drop their show, hide, and as clauses. A call through an import prefix, such as http.get after import 'package:http/http.dart' as http, stays in the graph.
Receiver typing follows parameters, typed and initialised variables, getters, and for-in loops over lists, sets, and iterables, and treats var and dynamic as inferred. extends, implements, and with clauses are followed when resolving inherited members. The graph also records instantiation, type references, reads and writes, and exception edges.
CartRepository.addItem, and from which widgets?” (find_symbol, then dependency_search incoming)PaymentGateway?” (dependency_search)get_task_context)map, where, and forEach, Future and Stream methods such as then and listen, and the dart: libraries. Use text_pattern_search for them.structural_search results a local function or lambda can overlap the callable that contains it, and getters and setters appear as method signatures.Connect a repository with the quickstart, then check the support matrix on the compatibility page. For other mobile codebases, read the Kotlin guide and the Swift guide.
Best fit
Agent workflows
Engine details
Useful MCP entry points
Use it for a widget, repository, or service class when you need the definition and references.
Use incoming traversal on a repository method or interface to see callers and implementers before an API change.
Use it for prompts like “trace how the checkout button reaches the payments API.”
Related guides
Kotlin hides a lot of wiring in receivers and lambdas. The graph puts it back.
Extensions
.kt, .kts
In Swift, behaviour lives in protocols and extensions. An agent needs to see both.
Extensions
.swift