# Codeium Docs

## Docs

- [Overview](https://docs.codeium.com/autocomplete/overview)
- [Tips](https://docs.codeium.com/autocomplete/tips)
- [Models](https://docs.codeium.com/chat/models)
- [Overview](https://docs.codeium.com/chat/overview): Converse with a codebase-aware AI
- [Overview](https://docs.codeium.com/command/overview): AI-powered in-line edits
- [Refactors, Docstrings, and More](https://docs.codeium.com/command/related-features): Features powered by Command
- [Overview](https://docs.codeium.com/context-awareness/overview): On codebase context and related features
- [Analytics & Profile](https://docs.codeium.com/extensions/analytics)
- [Compatibility](https://docs.codeium.com/extensions/compatibility)
- [Getting Started](https://docs.codeium.com/extensions/getting-started): Welcome to Codeium
- [Overview](https://docs.codeium.com/supercomplete/overview)
- [Common Issues](https://docs.codeium.com/troubleshooting/common-issues)
- [Advanced](https://docs.codeium.com/windsurf/advanced)
- [Cascade](https://docs.codeium.com/windsurf/cascade)
- [Getting Started](https://docs.codeium.com/windsurf/getting-started): Tomorrow's editor, today


## Optional

- [Discord Community](https://discord.com/invite/3XFf78nAx5)
- [Codeium Blog](https://codeium.com/blog)
- [Support](mailto:hello@codeium.com)


# Overview



**Codeium Autocomplete** is powered by our best-in-class proprietary model, trained from scratch to optimize for speed and accuracy.

<Frame>
  <img src="https://exafunction.github.io/public/autocomplete/autocomplete-speed-fast.gif" />
</Frame>

Our autocomplete makes in-line and multi-line suggestions based on the context of your code.

Suggestions appear in grey text as you type. You can press `esc` to cancel a suggestion.
Suggestions will also disappear if you continue typing or navigating without accepting them.

## Keyboard Shortcuts

Here are shortcuts that apply for MacOS.
Replace `⌘` with `Ctrl` and `⌥` with `Alt` to get the corresponding shortcuts on Windows/Linux.

*   **Accept suggestion**: `⇥`
*   **Cancel suggestion**: `esc`
*   **Accept suggestion word-by-word**: `⌘+→` (VS Code), `⌥+⇧+\` (JetBrains)
*   **Next/previous suggestion**: `⌥+]`/`⌥+[`
*   **Trigger suggestion**: `⌥+\`

## Autocomplete Speeds

You can set the speed of the Autocomplete in your settings.

<Note>Fast Autocomplete is currently only available to our Pro, Teams, and Enterprise Users.</Note>

<Frame>
  <img src="https://exafunction.github.io/public/autocomplete/autocomplete-speeds-select.png" />
</Frame>


# Tips



## Inline Comments

You can instruct autocomplete with the use of comments in your code.
Codeium will read these comments and suggest the code to bring the comment to life.

<Frame>
  <img src="https://exafunction.github.io/public/autocomplete/minimize_boilerplate.gif" />
</Frame>

This method can get you good mileage, but if you're finding value in writing natural-language instructions and having the AI execute them,
consider using [Codeium Command](/command/overview).

## Fill In The Middle (FIM)

Codeium's Autocomplete can Fill In The Middle (FIM).

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://exafunction.github.io/public/videos/inline_fim/inline_fim_codeium.mp4" />

Read more about in-line FIM on our blog [here](https://codeium.com/blog/inline-fim-code-suggestions).

## Snooze

Click the Codeium widget in the status bar towards the bottom right of your editor to see the option to switch Autocomplete off,
either temporarily or until you reenable it.


# Models



While we provide and train our own dedicated models for Chat, we also give you the flexibility choose your favorites.

It's worth noting that the Codeium models are tightly integrated with our reasoning stack, leading to better quality suggestions than external models for coding-specific tasks.

Due to our industry-leading infrastructure, we are able to offer them for free (or at very low cost) to our users.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_model_selection.png" />
</Frame>

Model selection can be found directly under the chat.

## Base Model ⚡

**Access:** All users

Available for unlimited use to all users is a fast, high-quality Codeium Chat model based on Meta's [Llama 3.1 70B](https://ai.meta.com/blog/meta-llama-3-1/).

This model is optimized for speed, and is the **fastest** model available in Codeium Chat. This is all while still being extremely accurate.

## Codeium Premier 🚀

**Access:** Any paying users (Pro, Teams, Enterprise, etc.)

Available in our paid tier is unlimited usage of our premier Codeium Chat model based on Meta's [Llama 3.1 405B](https://ai.meta.com/blog/meta-llama-3-1/).

This is the **highest-performing model** available for use in Codeium, due to its size and integration with Codeium's reasoning engine and native workflows.

## Other Models (GPT-4o, Claude 3.5 Sonnet)

**Access:** Any paying users (Pro, Teams, Enterprise, etc.)

Codeium provides access to OpenAI's and Anthropic's flagship models, available for use in any of our paid tiers.


# Overview

Converse with a codebase-aware AI

<Note>
  Chat and its related features are only supported in: VS Code, JetBrains IDEs, Eclipse, X-Code, and Visual Studio.
</Note>

<Tip> Chat in Windsurf is integrated within [Cascade](/windsurf/cascade). Set to "Chat" mode to replicate the original experience.</Tip>

**Codeium Chat** enables you to talk to your codebase from within your editor.
Chat is powered by our industry-leading [context awareness](/context-awareness/overview.mdx) engine.
It combines thoughtfully-designed, built-in context retrieval with optional user guidance to provide accurate and grounded answers.

<Tabs>
  <Tab title="VS Code">
    In VS Code, Codeium Chat can be found by default on the left sidebar.
    If you wish to move it elsewhere, you can click and drag the Codeium icon and relocate it as desired.

    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_vscode_where_to_find.png" />
    </Frame>

    You can use `⌘+⇧+A` on Mac or `Ctrl+⇧+A` on Windows/Linux to open the chat panel and toggle focus between it and the editor.
    You can also pop the chat window out of the IDE entirely by clicking the page icon at the top of the chat panel.
  </Tab>

  <Tab title="JetBrains">
    In JetBrains IDEs, Codeium Chat can be found by default on the right sidebar.
    If you wish to move it elsewhere, you can click and drag the Codeium icon and relocate it as desired.

    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_jetbrains_where_to_find.png" />
    </Frame>

    You can use `⌘+⇧+L` on Mac or `Ctrl+⇧+L` on Windows/Linux to open the chat panel while you are typing in the editor.
    You can also open the chat in a popped-out browser window by clicking `Tools > Codeium > Open Codeium Chat in Browser` in the top menu bar.
  </Tab>
</Tabs>

## @-Mentions

In any given chat message you send, you can explicitly refer to context items from within the chat input by prefixing a word with `@`.
Context items can be functions, classes, directories and files in your codebase, remote repositories, or (in VS Code only) the contents of your terminal.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/at_mentions.png" />
</Frame>

You can also try `@diff`, which lets you chat about your repository's current `git diff` state.
The `@diff` feature is currently in beta.

## Persistent Context

You can instruct the chat model to use certain context throughout a conversation and across different converstions
by configuring the `Context` tab in the chat panel.

<Frame caption="Chat shows you the context it is considering.">
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_context.png" />
</Frame>

In this tab, you can see:

*   **Custom Chat Instructions**: a short prompt guideline like "Respond in Kotlin and assume I have little familiarity with it" to orient the model towards a certain type of response.
*   **Pinned Contexts**: items from your codebase like files, directories, and code snippets that you would like explicitly for the model to take into account.
    See also [Context Pinning](/context-awareness/context-pinning).
*   **Active Document**: a marker for your currently active file, which receives special focus.
*   **Local Indexes**: a list of local repositories that the Codeium context engine has indexed.

## Slash Commands

You can prefix a message with `/explain` to ask the model to explain something of your choice.
Currently, `/explain` is the only supported slash command.
[Let us know](https://codeium.canny.io/feature-requests/) if there are other common workflows you want wrapped in a slash command.

## Copy and Insert

Sometimes, Chat responses will contain code blocks. You can copy a code block to your clipboard or insert it directly into the editor
at your cursor position by clicking the appropriate button atop the code block.

<Note>
  If you would like the AI to enact a change directly in your editor based on an instruction,
  consider using [Codeium Command](/command/overview).
</Note>

## Inline Citations

Chat is aware of code context items, and its responses often contain linked references to snippets of code in your files.

<Frame>
  <video autoPlay muted loop playsInline src="https://exafunction.github.io/public/videos/chat/inline-citations.mp4" />
</Frame>

## Regenerate with Context

By default, Codeium makes a judgment call whether any given question is general or if it requires codebase context.

You can force the model to use codebase context by submitting your question with `⌘⏎`.
For a question that has already received a response, you rerun with context by clicking the sparkle icon.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_regenerate_with_context.png" />
</Frame>

## Stats for Nerds

Lots of things happen under the hood for every chat message. You can click the stats icon to see these statistics for yourself.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_stats_for_nerds.png" />
</Frame>

## Chat History

To revisit past conversations, click the history icon at the top of the chat panel.
You can click the `+` to create a new conversation, and
you can click the `⋮` button to export your conversation.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_history.png" />
</Frame>

## Settings

Click on the `Settings` tab to update your theme preferences (light or dark) and font size.
The settings panel also gives you an option to download diagnostics, which are debug logs that can be helpful
for the Codeium team to debug an issue should you encounter one.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/chat_settings.png" />
</Frame>

## Telemetry

<Note>You may encounter issues with Chat if Telemetry is not enabled.</Note>

<Tabs>
  <Tab title="VS Code">
    To enable telemetry, open your VS Code settings and navigate to User > Application > Telemetry. In the following dropdown, select "all".

    <img width="350" src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/vscode_telemetry_settings.png" />
  </Tab>

  <Tab title="JetBrains">
    To enable telemetry in JetBrains IDEs, open your Settings and navigate to Appearance & Hehavior > System Settings > Data Sharing.

    <img width="350" src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/jetbrains_telemetry_settings.png" />
  </Tab>
</Tabs>


# Overview

AI-powered in-line edits

<Note>Command is currently only available in VS Code and JetBrains IDEs.</Note>
**Codeium Command** allows you to generate new code or edit existing code via natural language inputs, directly in the editor window.

<Tabs>
  <Tab title="Windsurf">
    To invoke Command, press `⌘+I` on Mac or `Ctrl+I` on Windows/Linux.
    From there, you can enter a prompt in natural language and hit the Submit button (or `⌘+⏎`/`Ctrl+⏎`) to forward the instruction to the AI.
    Codeium will then provide a multiline suggestion that you can accept or reject.

    If you highlight a section of code before invoking Command, then the AI will edit the selection spanned by the highlighted lines.
    Otherwise, it will generate code at your cursor's location.

    <Frame style={{ border: 'none', background: 'none' }}>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf-command.png" />
    </Frame>

    You can accept, reject, or follow-up a generation by clicking the corresponding code lens above the generated diff,
    or by using the appropriate shortcuts (`Cmd+Enter`/`Cmd+Delete`)

    In Windsurf, you can select your desired model to use for Command from the dropdown.

    <Frame>
      <video autoPlay muted loop playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf-command-models.mp4" />
    </Frame>

    <Tip> Codeium Fast is the fastest, most accurate model available.</Tip>

    ### Terminal Command

    You can also open Command in the terminal in case you don't remember the exact syntax of what you want to run.

    <Frame style={{ border: 'none', background: 'none' }}>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf-terminal-command.png" />
    </Frame>
  </Tab>

  <Tab title="VS Code">
    To invoke Command, press `⌘+I` on Mac or `Ctrl+I` on Windows/Linux.
    From there, you can enter a prompt in natural language and hit the Submit button (or `⌘+⏎`/`Ctrl+⏎`) to forward the instruction to the AI.
    Codeium will then provide a multiline suggestion that you can accept or reject.

    If you highlight a section of code before invoking Command, then the AI will edit the selection spanned by the highlighted lines.
    Otherwise, it will generate code at your cursor's location.

    <Frame>
      <video autoPlay muted loop playsInline src="https://exafunction.github.io/public/videos/codeium_command_vscode.mp4" />
    </Frame>

    You can accept, reject, or follow-up a generation by clicking the corresponding code lens above the generated diff,
    or by using the appropriate shortcuts (`⌥+A`/`Alt+A`, `⌥+R`/`Alt+R`, and `⌥+F`/`Alt+F`, respectively).
  </Tab>

  <Tab title="JetBrains">
    To invoke Command, press `⌘+I` on Mac or `Ctrl+I` on Windows/Linux.

    <Note>
      Some users have reported keyboard conflicts with this shortcut, so `⌘+⇧+I` and `⌘+\`on Mac (`Ctrl+⇧+I` and `Ctrl+\` on Windows/Linux)
      will also work.
    </Note>

    The Command invocation will open an interactive popup at the appropriate location in the code.
    You can enter a prompt in natural language and Codeium will provide a multiline suggestion that you can accept or reject.
    If you highlight a section of code before invoking Command, then the AI will edit the selection spanned by the highlighted lines.
    Otherwise, it will generate code at your cursor's location.

    <Frame>
      <video autoPlay muted loop playsInline src="https://exafunction.github.io/public/videos/codeium_command_jetbrains.mp4" />
    </Frame>

    The Command popup will persist in the editor if you scroll around or focus your cursor elsewhere in the editor.
    It will act on your most recently highlighted selection of code or your most recent cursor position.
    While it is active, the Command popup gives you the following options:

    *   **Cancel** (`Esc`): this will close the popup and undo any code changes that may have occured while the popup was open.
    *   **Accept generation** (`⌘+⏎`): this option appears after submitting an instruction and receiving a generation.
        It will write the suggestion into the code editor and close the popup.
    *   **Undo generation** (`⌘+⌫`): this option appears after submitting an instruction and receiving a generation.
        It will restore the code to its pre-Command state without closing the popup, while reinserting your most recent instruction
        into the input box.
    *   **Follow-up**: this option appears after submitting an instruction and receiving a generation.
        You can enter a second (and third, fourth, etc.) instruction and submit it,
        which will undo the currently shown generation and rerun Command using your comma-concatenated instruction history.
  </Tab>
</Tabs>

# Best Practices

Command is great for file-scoped, in-line changes that you can describe as an instruction in natural language.
Here are some pointers to keep in mind:

*   The model that powers Command is larger than the one powering autocomplete.
    It is slower but more capable, and it is trained to be especially good at instruction-following.

*   If you highlight a block of code before invoking Command, it will edit the selection. Otherwise, it will do a pure generation.

*   Using Command effectively can be an art. Simple prompts like "Fix this" or "Refactor" will likely work
    thanks to Codeium's context awareness.
    A specific prompt like "Write a function that takes two inputs of type `Diffable` and implements the Myers diff algorithm"
    that contains a clear objective and references to relevant context may help the model even more.


# Refactors, Docstrings, and More

Features powered by Command

Command enables streamlined experiences for a few common operations.

## Function Refactors and Docstring Generation

Above functions and classes, Codeium renders *code lenses*,
which are small, clickable text labels that invoke Codeium's AI capabilities on the labeled item.

<Tip>You can disable code lenses by clicking the `✕` to the right of the code lens text.</Tip>

The `Refactor` and `Docstring` code lenses in particular will invoke Command.

*   If you click `Refactor`, Codeium will prompt you with a dropdown of selectable, pre-populated
    instructions that you can choose from. You can also write your own. This is equivalent to highlighting the function and invoking Command.
*   If you click `Docstring`, Codeium will generate a docstring for you above the function header.
    (In Python, the docstring will be correctly generated *underneath* the function header.)

<Frame caption="Encouraging readable and maintainable code, one docstring at a time.">
  <video autoPlay muted loop playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/jetbrains_docstrings.mp4" />
</Frame>

## Smart Paste

This feature allows you to copy code and paste it into a file in your IDE written in a different programming language.
Use `⌘+⌥+V` (Mac) or `Ctrl+Alt+V` (Windows/Linux) to invoke Smart Paste.
Behind the scenes, Codeium will detect the language of the destination file and use Command to translate the code in your clipboard.
Codeium's context awareness will try to write it to fit in your code, for example by referencing proper variable names.

<Frame>
  <video autoPlay muted loop playsInline src="https://exafunction.github.io/public/videos/demos/Smart_Paste_Demo_1080p.mp4" />
</Frame>

Some possible use cases:

*   **Migrating code**: you're rewriting JavaScript into TypeScript, or Java into Kotlin.
*   **Pasting from Stack Overflow**: you found a utility function online written in Go, but you're using Rust.
*   **Learning a new language**: you're curious about Haskell and want to see what your would look like if written in it.


# Overview

On codebase context and related features

Codeium's proprietary context engine builds a deep understanding of your codebase.

Historically, code-generation approaches focused on fine-tuning large language models (LLMs) on a codebase,
which is difficult to scale to the needs of every individual user.
A more recent and popular approach leverages retrieval-augmented generation (RAG),
which focuses on techniques to construct highly relevant, context-rich prompts
to elicit accurate answers from an LLM.

The Codeium team has taken an extremely thoughtful and optimized RAG approach to codebase context,
and has seen great success in producing high-quality suggestions and few hallucinations.
This applies across the board to Autocompete, Chat, and Command.

<Note>
  Codeium offers full fine-tuning for enterprises, and the best solution
  combines fine-tuning with RAG. Nonetheless, Codeium's RAG approach is highly
  effective at codebase context personalization on its own.
</Note>

## Default Context

Out of the box, Codeium takes multiple relevant sources of context into consideration.

*   The current file and other open files in your IDE, which are often very relevant to the code you are currently writing.
*   The entire local codebase is then indexed (including files that are not open),
    and relevant code snippets are sourced by Codeium's retrieval engine as you write code, ask questions, or invoke commands.
*   For Pro users, we offer expanded context lengths increased indexing limits, and higher limits on custom context and pinned context items.
*   For Teams and Enterprise users, Codeium can also index remote repositories.
    This is useful for companies whose development organization works across multiple repositories.

## Context Pinning

Developers have the option to offer additional guidance by pinning custom context.
You can find this option under the [context tab of the chat panel](/chat/overview#persistent-context).

You can choose to pin directories, files, repositories, or code context items (functions, classes, etc.) as persistent context.
Models reference these items for every suggestion, across Autocomplete, Chat, and Command.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/pinned_context.png" />
</Frame>

### Best Practices

Context Pinning is great when your task in your current file depends on information from other files.
Try to pin only what you need. Pinning too much may slow down or negatively impact model performance.

Here are some ideas for effective context pinning:

*   Module Definitions: pinning class/struct definition files that are inside your repo but in a module separate from your currently active file.
*   Internal Frameworks/Libraries: pinning directories with code examples for using frameworks/libraries.
*   Specific Tasks: pinning a file or folder defining a particular interface (e.g., `.proto` files, abstract class files, config templates).
*   Current Focus Area: pinning the "lowest common denominator" directory containing the majority of files needed for your current coding session.
*   Testing: pinning a particular file with the class you are writing unit tests for.

## Chat-Specific Context Features

When conversing with Codeium Chat, you have various ways of leveraging codebase context,
like [@-mentions](/chat/overview/#mentions) or custom guidelines.
See the [Chat page](/chat/overview) for more information.

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://exafunction.github.io/public/videos/chat/inline-mention.mp4" />

## Frequently Asked Questions (FAQs)

### Does Codeium index my codebase?

Yes, Codeium does index your codebase. It also uses LLMs to perform retrieval-augmented generation (RAG) on your codebase using techniques we invented like [M-Query](https://youtu.be/DuZXbinJ4Uc?feature=shared\&t=606).

Indexing performance and features vary based on your workflow and your Codeium plan. For more information, please visit our [context awareness page](https://codeium.com/context).


# Analytics & Profile



## User Analytics

User analytics are available for viewing and sharing on your own [profile](https://codeium.com/profile) page.

See your completion stats, [refer](https://codeium.com/referral) your friends, look into your language breakdown,
and unlock achievement badges by using Codeium in your daily workflow.

## Team Analytics

<Note>
  You will need team admin privileges in order to view the following team links.
</Note>

Codeium makes managing your team easy from one [dashboard](https://codeium.com/team/).

Team leads and managers can also see an aggregate of their team members' analytics.
Click [here](https://codeium.com/team/analytics) to view.

We extrapolate from the data to provide you a quick view of the value that Codeium is providing to your team.
This includes metrics like "percent of code written by Codeium" as well as time and money saved.
Team admins can access these stats by clicking `Time Saved (All Time)` from the team page.

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://exafunction.github.io/public/demos/demo_subteam_analytics.mp4" />

## Profile Settings

There are a number of settings available for your profile page. This includes: name, email (for accounts with email authentication), profile picture, username (for your public profile), public profile visibility settings, telemetry settings, email subscription settings, and more.

You can also change and update your password if you used email-and-password authentication.


# Compatibility



Visit our [download page](https://codeium.com/download) for a list of supported IDEs and installation instructions.

If you are a Codeium Enterprise user, visit your enterprise portal URL for download and installation instructions.
Contact your internal Codeium administrator if you have questions.

# Supported IDEs and Versions

**VS Code**: All versions

**JetBrains IDEs**: Version 2022.3+

Note: JetBrains IDEs with remote SSH support require versions 2023.3+.

**Visual Studio**: 17.5.5+

**NeoVim**: Version 0.6+

**Vim**: 9.0.0185+

**Emacs**: All versions compiled with lbxml

**Xcode**: All versions

**Sublime Text**: Version 3+

**Eclipse**: Version 4.25+ (2022-09+)


# Getting Started

Welcome to Codeium

**Codeium** is an AI toolkit that empowers hundreds of thousands of developers with best-in-class autocomplete for code, chat capabilities, in-line command-based edits, and more.

Our models and features have been optimized to have a deep understanding of your codebase and to provide the best AI-powered code generation on the market.

## Extension Set Up 🧩

Our extension for Visual Studio Code and our plugin for JetBrains are our most popular services.
The installation steps for these two are given below.
For other IDEs and editors like Eclipse, Visual Studio, Neovim, Google Colab, and more, visit [our download page](https://codeium.com/download) to get started.

<Note>
  These steps do not apply for enterprises on a self-hosted plan.
  If you are an enterprise user, please refer to the instructions in your enterprise portal.
</Note>

<Tabs>
  <Tab title="Visual Studio Code">
    <Steps>
      <Step title="Install Extension">
        Find the Codeium extension in the VS Code Marketplace and install it.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/vscode_extension_page.png" />
        </Frame>
      </Step>

      <Step title="Authorize">
        After installation, VS Code with prompt you with a notification in the bottom right corner to log in to Codeium.
        Equivalently, you can log in to Codeium via the profile icon at the bottom of the left sidebar.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/vscode_login_init_left.png" />
        </Frame>

        <Note>If you get an error message indicating that the browser cannot open a link from Visual Studio Code, you may need to update your browser and restart the authorization flow.</Note>
        If you do not have an account or otherwise are not already logged in online, you will be prompted to create an account or login.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/login_prompt_webpage.png" />
        </Frame>

        Once you sign in, you will be redirected back to Visual Studio Code via pop-up.
        <Note>If you are using a browser-based VS Code IDE like GitPod or Codespaces, you will be routed to instructions on how to complete authentication by providing an access token.</Note>
      </Step>

      <Step title="Wait for Language Server">
        Once you are signed in, Codeium will start downloading a language server.
        This is the program that communicates with our APIs to let you use Codeium's AI features.
        The download usually takes ten to twenty seconds, but the download speed may depend on your internet connection.
        In the meantime, you are free to use VS Code as usual.

        You should see a notification on the bottom right to indicate the progress of the download.

        <img src="https://exafunction.github.io/public/university_videos/misc_content/download.png" />
      </Step>

      <Step title="All Done!">
        You can now enjoy Codeium's rich AI featureset: Autocomplete, Chat, Command, and more.
      </Step>
    </Steps>
  </Tab>

  <Tab title="JetBrains">
    <Steps>
      <Step title="Install Plugin">
        Open the `Plugins` menu in your JetBrains IDE. The shortcut for this is `⌘+,` on Mac and `Ctrl+,` on Linux/Windows. It is also accessible from the settings menu.
        Search for Codeium, and install the plugin. The plugin loader will prompt you to restart the IDE.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/jetbrains_plugin_install.png" />
        </Frame>
      </Step>

      <Step title="Authorize">
        Open a project. Codeium should prompt you to log in with a notification popup at the bottom right linking you to an online login page.
        Equivalently, click the widget at the right of the bottom status bar and select the login option there.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/jetbrains_login_widget.png" />
        </Frame>

        If you do not have an account or otherwise are not already logged in online, you will be prompted to login.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/login_prompt_webpage.png" />
        </Frame>

        Once you have logged in online, the webpage will indicate that you can return to your IDE.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/login_successful_webpage.png" />
        </Frame>
      </Step>

      <Step title="Wait for Language Server">
        Upon successful login, Codeium will begin downloading a language server.
        This is the program that communicates with our APIs to let you use Codeium's AI features.
        The download usually takes ten to twenty seconds, but the download speed may depend on your internet connection.
        In the meantime, you are free to use your IDE as usual.

        You should see a notification on the bottom right to indicate the progress of the download.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/jetbrains_ls_download_bar.png" />
        </Frame>
      </Step>

      <Step title="All Done!">
        You can now enjoy Codeium's rich AI featureset: Autocomplete, Chat, Command, and more.

        At any point, you can check your status by clicking the status bar widget at the bottom right.
        If logged in, you will have access to your Codeium settings and other controls.

        <Frame>
          <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/jetbrains_status_bar.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>
</Tabs>


# Overview



Just how our Autocomplete passively predicts text, **Codeium Supercomplete** passively predicts your next intent.

You can see Supercomplete in action below, which shows the suggested diff within a box next to your code, directly in the editor. Just press `tab` to accept the suggestion!

<Frame>
  <video autoPlay muted loop playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/supercomplete-demo.mp4" />
</Frame>

Supercomplete makes suggestions based on the context of your code, *both before and after* your current cursor position..

Suggestions appear in a box on the side as you type. You can press `esc` to cancel a suggestion.

## Use cases to trigger Supercomplete

Supercomplete and Autocomplete work in harmony to provide you with the smoothest experience to optimize your flow state.

That being said, Supercomplete will only trigger in certain scenarios where it is most beneficial to the developer. Below, you can find a few examples of helpful Supercomplete use cases.

<Frame caption="Correcting typos and mistakes">
  <video muted controls playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/supercomplete-correct.mp4" />
</Frame>

<Frame caption="Renaming variables">
  <video controls muted playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/supercomplete-rename.mp4" />
</Frame>

<Frame caption="Modifying data schema">
  <video controls muted playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/supercomplete-data-schema.mp4" />
</Frame>

<Frame caption="Automatically binding event handlers">
  <video controls muted playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/supercomplete-button.mp4" />
</Frame>


# Common Issues



### \[Windsurf] I received an error message saying "Windsurf failed to start"

Please delete the following folder:

Windows: `C:\Users\<YOUR_USERNAME>\.codeium\windsurf`
Linux/Mac: `~/.codeium/windsurf`

and try restarting the IDE.

### I subscribed to Pro but I'm stuck on the free tier

First, give it a few minutes to update. If that doesn't work, try logging out of Codeium on the website, restarting your IDE, and logging back into Codeium. Additionally, please make sure you have the latest version of Codeium installed.

### How do I cancel my Pro/Teams subscription?

You can cancel your paid plan by going to your Profile (top right of the [Codeium website](https://codeium.com/profile)) -> Billing -> Cancel Plan

### My Codeium Chat screen goes blank

Please reach out to us if this happens! A screen recording would be much appreciated. This can often be solved by clearing your chat history (`~/.codeium/windsurf/cascade`).

### How do I disable code snippet telemetry?

As mentioned in our [security page](https://codeium.com/security), you can opt out of code snippet telemetry by going to your settings [account settings](https://codeium.com/settings). For more information, please visit our [Terms of Service](https://codeium.com/terms-of-service-individual).

### How do I request a feature?

You can vote, comment, and request features on our [feature request forum](https://codeium.canny.io/feature-requests).

You can also Tweet at us — we're always looking for feedback!

### \[Windsurf] I received an error message about updates on Windows

An example:

> Updates are disabled because you are running the user-scope installation of Windsurf as Administrator.

It is not recommended you install Windsurf as Administrator on Windows.


# Advanced



## SSH Support

The usual SSH support in VSCode is licensed by Microsoft, so we have implemented our own just for Windsurf. It does require you to have [OpenSSH](https://www.openssh.com/) installed, but otherwise has minimal dependencies, and should "just work" like you're used to.

This extension has worked great for our internal development, but there are some known caveats and bugs:

*   We currently only support SSHing into Linux-based remote hosts, with x64 architectures.

*   The usual Microsoft "Remote - SSH" extension (and the [open-remote-ssh](https://github.com/jeanp413/open-remote-ssh) extension) will not work—please do not install them, as they conflict with our support.

*   We don't have all the features of the Microsoft SSH extension right now. We mostly just support the important thing: connecting to a host. If you have feature requests, let us know!

*   Connecting to a remote host via SSH then accessing a devcontainer on that remote host won't work like it does in VSCode. (We're working on it!) For now, if you want to do this, we recommend instead manually setting up an SSH daemon inside your devcontainer. Here is the set-up which we've found to work, but please be careful to make sure it's right for your use-case.

    1.  Inside the devcontainer, run this once (running multiple times may mess up your `sshd_config`):

    ```
    sudo -s -- <<HERE
    sed -i '/SSO SSH Config START/Q' /etc/ssh/sshd_config
    echo "Port 2222" >> /etc/ssh/sshd_config
    ssh-keygen -A
    HERE
    ```

    2.  Inside the devcontainer, run this in a terminal you keep alive (e.g. via tmux):

    ```
    sudo /usr/sbin/sshd -D
    ```

    3.  Then just connect to your remote host via SSH in windsurf, but using the port 2222.

*   SSH agent-forwarding is on by default, and will use Windsurf's latest connection to that host. If you're having trouble with it, try reloading the window to refresh the connection.

*   On Windows, you'll see some `cmd.exe` windows when it asks for your password. This is expected—we'll get rid of them soon.

*   If you have issues, please first make sure that you can ssh into your remote host using regular `ssh` in a terminal. If the problem persists, include the output from the `Output > Remote SSH (Windsurf)` tab in any bug reports!

## Dev Containers

Windsurf also supports dev containers! If you would like to run a development container locally on a Linux machine, you can use the following three commands:

1.  `Open Folder in Container`
    *   Open a new workspace with a specified devcontainer.json file
2.  `Reopen in Container`
    *   Reopen the current workspace in a new container, specifying a devcontainer.json file to configure the container.
3.  `Attach to Running Container`
    *   If you already have a development container running, you can attach a remote server to the container and connect your current workspace to it.

### Notes

*   SSH + Dev Containers is not currently supported in Windsurf, but we plan to support it in the future.
*   Only Linux-based x86 architectures are supported at the moment.

## WSL

Coming soon!

## Extension Marketplace

You can change the marketplace you use to download extensions from. To do this, go to **View** -> **Extensions**, click the "Change in Settings" link, and modify the settings accordingly.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/marketplace.png" />
</Frame>

Learn more about available options [here](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace).


# Cascade



Cascade allows us to expose a new paradigm in the world of coding assitants: AI Flows.

A next-gen evolution of the traditional Chat panel, Cascade is your agentic chatbot that can collaborate with you like never before, carrying out tasks with real-time awareness of your prior actions.

To open Cascade, click the Cascade icon in the top right corner of the Windsurf window.

<Frame style={{ border: 'none', background: 'none' }}>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf-icon-bar.png" />
</Frame>

<Tip> You can open Cascade with the following keyboard shortcut `Cmd+L` <br /><br />Selected text in the editor or terminal will automatically be included. </Tip>

# Model selection

Select your desired model from the selection menu below the chat input.

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/cascade-model-select.mp4" />

# Write/Chat Modes

Cascade comes in two modes: **Write** and **Chat**.

Write mode allows Cascade to create and make modifications to your codebase, while Chat mode is optimized for questions around your codebase or general coding principles.

<video autoPlay muted loop playsInline className="w-1/4 aspect-video" src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/cascade-write-chat-modes.mp4" />

# Real-time collaboration

A unique capability of Windsurf and Cascade is that it is aware of your real-time actions, allowing for unprecented amounts of collaboration.

No longer do you have to prompt the AI with context on your prior actions, as Cascade and Windsurf are already aware.

In the following video, you will see how a recent variable name change was flawlessly detected within Cascade, simply by prompting it with `continue` to rename the other instances.

<video autoPlay controls muted loop playsInline className="w-full aspect-video" src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf-continue.mp4" />

# Direct access to tools and terminal

Cascade can detect which packages and tools that you're using, which ones need to be installed, and even install them for you. Just ask Cascade how to run your project and press Accept.

<video autoPlay controls muted loop playsInline className="w-full aspect-video" src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/pip-install-demo-raw.mp4" />

# Revert to previous steps

You have the ability to revert changes that Cascade has made if you want to. Hover your mouse over the prompt and click on the arrow on the right. This will revert all code changes back to the state of your codebase at the desired step. Note: reverts are currently irreversible, so be careful!

<Frame style={{ border: 'none', background: 'none' }}>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/cascade-revert-step.png" />
</Frame>


# Getting Started

Tomorrow's editor, today

Windsurf is Codeium's next-generation AI IDE built to keep you in the flow. On this page, you'll find instructions on how to install Windsurf on your computer, navigate the onboarding flow, and get started with your first AI-powered project.

## Set Up 🏄

To get started, please ensure that your device meets the requirements, click the download link, and follow the instructions to install and run Windsurf.

<Tabs>
  <Tab title="Mac">
    Minimum OS Version: OS X Yosemite

    <a href="https://codeium.com/windsurf/download_mac" target="_blank" rel="noopener noreferrer">
      <button style={{width: '170px', backgroundColor: '#09b6a2', color: 'white', padding: '5px 10px', border: 'none', borderRadius: '5px', cursor: 'pointer', fontSize: '0.8rem', display: 'flex', justifyContent: 'center'}}>Download for Mac</button>
    </a>
  </Tab>

  <Tab title="Windows">
    Minimum OS Version: Windows 10

    <a href="https://codeium.com/windsurf/download" target="_blank" rel="noopener noreferrer">
      <button style={{width: '170px', backgroundColor: '#09b6a2', color: 'white', padding: '5px 10px', border: 'none', borderRadius: '5px', cursor: 'pointer', fontSize: '0.8rem', display: 'flex', justifyContent: 'center'}}>Download for Windows</button>
    </a>
  </Tab>

  <Tab title="Ubuntu">
    Minimum OS Version: >= 20.04 (or glibc >= 2.31, glibcxx >= 3.4.26)

    <a href="https://codeium.com/windsurf/download_linux" target="_blank" rel="noopener noreferrer">
      <button style={{width: '170px', backgroundColor: '#09b6a2', color: 'white', padding: '5px 10px', border: 'none', borderRadius: '5px', cursor: 'pointer', fontSize: '0.8rem', display: 'flex', justifyContent: 'center'}}>Download for Ubuntu</button>
    </a>
  </Tab>

  <Tab title="Other Linux distributions">
    Minimum OS Version: glibc >= 2.28, glibcxx >= 3.4.25

    <a href="https://codeium.com/windsurf/download_linux" target="_blank" rel="noopener noreferrer">
      <button style={{width: '170px', backgroundColor: '#09b6a2', color: 'white', padding: '5px 10px', border: 'none', borderRadius: '5px', cursor: 'pointer', fontSize: '0.8rem', display: 'flex', justifyContent: 'center'}}>Download for Linux</button>
    </a>
  </Tab>
</Tabs>

## Onboarding

Once you have Windsurf running, you will see the page below. Let's get started! Note that you can always restart this onboarding flow with the "Reset Onboarding" command.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/welcome.png" />
</Frame>

### 1. Select setup flow

If you use VS Code and would like to import your configurations, select "Import VS Code". Otherwise, select "Start fresh". You can also optionally install `windsurf` in PATH such that you can run `windsurf` from your command line.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/setup.png" />
</Frame>

<Tabs>
  <Tab title="Start fresh">
    Choose your keybindings here, either default VS Code bindings or Vim bindings.

    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/keybind.png" />
    </Frame>
  </Tab>

  <Tab title="Import from VS Code">
    You can migrate your settings, extensions, or both here.

    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/vscode_migration.png" />
    </Frame>
  </Tab>
</Tabs>

### 2. Choose editor theme

Choose your favorite color theme from these defaults! Don't worry, you can always change this later. Note that if you imported from VS Code, your imported theme will override this.

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/theme.png" />
</Frame>

### 3. Sign up / Log in

To use Windsurf, you need to use your Codeium account or create one if you don't have one. Signing up is completely free!

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/auth.png" />
</Frame>

Once you've authenticated correctly, you should see this page. Hit "Open Windsurf" and you're good to go!

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/authenticated.png" />
</Frame>

#### Having Trouble?

If you're having trouble with this authentication flow, you can also log in and manually provide Windsurf with an authentication code.

<Tabs>
  <Tab title="1. Select &#x22;Having Trouble?&#x22;">
    Click the "Copy link" button to copy an authentication link to your clipboard and enter this link into your browser.

    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/manual_auth.png" />
    </Frame>
  </Tab>

  <Tab title="2. Enter Authentication Code">
    Copy the authentication code displayed in the link and enter it into Windsurf.

    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/manual_auth_onboarding.png" />
    </Frame>
  </Tab>
</Tabs>

### 4. Let's Surf! 🏄

<Frame>
  <video autoPlay muted loop playsInline src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/onboarding/lets_surf.mp4" />
</Frame>

## Things to Try

Now that you've successfully opened Windsurf, let's try out some of the features! These are all conveniently accessible from the starting page. :)

<AccordionGroup>
  <Accordion title="Write with Cascade">
    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/cascade.png" />
    </Frame>

    On the right side of the IDE, you'll notice a new panel called "Cascade". This is your AI-powered code assistant! You can chat, write code, and run code with Cascade! Learn more about how it works [here](/windsurf/cascade).
  </Accordion>

  <Accordion title="Generate a project with Cascade">
    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/cascade_generate.png" />
    </Frame>

    You can create brand new projects with Cascade! Click the "New Project" button to get started.
  </Accordion>

  <Accordion title="Open Folder / Connect to Remote Server">
    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/open_workspace.png" />
    </Frame>

    You can open a folder or connect to a remote server via SSH or a local dev container. Learn more [here](/windsurf/advanced).
  </Accordion>

  <Accordion title="Configure Windsurf Settings">
    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/windsurf_settings.png" />
    </Frame>

    Configure some of Windsurf's AI settings here. Want to slow down autocomplete speed or disable some features? You can do that here.
  </Accordion>

  <Accordion title="Open Command Palette">
    <Frame>
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/windsurf/command_palette.png" />
    </Frame>

    You can open the command palette with the `⌘+⇧+P` (on Mac) or `Ctrl+Shift+P` (on Windows/Linux) shortcut. Explore the available commands!
  </Accordion>
</AccordionGroup>

## Forgot to Import VS Code Configurations?

You can easily import your VS Code configuration into Windsurf if you decide to do so after the onboarding process.
Open the command palette (`⌘+⇧+P` on Mac, `Ctrl+Shift+P` on Windows/Linux) and type in "Import VS Code".

<Frame>
  <img src="https://mintlify.s3-us-west-1.amazonaws.com/codeium/assets/import-vscode.png" />
</Frame>