Frequently Asked Questions
Common questions about how Constellation works, what it indexes, and how to get the most out of it.
Does my source code ever leave my machine?
No. Constellation analyzes your code locally and transmits only structural metadata, never the source itself. The CLI parses your files in your own environment and uploads a compressed, structural representation: the names of symbols, their locations, type signatures, and the relationships between them. Function bodies, string literals, comments, and raw source text are never transmitted.
This guarantee is enforced at the API layer, which rejects any payload that contains raw source. As a result, Constellation is safe to use with proprietary codebases, security-sensitive projects, and compliance-restricted environments. For the complete details, see the Privacy page.
How is this different from my IDE's "Find References" or a language server?
A language server answers questions for a single developer, in a single editor, across the file set it currently has parsed. Constellation maintains a shared, pre-indexed knowledge graph of your entire codebase that every team member's AI assistant queries as one source of truth.
Three differences matter most:
- It is shared and consistent. Everyone's AI assistant receives the same accurate answer to "what uses
AuthService?" rather than a result that varies by who asked or which files happened to be open. - It is built for AI assistants. Instead of reading files and spending tokens to reconstruct context, your assistant queries the graph and receives precise answers in a fraction of the tokens and time.
- It resolves relationships that text search misses. Dynamic references and indirect call chains that a
grep-based search overlooks are captured as explicit edges in the graph.
For the fuller story, see What is Constellation?.
Which languages and AI assistants are supported?
Languages. Constellation supports a growing set of programming languages. For the current list and the details of what is extracted from each, see Language Support.
AI assistants. Nearly any AI agent or assistant that speaks the Model Context Protocol can use Constellation, so support is broad by default rather than limited to a fixed list. On top of that, several assistants have full-featured official plugins that bring Constellation's intelligence directly into your workflow through pre-configured commands, skills, and agents for an optimized experience. See Official Plugins for the assistants with dedicated plugins.
Do I have to re-index every time my code changes, and how do branches work?
Indexing happens on demand rather than continuously. You run const index (or let your CI pipeline run it) whenever you want the graph to reflect the latest state of your code, typically after meaningful changes or as part of your merge workflow. Between runs, the graph remains as it was at the last index, so refreshing after significant changes is what keeps answers accurate.
Each branch is indexed and queried independently. Constellation scopes every node in the graph to a project and a branch, so analysis on a feature branch reflects that branch's code without interfering with main or any other branch. For indexing commands and automation, see the CLI documentation and CI/CD integrations.
How do I add more languages to an existing project's configuration?
If your project is already initialized but you now want Constellation to index an additional language, you have two options:
- Re-run the interactive setup. Run
const initagain from the root of your repository and select every language you want enabled. Re-initialization is idempotent: it uses your existingconstellation.jsonvalues as defaults, and the project ID populates automatically from the current configuration, so you can press Enter to keep it unless you intend to change it. Note that the selections you confirm overwrite the existing language settings, so be sure to select everything you want enabled, not only the new language. - Edit
constellation.jsondirectly. Add the desired language to the configuration file with its appropriate settings. See theconstellation.jsonconfiguration reference for the full list of fields and per-language options.
Either approach takes effect the next time you index the project.