<!-- Start of markdown source --> [[b For Code Composer Studio v20+ This document only applies to the Code Composer Studio Theia based IDE. ]] # Overview <img src="./images/ccs_ai_256.png" alt="AI" width="200" align="right"> AI-powered code assistants are rapidly becoming indispensable for developers - providing suggestions and automated features that help in writing code more efficiently and accurately. As popularity for these features continues to increase, so does the demand for development environments that can provide such functionality. In this article, we explore what AI code assist functionality is available with Code Composer Studio v20+ and how to leverage some of the numerous third party AI code assist extensions available on [Open VSX](https://open-vsx.org/). [[b Note The goal of this article is to highlight some of the third party AI code assistant options available with Code Composer Studio and how to get started with them. It is not a full evaluation and ranking of each option. Each user will need to determine which AI solution best fits their needs/preferences. ]] # General Considerations when Using AI As always, it important to note the effectiveness of AI code assistants can vary greatly depending on the environment, model, and context. The old adage *"[your mileage may vary](https://dictionary.cambridge.org/dictionary/english/your-mileage-may-vary)"* is especially relevant here. Responses from AI code assistants will only be as good as the quality and quantity of the data they are trained on, the architecture of the model itself, and the training process used. Queries regarding older, well established public content tend to provide good results. The reverse is typically true for newer content. As mentioned earlier - context matters! Some limitations can be alleviated to a degree by providing more "context". For example, adding additional folders to the workspace that contain relevant source/content will provide more context to AI code assistants once this information has been indexed. This will allow the AI code assistants to better contextualize questions being asked and provide more effective responses. Regardless of the context and how accurate the response appears to be, it is always important to remember that the response is AI-generated and there is no guarantee regarding the validity of the response and how applicable it is to your environment. It is up to the user to review and verify the output before using it. Again, *"your mileage may vary"* indeed. # Theia AI [Theia AI](https://theia-ide.org/theia-ai/) is a new extension to the [Theia IDE](https://theia-ide.org/) framework that integrates artificial intelligence (AI) capabilities to enhance the software development experience within the IDE. It combines the flexibility of Theia IDE with intelligent features to assist developers in writing, understanding, and refactoring code more efficiently. [[y Warning: Alpha version! Please be aware that Theia AI is currently in alpha state. Due to this, Theia AI features within the Theia IDE are currently disabled by default. ]] ## Requirements/Limitations [[y Important: Please read! There are some key limitations to be aware of when attempting to use the Theia AI features. Please carefully read below! ]] * Code Composer Studio versions 20.2.0 and greater. * Existing access to at least one supported [LLM](https://en.wikipedia.org/wiki/Large_language_model) must be provided to Theia AI to use the Theia AI features. * Direct internet access. It is currently not possible to use Theia AI if a proxy is needed to access the internet. Setting the proxy information in the **General Settings** will not have any effect on Theia AI. * Code Composer Studio v20.3.0 will include a built-in workaround for this limitation. * Theia AI is currently in alpha state. Hence, there may be some performance/stability issues in addition to a more limited feature set compared to other AI code assist options. [[b Note: Versions Code Composer Studio v20.2.x is based on Theia IDE version 1.58. Code Composer Studio will lag a few versions behind the latest Theia IDE version. Hence, some discrepancies may exist between what is described in the latest Theia AI documentation and what is available in Code Composer Studio. ]] ## Features Some of the key features for Theia AI include: * **Complete Control Over AI Models**: Complete control over which LLM to use. Can even be configured on a per agent basis (**AI Configuration**). * [**Theia Coder**](https://theia-ide.org/docs/theia_coder/): AI Coding Assistant designed to assist developers with structured code modifications directly within the IDE. * **Support for several [AI Agents](https://theia-ide.org/docs/user_ai/#current-agents-in-the-theia-ide)**: Various [AI Agents](https://github.com/resources/articles/ai/what-are-ai-agents) are available for task such as code assist, general and context based queries, etc. * **Interactive AI [Chat](https://theia-ide.org/docs/user_ai/#chat) Interface**: Global chat interface where users can interact with all chat agents. * [**Code Completion**](https://theia-ide.org/docs/user_ai/#code-completion-agent): Provides inline code completion within the editor. * [**AI Configuration**](https://theia-ide.org/docs/user_ai/#ai-configuration): Configure settings for each agent. Different language models can be selected on a per agent basis. * [**AI Agent History**](https://theia-ide.org/docs/user_ai/#ai-history): Transparency. View the entire communication history, seeing precisely what data is sent to each agent and what it returns. * **Customizable Prompts**: View and modify the prompts sent to ensure they fit the desired context. ## Agents Below are some of the [AI agents available with Theia AI](https://theia-ide.org/docs/user_ai/#current-agents-in-the-theia-ide): * [Theia Coder](https://theia-ide.org/docs/theia_coder/): AI Coding Assistant designed to assist developers with structured code modifications directly within the IDE. Theia Coder can browse the workspace, retrieve relevant context, and propose code changes that users can review and apply seamlessly. * [Universal](https://theia-ide.org/docs/user_ai/#universal-chat-agent): Provides answers to general programming and software development questions in addition to generic user questions. * [Orchestrator](https://theia-ide.org/docs/user_ai/#orchestrator-chat-agent): Analyzes user requests and selects the most suitable agent to respond. The default agent used by the Chat interface. * [Command](https://theia-ide.org/docs/user_ai/#command-chat-agent): Execute relevant commands available in the IDE (does not appear to work). * [Architect/Workspace](https://theia-ide.org/docs/user_ai/#architect-chat-agent): Can answer questions with context of content in the user's current workspace. * [Code Completion](https://theia-ide.org/docs/user_ai/#code-completion-agent): Provides inline code completion within the editor. All of the above agents listed, with the exception of the **Code Completion** agent, are accessible from the Theia AI [**Chat**](https://theia-ide.org/docs/user_ai/#chat) interface. More details of the available agents can be found in the [Theia AI end user documentation](https://theia-ide.org/docs/user_ai/#current-agents-in-the-theia-ide). ## Configuring Theia AI [[y Warning: Check your Code Composer Studio version! Note that Code Composer Studio version 20.2.x (or greater) is required to enable Theia AI. ]] Due to its alpha state, the Theia AI features within Code Composer Studio are currently disabled by default. It must be explicitly enabled from the [General Settings](https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_ide.html#general-settings): ![Enable AI](images/appnote-ccs_ai_01.png) Once Theia AI is enabled, it must be configured to use at least one [LLM](https://en.wikipedia.org/wiki/Large_language_model). Theia AI comes with preinstalled support for several LLM providers (including OpenAI API-compatible models and Anthropic). See the [LLM Provider Overview section of the Theia AI end user documentation](https://theia-ide.org/docs/user_ai/#llm-providers-overview) and the corresponding sections below it on how to configure Theia AI for these providers. If you do not have access to an LLM, one option is to use one of the [free available GitHub models](https://eclipsesource.com/blogs/2025/03/12/testing-theia-ai-with-github-models/). While these [GitHub models](https://github.blog/news-insights/product-news/introducing-github-models/) are more limited in scope and bandwidth, it can be quite useful for evaluation purposes or casual use. ### Example - Configuration for a Custom OpenAI GitHub Model The below steps will show an example of how to use one of the free GitHub models with Code Composer Studio using a personal access token for your GitHub account. The first step is to get your personal access token for your GitHub account. For more information on how to do so, please see: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens. If a fine-grained token is used, make sure to set the **models:read permission** for your new access token: click **Account Permissions** in the **Permissions** section, scroll to **Models** and select **Read-only**. A classic token will also work. Next, open your ``settings.json`` file. It can be opened from the **General Settings** using the **Open Settings (JSON)** button in the upper right corner. ![settings.json](images/appnote-ccs_ai_06.png) Add the below settings to the file: ```json "ai-features.openAiCustom.customOpenAiModels": [ { "model": "openai/gpt-4o-mini", "url": "https://models.github.ai/inference", "id": "theia_github_model", "apiKey": "[your GitHub token]", "enableStreaming": true, "supportsStructuredOutput": true, "apiVersion": true } ] ``` Be sure to replace "[your GitHub token]" with your actual GitHub personal access token for the **apiKey**. Then, for *each* agent, select the **id** created for the model above as the **LANGUAGE MODEL**. Open the **AI Configuration** settings (**View -> AI Configuration [Experimental]**). Then for *each* agent, select the **id** created for the model above as the **LANGUAGE MODEL**. ![AI Configuration](images/appnote-ccs_ai_07.png) As each agent is configured, a related entry will be added to the ``settings.json`` file. When complete, your ``settings.json`` file will look something like this: ```json { "window.titleBarStyle": "native", "ai-features.AiEnable.enableAI": true, "ai-features.openAiCustom.customOpenAiModels": [ { "model": "openai/gpt-4o-mini", "url": "https://models.github.ai/inference", "id": "theia_github_model", "apiKey": "[your GitHub token]", "enableStreaming": true, "supportsStructuredOutput": true, "apiVersion": true } ], "ai-features.agentSettings": { "Orchestrator": { "languageModelRequirements": [ { "purpose": "agent-selection", "identifier": "theia_github_model" } ] }, "Universal": { "languageModelRequirements": [ { "purpose": "chat", "identifier": "theia_github_model" } ] }, "Command": { "languageModelRequirements": [ { "purpose": "command", "identifier": "theia_github_model" } ] }, "Code Completion": { "languageModelRequirements": [ { "purpose": "code-completion", "identifier": "theia_github_model" } ] }, "Terminal Assistant": { "languageModelRequirements": [ { "purpose": "suggest-terminal-commands", "identifier": "theia_github_model" } ] }, "Workspace": { "languageModelRequirements": [ { "purpose": "chat", "identifier": "theia_github_model" } ] }, "Coder": { "languageModelRequirements": [ { "purpose": "chat", "identifier": "theia_github_model" } ] } } } ``` Restart Code Composer Studio to complete the setup of Theia AI. ## Using Theia AI Once Theia AI has been properly set up, it can be used in Code Composer Studio. ### Chat Theia AI provides a global [**Chat**](https://theia-ide.org/docs/user_ai/#chat) interface where users can interact with all chat agents. The majority of the AI agents are accessed through the **Chat** interface. The **Chat** interface can be opened using the menu: **View -> Chat [Experimental]**. By default, the **Orchestrator** agent will send user requests to the most appropriate agent. In the example below, the user asked a question in the **Chat** interface without specifying an agent. Hence, the request was sent to the **Orchestrator** which then sent it to the **Universal** agent for a general response: ![Chat](images/appnote-ccs_ai_chat1.png) <!-- Note with the provided C code example, there are options to **Copy** the text to the system clipboard or to **Insert at Cursor** to directly add the source code to the location of the cursor in the editor. --> It is possible (and often recommended) to specify a specific agent directly. Use the **@** symbol at the beginning of your message to specify an agent, for example, **@Coder**. In the example below, the request was directly made to the **Theia Coder** agent to suggest modifications to the source file in context: ![Coder](images/appnote-ccs_ai_coder_01a.png) Note the responses from the **Theia Coder** agent. Also note the **Theia Coder** in action as it prompts the user to review the changes. Selecting the file under **Changes proposed by Coder** will open the proposed changes in the **Editor**. An option to accept or reject the changes is available in the **Chat**. ![Coder](images/appnote-ccs_ai_coder_02a.png) For more details on using the **Theia Coder**: https://theia-ide.org/docs/theia_coder/ Also note the **AI Agent History** view in the bottom panel where a log is kept of all the communication between the various AI agents. See the next section for more information on the **AI Agent History** view. ### AI Agent History The [AI Agent History view](https://theia-ide.org/docs/user_ai/#ai-history) allows you to review all communications between agents and underlying LLMs. The **AI History** interface can be opened using the menu: **View -> AI Agent History [Experimental]**. Select the corresponding agent at the top to see all its requests in the section below. ![History](images/appnote-ccs_ai_history1.png) ### Code Completion This agent provides inline [code completion](https://theia-ide.org/docs/user_ai/#code-completion-agent) within the Theia IDE's code editor. The agent supports both manual and automatic modes for code completion. When **Automatic Code Completion** is enabled, the agent makes continuous requests to the underlying LLM while coding, providing suggestions as you type. In manual mode (triggered via Ctrl+Alt+Space by default), users have greater control over when AI suggestions appear. Requests are canceled when moving the cursor. Users can switch between modes in the **General Settings**: ![History](images/appnote-ccs_ai_04.png) ## Theia AI - Summary Theia AI shows a lot of promise and works fairly well given the alpha state it is currently in. The chat integration appears to be the most polished, providing relatively useful answers/suggestions when given the correct context. However, the **Command** agent does not appear to recognize requested commands. Code completion appears to be adequate, again depending on the context. When compared to more feature rich AI code assist extensions, it does appear more limited in features - such as more limited editor integration compared to a more mature product like **Windsurf** and **Tabnine** with its **CodeLens** and **inline actions** features respectively. Again, Theia AI is still in an early state and more work needs to be done before it can fully compete with other more mature options available. However, it appears quite usable even today and can be a viable option for someone (with existing access to a supported LLM) looking to enable AI code assist capability in Code Composer Studio without installing an additional extension. The ability to specify which LLMs to use and even configure agents to use different LLMs offers a level of control not always available in other solutions, and its transparency can be a great value for many. # AI Code Assistant Extensions Many third party AI Code Assistants are available as VS Code extensions. The extensions that are also available from [Open VSX](https://open-vsx.org/) [can be installed in Code Composer Studio](https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_ide.html#extensions). If Code Composer Studio is unable to access Open VSX, [check the proxy settings](https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_troubleshooting.html#check-the-proxy-setting) in the **General Settings**. For extensions available on Open VSX, the steps to install and use these extensions in Code Composer Studio are typically the same as with VS Code. Hence the same documentation applies. *Any extension that is available on Open VSX will typically work with Code Composer Studio*. The sections below cover some AI Code Assistant extensions tested with Code Composer Studio. [[b Note: Enterprise versions The following steps regarding setup and configuration are for general use cases. Set up and configuration for enterprise solutions (typically found in corporate environments) are often more involved and beyond the scope of this article. ]] ## Windsurf (formerly Codeium) [Windsurf](https://windsurf.com/), formerly known as Codeium, is a popular third party AI coding assistant available with its own IDE or as an extension for several IDEs such as VS Code. It is also [available on Open VSX](https://open-vsx.org/extension/Codeium/codeium), thus making it available for use with Code Composer Studio. It provides much of the common functionality found with other AI coding assistants such as a chat interface, code completion, code generation, context aware suggestions, refactoring, etc. It offers strong integration with the IDE editor with its **CodeLens** and **Command** features. It can be used at no cost with their **Cascade Base** model based on Meta's LLaMa 3.1 70B architecture, which is used by default. Some more premium models like GPT-4.1 can also be used for free on a limited basis. For more bandwidth (and access to even more premium models), paid subscriptions are available. ### Getting Started with Windsurf Installation of the [Windsurf extension](https://open-vsx.org/extension/Codeium/codeium) is straightforward. Browse for the extension using the **Extensions** view in the IDE. It is actually still easier to use the search term "Codeium" to find the correct extension titled **Windsurf Plugin (formerly Codeium)**. Once the extension has been installed, you will be prompted to log in. There are a variety of log in options, such as using an existing Google account. Once logged in, a final step of providing your account token is required before restarting the IDE to start using the extension. Please refer to the below video for a demonstration on all of the above actions mentioned, in addition to a brief overview on how to use some of the features of the Windsurf extension. Note that the video was created before the full rebranding from Codeium to Windsurf was completed, hence the use of the "Codeium" branding and the old icon in the video: <iframe width="854" height="480" src="https://www.youtube.com/embed/zdWym5TCmbM" frameborder="0" allowfullscreen></iframe> This video is also available from the ti.com video library: https://www.ti.com/video/6370601292112 [[y Your mileage may vary! The video above shows queries regarding on one of TI's [MSP430](https://www.ti.com/microcontrollers-mcus-processors/msp430-microcontrollers/overview.html) devices. The MSP430 is an older, very mature and well established device family with a lot of public content that has been available for some time. Many MSP430 examples are available on GitHub. These AI models have had ample time and data on MSP430 to be trained on. This all results in very effective responses from AI code assistants regarding MSP430. Queries regarding newer devices may not be as effective. ]] For more information on using the Windsurf extension, please refer to the [Windsurf Plugins documentation](https://docs.windsurf.com/plugins/getting-started) for Visual Studio Code. ## Tabnine [Tabnine](https://www.tabnine.com/), is another popular third party AI coding assistant that is available as an extension to VS Code. It is also [available on Open VSX](https://open-vsx.org/extension/TabNine/tabnine-vscode), thus making it available for use with Code Composer Studio. It provides much of the common functionality found with other AI coding assistants such as a chat interface, code completion, code generation, context aware suggestions, refactoring, etc. It also offers strong integration with the IDE editor with its [inline action capability](https://docs.tabnine.com/main/getting-started/getting-the-most-from-inline-actions). Tabnine used to offer a **Basic** plan for no cost that had daily limits on the usage of third party models and more limited code completion support. However, [this basic plan has been discontinued](https://www.tabnine.com/blog/scaling-enterprise-ai-why-were-sunsetting-tabnine-basic/), with only paid subscriptions being available outside of temporary preview and trial plans for evaluation. ### Getting Started with Tabnine Installation of the [Tabnine extension](https://open-vsx.org/extension/TabNine/tabnine-vscode) is straightforward. Browse for the extension using the **Extensions** view in the IDE and search for "Tabnine". There will be options for both the standard Tabnine extension (**Tabnine: AI Chat & Autocomplete**) and the enterprise version (**Tabnine for Enterprise**). This article will focus on the standard version, hence select that one for install. ![Tabnine](images/appnote-ccs_ai_tab9_01.png) Once the extension is installed, first time users will be prompted in the lower left corner of the IDE to sign-in. ![Tabnine](images/appnote-ccs_ai_tab9_02.png) Pressing the **Sign in** button will open a webpage to the Tabnine login screen. ![Tabnine](images/appnote-ccs_ai_tab9_03.png) Users can select to sign-up or login with their account of choice. One option is to use an existing Google account: ![Tabnine](images/appnote-ccs_ai_tab9_04.png) Once logged in, the user will be given steps to complete the sign in with Code Composer Studio: ![Tabnine](images/appnote-ccs_ai_tab9_06.png) Follow the steps to copy the token. Then in Code Composer Studio, open the [**Command Palette**](https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_ide.html#command-palette) and type **Tabnine: Sign in using auth token**, run the command, and paste the token when prompted. Once the token has been entered, the sign-in process will be completed and the **Tabnine AI** shortcut in the side panel can be used to open the **Tabnine AI: Chat** interface: ![Tabnine](images/appnote-ccs_ai_tab9_07.png) A default model will be selected, and Tabnine is ready to be used. ![Tabnine](images/appnote-ccs_ai_tab9_08.png) For more information on using the Tabnine AI features, please refer to the [Tabnine documentation](https://docs.tabnine.com/main). ## Continue [Continue](https://www.continue.dev/) is another popular third party AI coding assistant that is available as an extension to VS Code. It is also [available on Open VSX](https://open-vsx.org/extension/Continue/continue), thus making it available for use with Code Composer Studio. It provides much of the common functionality found with other AI coding assistants such as a chat interface, code completion, code generation, context aware suggestions, refactoring, etc. Continue is [quite customizable](https://docs.continue.dev/customize/overview). Unlike some of the other extensions mentioned (and similar to **Theia AI**), it is possible to choose from and add multiple [model providers](https://docs.continue.dev/customize/model-providers/), supporting many of the popular model providers, including OpenAI, Anthropic, Microsoft/Azure, Mistral, and more. Self-hosting your own local model provider is also supported. ![Continue](images/appnote-ccs_ai_continue_models.png) ### Getting Started with Continue Installation of the [Continue extension](https://open-vsx.org/extension/Continue/continue) is straightforward. Browse for the extension using the **Extensions** view in the IDE and search for "Continue". Once the extension has been installed, the **Continue** shortcut in the side panel can be used to open the **Continue** interface. The user can choose the **Get started** option [sign in to the Continue Hub](https://docs.continue.dev/getting-started/install#signing-in) **Or, remain local** to connect to a local model. ![Continue](images/appnote-ccs_ai_continue_01.png) #### Continue Hub [[y Warning: Log in issues! At this time, [a known issue with Theia IDE](https://github.com/eclipse-theia/theia/issues/15256) is preventing the extension from being able to access the user's Continue account. ]] #### Remain Local If it is desired to run locally, Ollama is the fastest way to get up and running with local language models. Selecting the option to **remain local** will provide steps on how to install Ollama and download any other dependencies. A completed step is identified with a green checkmark. Once all steps are completed, the **Connect** button will allow the Continue extension to connect to the local service: ![Continue](images/appnote-ccs_ai_continue_01a.png) #### Using Continue Once the setup is complete, Continue is ready for use. ![Continue](images/appnote-ccs_ai_continue_02a.png) Below is an example of a simple request made in the chat to refactor the source code to slow down the LED blink rate in the referenced source file. Proposed changes are shown in the editor, allowing the user to accept or reject the proposals: ![Continue](images/appnote-ccs_ai_continue_03a.png) For more information on using the Continue AI features, please refer to the [Continue documentation](https://docs.continue.dev/). # What about GitHub Copilot? [GitHub Copilot](https://github.com/features/copilot) is one of the most popular AI coding assistants available. Unfortunately, integrating GitHub Copilot directly into Code Composer Studio is currently not possible. Theia IDE does not have built-in support for GitHub Copilot, and there are no official plugins or extensions for Theia IDE available for this integration. There are several threads on this issue: * https://github.com/microsoft/vscode-copilot-release/issues/6427 * https://github.com/orgs/community/discussions/35832 However, recent news that [Microsoft plans to make GitHub Copilot open source](https://code.visualstudio.com/blogs/2025/05/19/openSourceAIEditor) brings renewed hope that a solution for using it with Code Composer Studio will be a real possibility in the future. For dedicated Copilot users, using a parallel VS Code / Code Composer Studio environment is an option that is actively used by some - with coding done using VS Code while project builds and debugging are performed with Code Composer Studio. If you are not yet heavily invested in Copilot, it may be worth exploring some of the many viable alternatives to Copilot that do work with Code Composer Studio - such as the ones mentioned right in this article. # Summary Code Composer Studio, while not providing its own custom solution, offers several options for integrating general third party AI code assist capability with the new Theia AI framework and with the numerous extensions available on Open VSX. This can allow Code Composer Studio users to greatly boost developer productivity by offering real-time code suggestions, autocompletions, and error detection. These tools help write cleaner, more efficient code, reduce repetitive tasks, and accelerate debugging. They also support learning by providing examples and best practices for unfamiliar frameworks or SDKs, and can generate helpful documentation, improving code readability and collaboration within teams. As always with AI, "*your mileage may vary*" depending on the environment, model, and context. Users will need to determine which AI solution best fits their needs/preferences. But in general, the benefits of adding AI to the development process cannot be denied. <!-- End of markdown source --> <div id="footer"></div>