Language Support
Constellation indexes code metadata from your source files, building a shared knowledge graph that AI coding assistants query to understand your codebase. This section covers which languages are supported, what gets extracted, and how to get the most out of each.
Supported Languages
| Language | Status | What's extracted | Guide |
|---|---|---|---|
| TypeScript | Supported | Symbols, types, imports, call graph, generics, decorators | — |
| JavaScript | Supported | Symbols, imports, call graph, JSDoc annotations | — |
| Python | Supported | Symbols, imports, call graph, type annotations | — |
| Go | Supported | Functions, methods, structs, interfaces, generics, goroutines, IMPLEMENTS edges | Go guide |
Languages are auto-detected from file extensions during indexing — no manual configuration required for a standard project layout.
What "Supported" Means
Privacy Guarantee
Constellation extracts structural metadata only. Your source code never leaves your environment. What gets transmitted is the shape of your code — symbols, types, relationships — not the text of your functions or the values of your strings.
Specifically, Constellation never transmits:
- Function or method bodies
- String literals or comments
- Any raw source text
What Gets Extracted
For every supported language, Constellation builds a knowledge graph that includes:
- Symbols — functions, methods, classes, interfaces, types, variables, and constants with their signatures and locations
- Relationships — imports, calls, inheritance, implementation, and dependency edges between symbols and files
- Structural metadata — parameter types, return types, visibility modifiers, and language-specific constructs
What Is Not Extracted
- Function body logic (what the code does is not captured — only what it is)
- Computed or runtime values
- Comments and documentation strings (unless they contribute to the structural shape, e.g., JSDoc type annotations)
How to Enable a Language
No special setup is required for base indexing. Run constellation index from the root of your Git repository and Constellation automatically detects all supported languages based on file extensions:
# Auto-detects all supported languages in your project
constellation index
Index Enrichment
For richer cross-reference data — more precise call hierarchies, cross-package type resolution, and interface implementation edges — run with the --enrich flag:
constellation index --enrich
When --enrich is active, Constellation starts the appropriate language server for each detected language and queries it for additional type information. Language server requirements vary by language; see the per-language guides for details.
Enrichment is opt-in. Base indexing without --enrich still produces high-quality results for most use cases.
Per-Language Guides
- Go — Setup, gopls enrichment, requirements, and query patterns