Arrow keys or scroll to navigate
Scalex Kestrel

Scalex

Scala code intelligence for coding agents.
Zero build server. Zero compilation. Just answers.

144k+
Symbols
<400ms
Warm Query
30
Commands
01

Coding agents are blind in Scala.

When Claude or Cursor needs to find where PaymentService is defined, it has two bad options.

grep — Fast but dumb
Returns raw text. Can't filter by symbol kind. class Compiler matches CompilerTest, CompilerCommand. Agent must write follow-up regex.
Metals LSP — Smart but heavy
Requires build server, full compilation, minutes of startup. Designed for humans in IDEs, not agents making quick tool calls.
02

Source-level intelligence.
No compiler needed.

0

Zero setup

Point at any git repo. No build files, no config, no "connecting to build server". Clone and explore in seconds.

1

One call, not five

explain returns definition + scaladoc + members + implementations + import count in one response.

>

Smarter than grep

Categorized references. Wildcard import resolution. Transitive inheritance trees. Structural AST search.

03

How it works.

Git OIDs for caching. Scalameta for parsing. No compilation step.

git ls-files
~40ms / 18k files
Compare OIDs
skip unchanged
Scalameta parse
parallel streams
.scalex/index.bin
binary + blooms
Answer query
lazy maps
Scala 2 + 3
Java files
OID caching
Bloom filters
GraalVM native
04

One command. Structured answers.

scalex — scala3-compiler (18.5k files)
$ scalex hierarchy Compiler

  Children:
    ├── ExpressionCompiler .../ExpressionCompiler.scala:18
    ├── TASTYCompiler .../TASTYCompiler.scala:9
    │   └── TASTYDecompiler .../TASTYDecompiler.scala:11
    │       └── PartialTASTYDecompiler .../PartialTASTYDecompiler.scala:9
    ├── InteractiveCompiler .../InteractiveCompiler.scala:10
    ├── ReplCompiler .../ReplCompiler.scala:34
    └── QuoteCompiler .../QuoteCompiler.scala:35

  # grep can only find direct `extends Compiler` — misses the transitive tree
05

Scalex vs grep — imports.

"Who imports Compiler?" on the Scala 3 compiler (18.5k files).

scalex imports Compiler
.../ExpressionCompiler.scala:3
  import dotty.tools.dotc.Compiler (explicit)
.../Run.scala:5
  import dotty.tools.dotc.{Driver, Run, Compiler}
.../WeakHashSet.scala:9
  import dotty.tools.* (wildcard)
1,205 importers found
grep import.*\bCompiler\b
Only finds files with explicit imports of "Compiler".

Completely misses all files using
import dotty.tools.dotc.*
import scala.quoted.staging.*

98.6% of importers missed.
17 importers found
06

30 commands. Zero config.

explain
One-shot: def + doc + members + impls + imports. Saves 4-5 round trips.
refs --count
Categorized impact: "12 importers, 4 extensions, 30 usages" in one line.
hierarchy
Full inheritance tree — parents up, children down. Transitive.
body --in
Extract method source inline. Eliminates ~50% of follow-up Read calls.
imports
Wildcard import resolution — finds importers grep can't see.
batch
5 queries, one index load. ~600ms instead of ~2.5s.
07

Benchmarks on real codebases.

GraalVM native image. Tested on production code and the Scala 3 compiler.

Project Files Symbols Cold Index Warm Index
Production monorepo 14,219 170,094 5.3s 445ms
Scala 3 compiler 18,485 144,211 2.7s 349ms
~

Lazy map building — 2x faster

Derived indexes computed on first access. Commands that need 1-2 maps skip the rest. file command: 2.16x faster.

08

Built for agents, not humans.

The biggest cost for coding agents isn't latency — it's the number of tool calls.

ref

Categorized references with confidence

High (explicit import), Medium (wildcard), Low (no import). Grouped by Definition / ExtendedBy / ImportedBy / UsedAsType / Usage / Comment.

?

Self-correcting output

Disambiguation prints ready-to-run commands. Fuzzy "Did you mean?" on not-found. Package-qualified and Owner.member lookup.

--

Composable precision filters

--kind --path --no-tests --exact --strict --category --in-package --max-output on every command. Cut noise at the source.

09

Get started in 10 seconds.

# Claude Code — install the skill in one step
/plugin marketplace add nguyenyou/scalex
/plugin install scalex@scalex-marketplace

# Then try this in any Scala project:
"use scalex to explore how this project works"
# Other coding agents — just copy the skill folder
git clone --depth 1 https://github.com/nguyenyou/scalex.git /tmp/scalex
cp -r /tmp/scalex/plugins/scalex/skills/scalex /path/to/your/agent/skills/

# Bootstrap script auto-downloads the binary on first run
Scalex Kestrel

Grep knows text.
Scalex knows Scala.

Open source. MIT licensed. Built with Claude Code + Opus 4.6.