Chat

Unlike a generic AI assistant, C0 chat answers questions with reference to your actual code. It reads your files, follows call chains, and gives you answers grounded in what's really there not what typically exists in a project like yours.


Opening chat

Select Chat from the mode selector in the C0 panel.


Asking questions

Type any question in plain language and press Enter. C0 reads the relevant parts of your codebase and responds with a specific, grounded answer.

Understanding an area of code you've never touched:

How does the notification system work?
What triggers a notification and how does it get delivered?

Tracing data through a system:

Where does a user's profile picture get stored after upload? 
Trace it from the API endpoint to the final storage location.

Understanding behavior before making a change:

If I change the return type of getUserById from User to User | null,
what else in the codebase will I need to update?

Finding where something is implemented:

Where is the retry logic for failed API calls? Is it centralized or scattered across services?

Using @mentions to set scope

By default, C0 searches across your entire indexed codebase to answer a question. If you want to focus on a specific file, function, or directory, use @mentions.

@mentions can reference:

  • File paths — @src/utils/logger.ts

  • Directories — @src/services/

  • Function or class names — @UserRepository.findById

You can combine multiple @mentions to give C0 a richer scope:


Referencing selected code

Select any code in your editor before asking a question and C0 will use your selection as the primary context.

This is useful when you want to ask something about a specific block without typing out a file path:

  1. Select the code

  2. Open the C0 chat panel

  3. Ask your question C0 will automatically attach the selection


Following up

Chat is conversational. C0 remembers what was said earlier in the session, so you can ask follow-up questions without repeating context.


What chat is good for

Chat works best for understanding exploring, learning, and reasoning about code before making changes.

Good for chat
Better with another workflow

"How does X work?"

Fixing a specific bug → Debug mode

"Where is Y implemented?"

Improving a slow function → Optimize mode

"What calls Z?"

Writing tests → Test generation

"What will break if I change W?"

Reviewing a PR → Code review

"Explain this code to me"

Documenting a module → DeepWiki

"How does this system fit together?"

Visualizing a system → CodeMaps


Tips

Be specific about what you want to understand. How does auth work? gets a general answer. "How does token refresh work when a user's access token expires mid-session?" gets a precise one.

Ask about behavior, not just structure. C0 can explain not just what code does, but what happens in specific scenarios timeouts, edge cases, error paths, concurrent access.

Use chat to plan before you change. Before refactoring or adding a feature, ask C0 to map out what's involved. This surfaces dependencies and risks before you touch anything.

Last updated