Skip to content

Language support

Frigg publishes its live language capability matrix at frigg://policy/support-matrix.json. Capability tiers are core, optional_accelerator, and unsupported.

Every language below has core source filtering, Tree-sitter-backed document symbols, structural search, symbol corpus support, and read-only navigation. Navigation can combine source heuristics, graph evidence, and optional precise artifacts.

Language Indexed extensions
Rust .rs
PHP .php
Blade .blade.php
TypeScript / TSX .ts, .tsx
Python .py
Go .go
Kotlin / KTS .kt, .kts
Java .java
Lua .lua
Roc .roc
Nim .nim, .nims

Blade is a template surface with bounded source/template navigation. The other entries use the general source-language path.

Frigg links registry grammars for every core language. Blade, Kotlin, Nim, and Roc parser sources are vendored inside the crate so the published binary does not depend on unpublished grammar packages at runtime.

Semantic code chunks are currently supported for:

  • Rust
  • PHP
  • Blade

The semantic index also accepts Markdown, JSON, TOML, plain text, and YAML files. Other core programming languages still participate in lexical, symbol, structural, graph, and source-backed workflows; semantic chunking is currently unsupported for them.

Precise artifact assistance is optional across the registered language matrix. Built-in generator discovery is narrower:

Generator family Typical tool
Rust rust-analyzer
Go scip-go
TypeScript / JavaScript scip-typescript
PHP scip-php
Python scip-python
Kotlin Gradle/KTS workspace tooling

For other languages, use Frigg’s heuristic navigation or provide compatible artifacts under .frigg/scip/. Generator availability depends on repository shape and host-installed tools; Frigg does not install those toolchains.

  • Core means Frigg provides the capability without semantic or external precise setup.
  • Optional accelerator means the capability contributes only when runtime configuration and repository state support it.
  • Unsupported applies to that specific capability, not the entire language. For example, Python has core parsed search and navigation while semantic chunking remains unsupported.
  • ../frigg/crates/cli/src/languages/registry.rs
  • ../frigg/crates/cli/src/vendor_grammars.rs
  • ../frigg/crates/cli/src/mcp/guidance.rs
  • ../frigg/crates/cli/src/mcp/server/precise_graph/generation.rs
  • ../frigg/crates/cli/src/indexer/semantic.rs