CINXE.COM
AI-powered chat conversations with GitHub Copilot
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="awa-expId" content="vscw_aaflight1016_control:103441;" /> <meta name="awa-env" content="prod" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="google-site-verification" content="hNs7DXrTySP_X-0P_AC0WulAXvUwgSXEmgfcO2r79dw" /> <!-- Twitter and Facebook OpenGraph Metadata--> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@code" /> <meta name="description" content="Interact with GitHub Copilot through AI-powered chat conversations in VS Code to generate code, increase your code understanding, and even configure your editor." /> <meta name="keywords" content="" /> <meta name="ms.prod" content="vs-code" /> <meta name="ms.TOCTitle" content="Copilot Chat" /> <meta name="ms.ContentId" content="130ecf6c-6f06-4ddd-8b1d-f85f023af77b" /> <meta name="ms.date" content="10/29/2024" /> <meta name="ms.topic" content="conceptual" /> <!-- Twitter and Facebook OpenGraph Metadata--> <meta name="twitter:card" content="summary_large_image" /> <meta property="og:url" content="https://code.visualstudio.com/docs/copilot/copilot-chat" /> <meta property="og:type" content="article" /> <meta property="og:title" content="AI-powered chat conversations with GitHub Copilot" /> <meta property="og:description" content="Interact with GitHub Copilot through AI-powered chat conversations in VS Code to generate code, increase your code understanding, and even configure your editor." /> <meta property="og:image" content="https://code.visualstudio.com/assets/docs/copilot/shared/github-copilot-social.png" /> <link rel="shortcut icon" href="/favicon.ico" sizes="128x128" /> <link rel="apple-touch-icon" href="/apple-touch-icon.png"> <title>AI-powered chat conversations with GitHub Copilot</title> <link rel="stylesheet" href="/vendor/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="/dist/v2/style.css"> <script src="https://consentdeliveryfd.azurefd.net/mscc/lib/v2/wcp-consent.js"></script> <script type="text/javascript" src="https://js.monitor.azure.com/scripts/c/ms.analytics-web-4.min.js"></script> <script type="text/javascript"> // Leave as var; siteConsent is initialized and referenced elsewhere. var siteConsent = null; const GPC_DataSharingOptIn = false; WcpConsent.onInitCallback(function () { window.appInsights = new oneDS.ApplicationInsights(); window.appInsights.initialize({ instrumentationKey: "1a3eb3104447440391ad5f2a6ee06a0a-62879566-bc58-4741-9650-302bf2af703f-7103", propertyConfiguration: { userConsented: false, gpcDataSharingOptIn: false, callback: { userConsentDetails: siteConsent ? siteConsent.getConsent : undefined }, }, cookieCfg: { ignoreCookies: ["MSCC"] }, webAnalyticsConfiguration:{ // Web Analytics Plugin configuration urlCollectQuery: true, urlCollectHash: true, autoCapture: { scroll: true, pageView: true, onLoad: true, onUnload: true, click: true, resize: true, jsError: true } } }, []); window.appInsights.getPropertyManager().getPropertiesContext().web.gpcDataSharingOptIn = GPC_DataSharingOptIn; }); </script> <link rel="alternate" type="application/atom+xml" title="RSS Feed for code.visualstudio.com" href="/feed.xml" /> </head> <body > <!-- Setting theme here to avoid FOUC --> <script> function setTheme(themeName) { if (themeName === 'dark') { document.documentElement.removeAttribute('data-theme'); // dark is default, so no data-theme attribute needed } if (themeName === 'light') { document.documentElement.setAttribute('data-theme', themeName); } return; } // Determine initial theme: user preference or system preference let theme = localStorage.getItem('theme') || (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); setTheme(theme); // Apply the initial theme // Listen for changes in the system theme preference window.matchMedia('(prefers-color-scheme: dark)').addListener(e => { if (!localStorage.getItem('theme')) { // Only if no user preference is saved setTheme(e.matches ? 'dark' : 'light'); } }); </script> <div id="main"> <div class="navbar-fixed-container"> <div class="navbar navbar-inverse navbar-fixed-top " data-spy="affix" data-offset-top="1"> <div id='cookie-banner'></div> <nav role="navigation" aria-label="Top Level"> <div class="container"> <div class="nav navbar-header"> <a class="navbar-brand" href="/"><span>Visual Studio Code</span></a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse" aria-label="Expand and Collapse Menu"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-left"> <li class="active" ><a id="nav-docs" href="/docs">Docs</a></li> <li ><a id="nav-updates" href="/updates">Updates</a></li> <li ><a id="nav-blogs" href="/blogs">Blog</a></li> <li ><a id="nav-extend" href="/api">API</a></li> <li><a href="https://marketplace.visualstudio.com/VSCode" target="_blank" rel="noopener" id="nav-extensions">Extensions</a></li> <li ><a id="nav-faqs" href="/docs/supporting/faq">FAQ</a></li> <li class='search visible-xs visible-sm' ><a href="/Search">Search</a></li> <li ><a id="nav-copilot" href="/docs/copilot/overview">GitHub Copilot</a></li> </ul> </ul> <ul class="nav navbar-nav navbar-right" role="presentation"> <li> <button type="button" class="theme-switch" id="theme-toggle"> <img class="theme-icon-light" src="/assets/icons/theme-light.svg" alt="Switch to the dark theme" /> <img class="theme-icon-dark" src="/assets/icons/theme-dark.svg" alt="Switch to the light theme" /> </button> </li> <li> <a href="/Search" title="Search" class="btn search-btn" id="nav-search"> <img class="search-icon-light" src="/assets/icons/search.svg" width="16px" height="16px" alt="Search" /> <img class="search-icon-dark" src="/assets/icons/search-dark.svg" width="16px" height="16px" alt="Search" /> </a> </li> <li class="search" role="presentation"> <form class="nav-search search-form" role="search" aria-label="Search"> <div class="input-group" role="presentation"> <input type="text" name="q" class="search-box form-control" placeholder="Search Docs" aria-label="Search text"/> <span class="input-group-btn"> <button tabindex="0" class="btn" type="submit" aria-label="Search"> <img class="search-icon-dark" src="/assets/icons/search-dark.svg" alt="Search" /> <img class="search-icon-light" src="/assets/icons/search.svg" alt="Search" /> </button> </span> </div> </form> </li> <!-- this was hiden in the home and download page, keeping it for now --> <li><a class="link-button" href="/Download" id="nav-download"> <span>Download</span></a></li> </ul> </div> </div> </nav> </div> </div> <div class="updates-banner "> <div class="container"> <p class="message"><a href="/updates" id="banner-link-updates">Version 1.95</a> is now available! Read about the new features and fixes from October.</p> </div> <div tabindex="0" role="button" title="Dismiss this update" class="dismiss-btn" id="banner-dismiss-btn"><span class="sr-only">Dismiss this update</span><span aria-hidden="true" class="glyph-icon"></span></div> </div> <!-- This div wraps around the entire site --> <!-- The body itself should already have a main tag --> <div id="main-content"> <script> function closeReportIssue() { var element = document.getElementById('surveypopup'); element.parentElement.removeChild(element); } function reportIssue(tutorial, page) { var div = document.createElement('div'); div.innerHTML = '<div id="surveypopup" class="overlay visible"><div class="surveypopup"><div id="surveytitle">Tell us more<a href="javascript:void(0)" onclick="closeReportIssue()">X</a></div><div id="surveydiv"><iframe frameBorder="0" scrolling="0" src="https://www.research.net/r/PWZWZ52?tutorial=' + tutorial + '&step=' + page + '"></iframe></div></div></div>'; document.body.appendChild(div.children[0]); } </script> <div class="container body-content docs"> <div class="row"> <!-- left nav --> <div class="col-xs-12 col-md-2 docs-navbar-container"> <nav id="docs-navbar" aria-label="Topics" class="docs-nav visible-md visible-lg"> <ul class="nav" id="main-nav"> <li > <a class="docs-home" href="/docs" >Overview</a> </li> <li class="panel collapsed"> <a class="area" role="button" href="#setup-articles" data-parent="#main-nav" data-toggle="collapse">Setup</a> <ul id="setup-articles" class="collapse "> <li > <a href="/docs/setup/setup-overview" >Overview</a> </li> <li > <a href="/docs/setup/linux" >Linux</a> </li> <li > <a href="/docs/setup/mac" >macOS</a> </li> <li > <a href="/docs/setup/windows" >Windows</a> </li> <li > <a href="/docs/setup/raspberry-pi" >Raspberry Pi</a> </li> <li > <a href="/docs/setup/network" >Network</a> </li> <li > <a href="/docs/setup/additional-components" >Additional Components</a> </li> <li > <a href="/docs/setup/enterprise" >Enterprise</a> </li> <li > <a href="/docs/setup/uninstall" >Uninstall</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#getstarted-articles" data-parent="#main-nav" data-toggle="collapse">Get Started</a> <ul id="getstarted-articles" class="collapse "> <li > <a href="/docs/getstarted/getting-started" >Tutorial</a> </li> <li > <a href="/docs/getstarted/introvideos" >Intro Videos</a> </li> <li > <a href="/docs/getstarted/tips-and-tricks" >Tips and Tricks</a> </li> <li > <a href="/docs/getstarted/userinterface" >User Interface</a> </li> <li > <a href="/docs/getstarted/themes" >Themes</a> </li> <li > <a href="/docs/getstarted/settings" >Settings</a> </li> <li > <a href="/docs/getstarted/keybindings" >Key Bindings</a> </li> <li > <a href="/docs/getstarted/locales" >Display Language</a> </li> <li > <a href="/docs/getstarted/telemetry" >Telemetry</a> </li> <li > <a href="/docs/getstarted/educators-and-students" >Educators & Students</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#editor-articles" data-parent="#main-nav" data-toggle="collapse">User Guide</a> <ul id="editor-articles" class="collapse "> <li > <a href="/docs/editor/codebasics" >Basic Editing</a> </li> <li > <a href="/docs/editor/extension-marketplace" >Extension Marketplace</a> </li> <li > <a href="/docs/editor/intellisense" >IntelliSense</a> </li> <li > <a href="/docs/editor/editingevolved" >Code Navigation</a> </li> <li > <a href="/docs/editor/refactoring" >Refactoring</a> </li> <li > <a href="/docs/editor/debugging" >Debugging</a> </li> <li > <a href="/docs/editor/testing" >Testing</a> </li> <li > <a href="/docs/editor/vscode-web" >VS Code for the Web</a> </li> <li > <a href="/docs/editor/tasks" >Tasks</a> </li> <li > <a href="/docs/editor/profiles" >Profiles</a> </li> <li > <a href="/docs/editor/settings-sync" >Settings Sync</a> </li> <li > <a href="/docs/editor/userdefinedsnippets" >Snippets</a> </li> <li > <a href="/docs/editor/emmet" >Emmet</a> </li> <li > <a href="/docs/editor/command-line" >Command Line Interface</a> </li> <li > <a href="/docs/editor/workspaces" >Workspaces</a> </li> <li > <a href="/docs/editor/workspace-trust" >Workspace Trust</a> </li> <li > <a href="/docs/editor/multi-root-workspaces" >Multi-root Workspaces</a> </li> <li > <a href="/docs/editor/accessibility" >Accessibility</a> </li> <li > <a href="/docs/editor/voice" >Voice Interactions</a> </li> <li > <a href="/docs/editor/custom-layout" >Custom Layout</a> </li> <li > <a href="/docs/editor/port-forwarding" >Port Forwarding</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#sourcecontrol-articles" data-parent="#main-nav" data-toggle="collapse">Source Control</a> <ul id="sourcecontrol-articles" class="collapse "> <li > <a href="/docs/sourcecontrol/overview" >Overview</a> </li> <li > <a href="/docs/sourcecontrol/intro-to-git" >Introduction to Git</a> </li> <li > <a href="/docs/sourcecontrol/github" >Collaborate on GitHub</a> </li> <li > <a href="/docs/sourcecontrol/faq" >FAQ</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#terminal-articles" data-parent="#main-nav" data-toggle="collapse">Terminal</a> <ul id="terminal-articles" class="collapse "> <li > <a href="/docs/terminal/getting-started" >Getting Started Tutorial</a> </li> <li > <a href="/docs/terminal/basics" >Terminal Basics</a> </li> <li > <a href="/docs/terminal/profiles" >Terminal Profiles</a> </li> <li > <a href="/docs/terminal/shell-integration" >Shell Integration</a> </li> <li > <a href="/docs/terminal/appearance" >Appearance</a> </li> <li > <a href="/docs/terminal/advanced" >Advanced</a> </li> </ul> </li> <li class="panel active expanded"> <a class="area" role="button" href="#copilot-articles" data-parent="#main-nav" data-toggle="collapse">GitHub Copilot</a> <ul id="copilot-articles" class="collapse in"> <li > <a href="/docs/copilot/overview" >Overview</a> </li> <li > <a href="/docs/copilot/copilot-vscode-features" >Copilot Cheat Sheet</a> </li> <li > <a href="/docs/copilot/setup" >Setup</a> </li> <li > <a href="/docs/copilot/getting-started" >Quickstart</a> </li> <li > <a href="/docs/copilot/ai-powered-suggestions" >Code Completions</a> </li> <li class="active"> <a href="/docs/copilot/copilot-chat" aria-label="Current Page: Copilot Chat">Copilot Chat</a> </li> <li > <a href="/docs/copilot/getting-started-chat" >Copilot Chat Tutorial</a> </li> <li > <a href="/docs/copilot/copilot-edits" >Copilot Edits</a> </li> <li > <a href="/docs/copilot/prompt-crafting" >Best Practices</a> </li> <li > <a href="/docs/copilot/workspace-context" >Workspace Context</a> </li> <li > <a href="/docs/copilot/copilot-customization" >Customizing Copilot</a> </li> <li > <a href="/docs/copilot/copilot-extensibility-overview" >Copilot Extensibility</a> </li> <li > <a href="/docs/copilot/copilot-settings" >Settings Reference</a> </li> <li > <a href="/docs/copilot/faq" >FAQ</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#languages-articles" data-parent="#main-nav" data-toggle="collapse">Languages</a> <ul id="languages-articles" class="collapse "> <li > <a href="/docs/languages/overview" >Overview</a> </li> <li > <a href="/docs/languages/javascript" >JavaScript</a> </li> <li > <a href="/docs/languages/json" >JSON</a> </li> <li > <a href="/docs/languages/html" >HTML</a> </li> <li > <a href="/docs/languages/css" >CSS, SCSS and Less</a> </li> <li > <a href="/docs/languages/typescript" >TypeScript</a> </li> <li > <a href="/docs/languages/markdown" >Markdown</a> </li> <li > <a href="/docs/languages/powershell" >PowerShell</a> </li> <li > <a href="/docs/languages/cpp" >C++</a> </li> <li > <a href="/docs/languages/java" >Java</a> </li> <li > <a href="/docs/languages/php" >PHP</a> </li> <li > <a href="/docs/languages/python" >Python</a> </li> <li > <a href="/docs/languages/julia" >Julia</a> </li> <li > <a href="/docs/languages/r" >R</a> </li> <li > <a href="/docs/languages/ruby" >Ruby</a> </li> <li > <a href="/docs/languages/rust" >Rust</a> </li> <li > <a href="/docs/languages/go" >Go</a> </li> <li > <a href="/docs/languages/tsql" >T-SQL</a> </li> <li > <a href="/docs/languages/csharp" >C#</a> </li> <li > <a href="/docs/languages/dotnet" >.NET</a> </li> <li > <a href="/docs/languages/polyglot" >Polyglot</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#nodejs-articles" data-parent="#main-nav" data-toggle="collapse">Node.js / JavaScript</a> <ul id="nodejs-articles" class="collapse "> <li > <a href="/docs/nodejs/working-with-javascript" >Working with JavaScript</a> </li> <li > <a href="/docs/nodejs/nodejs-tutorial" >Node.js Tutorial</a> </li> <li > <a href="/docs/nodejs/nodejs-debugging" >Node.js Debugging</a> </li> <li > <a href="/docs/nodejs/nodejs-deployment" >Deploy Node.js Apps</a> </li> <li > <a href="/docs/nodejs/browser-debugging" >Browser Debugging</a> </li> <li > <a href="/docs/nodejs/angular-tutorial" >Angular Tutorial</a> </li> <li > <a href="/docs/nodejs/reactjs-tutorial" >React Tutorial</a> </li> <li > <a href="/docs/nodejs/vuejs-tutorial" >Vue Tutorial</a> </li> <li > <a href="/docs/nodejs/debugging-recipes" >Debugging Recipes</a> </li> <li > <a href="/docs/nodejs/profiling" >Performance Profiling</a> </li> <li > <a href="/docs/nodejs/extensions" >Extensions</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#typescript-articles" data-parent="#main-nav" data-toggle="collapse">TypeScript</a> <ul id="typescript-articles" class="collapse "> <li > <a href="/docs/typescript/typescript-tutorial" >Tutorial</a> </li> <li > <a href="/docs/typescript/typescript-compiling" >Compiling</a> </li> <li > <a href="/docs/typescript/typescript-editing" >Editing</a> </li> <li > <a href="/docs/typescript/typescript-refactoring" >Refactoring</a> </li> <li > <a href="/docs/typescript/typescript-debugging" >Debugging</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#python-articles" data-parent="#main-nav" data-toggle="collapse">Python</a> <ul id="python-articles" class="collapse "> <li > <a href="/docs/python/python-quick-start" >Quick Start</a> </li> <li > <a href="/docs/python/python-tutorial" >Tutorial</a> </li> <li > <a href="/docs/python/run" >Run Python Code</a> </li> <li > <a href="/docs/python/editing" >Editing Code</a> </li> <li > <a href="/docs/python/linting" >Linting</a> </li> <li > <a href="/docs/python/formatting" >Formatting</a> </li> <li > <a href="/docs/python/debugging" >Debugging</a> </li> <li > <a href="/docs/python/environments" >Environments</a> </li> <li > <a href="/docs/python/testing" >Testing</a> </li> <li > <a href="/docs/python/jupyter-support-py" >Python Interactive</a> </li> <li > <a href="/docs/python/tutorial-django" >Django Tutorial</a> </li> <li > <a href="/docs/python/tutorial-fastapi" >FastAPI Tutorial</a> </li> <li > <a href="/docs/python/tutorial-flask" >Flask Tutorial</a> </li> <li > <a href="/docs/python/tutorial-create-containers" >Create containers</a> </li> <li > <a href="/docs/python/python-on-azure" >Deploy Python Apps</a> </li> <li > <a href="/docs/python/python-web" >Python in the Web</a> </li> <li > <a href="/docs/python/settings-reference" >Settings Reference</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#java-articles" data-parent="#main-nav" data-toggle="collapse">Java</a> <ul id="java-articles" class="collapse "> <li > <a href="/docs/java/java-tutorial" >Getting Started</a> </li> <li > <a href="/docs/java/java-editing" >Navigate and Edit</a> </li> <li > <a href="/docs/java/java-refactoring" >Refactoring</a> </li> <li > <a href="/docs/java/java-linting" >Formatting and Linting</a> </li> <li > <a href="/docs/java/java-project" >Project Management</a> </li> <li > <a href="/docs/java/java-build" >Build Tools</a> </li> <li > <a href="/docs/java/java-debugging" >Run and Debug</a> </li> <li > <a href="/docs/java/java-testing" >Testing</a> </li> <li > <a href="/docs/java/java-spring-boot" >Spring Boot</a> </li> <li > <a href="/docs/java/java-tomcat-jetty" >Application Servers</a> </li> <li > <a href="/docs/java/java-on-azure" >Deploy Java Apps</a> </li> <li > <a href="/docs/java/java-gui" >GUI Applications</a> </li> <li > <a href="/docs/java/extensions" >Extensions</a> </li> <li > <a href="/docs/java/java-faq" >FAQ</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#cpp-articles" data-parent="#main-nav" data-toggle="collapse">C++</a> <ul id="cpp-articles" class="collapse "> <li > <a href="/docs/cpp/introvideos-cpp" >Intro Videos</a> </li> <li > <a href="/docs/cpp/config-linux" >GCC on Linux</a> </li> <li > <a href="/docs/cpp/config-mingw" >GCC on Windows</a> </li> <li > <a href="/docs/cpp/config-wsl" >GCC on Windows Subsystem for Linux</a> </li> <li > <a href="/docs/cpp/config-clang-mac" >Clang on macOS</a> </li> <li > <a href="/docs/cpp/config-msvc" >Microsoft C++ on Windows</a> </li> <li > <a href="/docs/cpp/build-with-cmake" >Build with CMake</a> </li> <li > <a href="/docs/cpp/cmake-linux" >CMake Tools on Linux</a> </li> <li > <a href="/docs/cpp/cmake-quickstart" >CMake Quick Start</a> </li> <li > <a href="/docs/cpp/cpp-ide" >Editing and Navigating</a> </li> <li > <a href="/docs/cpp/cpp-debug" >Debugging</a> </li> <li > <a href="/docs/cpp/cpp-refactoring" >Refactoring</a> </li> <li > <a href="/docs/cpp/launch-json-reference" >Configure debugging</a> </li> <li > <a href="/docs/cpp/customize-default-settings-cpp" >Settings</a> </li> <li > <a href="/docs/cpp/configure-intellisense" >Configure IntelliSense</a> </li> <li > <a href="/docs/cpp/configure-intellisense-crosscompilation" >Configure IntelliSense for cross-compiling</a> </li> <li > <a href="/docs/cpp/faq-cpp" >FAQ</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#csharp-articles" data-parent="#main-nav" data-toggle="collapse">C#</a> <ul id="csharp-articles" class="collapse "> <li > <a href="/docs/csharp/introvideos-csharp" >Intro Videos</a> </li> <li > <a href="/docs/csharp/get-started" >Get Started</a> </li> <li > <a href="/docs/csharp/navigate-edit" >Navigate and Edit</a> </li> <li > <a href="/docs/csharp/intellicode" >IntelliCode</a> </li> <li > <a href="/docs/csharp/refactoring" >Refactoring</a> </li> <li > <a href="/docs/csharp/formatting-linting" >Formatting and Linting</a> </li> <li > <a href="/docs/csharp/project-management" >Project Management</a> </li> <li > <a href="/docs/csharp/build-tools" >Build Tools</a> </li> <li > <a href="/docs/csharp/package-management" >Package Management</a> </li> <li > <a href="/docs/csharp/debugging" >Run and Debug</a> </li> <li > <a href="/docs/csharp/testing" >Testing</a> </li> <li > <a href="/docs/csharp/cs-dev-kit-faq" >FAQ</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#containers-articles" data-parent="#main-nav" data-toggle="collapse">Docker</a> <ul id="containers-articles" class="collapse "> <li > <a href="/docs/containers/overview" >Overview</a> </li> <li > <a href="/docs/containers/quickstart-node" >Node.js</a> </li> <li > <a href="/docs/containers/quickstart-python" >Python</a> </li> <li > <a href="/docs/containers/quickstart-aspnet-core" >ASP.NET Core</a> </li> <li > <a href="/docs/containers/debug-common" >Debug</a> </li> <li > <a href="/docs/containers/docker-compose" >Docker Compose</a> </li> <li > <a href="/docs/containers/quickstart-container-registries" >Registries</a> </li> <li > <a href="/docs/containers/app-service" >Deploy to Azure</a> </li> <li > <a href="/docs/containers/choosing-dev-environment" >Choose a dev environment</a> </li> <li > <a href="/docs/containers/reference" >Customize</a> </li> <li > <a href="/docs/containers/bridge-to-kubernetes" >Develop with Kubernetes</a> </li> <li > <a href="/docs/containers/troubleshooting" >Tips and Tricks</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#datascience-articles" data-parent="#main-nav" data-toggle="collapse">Data Science</a> <ul id="datascience-articles" class="collapse "> <li > <a href="/docs/datascience/overview" >Overview</a> </li> <li > <a href="/docs/datascience/jupyter-notebooks" >Jupyter Notebooks</a> </li> <li > <a href="/docs/datascience/data-science-tutorial" >Data Science Tutorial</a> </li> <li > <a href="/docs/datascience/python-interactive" >Python Interactive</a> </li> <li > <a href="/docs/datascience/data-wrangler-quick-start" >Data Wrangler Quick Start</a> </li> <li > <a href="/docs/datascience/data-wrangler" >Data Wrangler</a> </li> <li > <a href="/docs/datascience/pytorch-support" >PyTorch Support</a> </li> <li > <a href="/docs/datascience/azure-machine-learning" >Azure Machine Learning</a> </li> <li > <a href="/docs/datascience/jupyter-kernel-management" >Manage Jupyter Kernels</a> </li> <li > <a href="/docs/datascience/notebooks-web" >Jupyter Notebooks on the web</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#azure-articles" data-parent="#main-nav" data-toggle="collapse">Azure</a> <ul id="azure-articles" class="collapse "> <li > <a href="/docs/azure/overview" >Overview</a> </li> <li > <a href="/docs/azure/gettingstarted" >Getting Started</a> </li> <li > <a href="/docs/azure/deployment" >Deployment</a> </li> <li > <a href="/docs/azure/docker" >Docker</a> </li> <li > <a href="/docs/azure/aksextensions" >Azure Kubernetes Service</a> </li> <li > <a href="/docs/azure/kubernetes" >Kubernetes</a> </li> <li > <a href="/docs/azure/mongodb" >MongoDB</a> </li> <li > <a href="/docs/azure/remote-debugging" >Remote Debugging for Node.js</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#remote-articles" data-parent="#main-nav" data-toggle="collapse">Remote</a> <ul id="remote-articles" class="collapse "> <li > <a href="/docs/remote/remote-overview" >Overview</a> </li> <li > <a href="/docs/remote/ssh" >SSH</a> </li> <li > <a href="/docs/remote/dev-containers" >Dev Containers</a> </li> <li > <a href="/docs/remote/wsl" >Windows Subsystem for Linux</a> </li> <li > <a href="/docs/remote/codespaces" >GitHub Codespaces</a> </li> <li > <a href="/docs/remote/vscode-server" >VS Code Server</a> </li> <li > <a href="/docs/remote/tunnels" >Tunnels</a> </li> <li > <a href="/docs/remote/ssh-tutorial" >SSH Tutorial</a> </li> <li > <a href="/docs/remote/wsl-tutorial" >WSL Tutorial</a> </li> <li > <a href="/docs/remote/troubleshooting" >Tips and Tricks</a> </li> <li > <a href="/docs/remote/faq" >FAQ</a> </li> </ul> </li> <li class="panel collapsed"> <a class="area" role="button" href="#devcontainers-articles" data-parent="#main-nav" data-toggle="collapse">Dev Containers</a> <ul id="devcontainers-articles" class="collapse "> <li > <a href="/docs/devcontainers/containers" >Overview</a> </li> <li > <a href="/docs/devcontainers/tutorial" >Tutorial</a> </li> <li > <a href="/docs/devcontainers/attach-container" >Attach to Container</a> </li> <li > <a href="/docs/devcontainers/create-dev-container" >Create a Dev Container</a> </li> <li > <a href="/docs/devcontainers/containers-advanced" >Advanced Containers</a> </li> <li > <a href="/docs/devcontainers/devcontainerjson-reference" >devcontainer.json</a> </li> <li > <a href="/docs/devcontainers/devcontainer-cli" >Dev Container CLI</a> </li> <li > <a href="/docs/devcontainers/tips-and-tricks" >Tips and Tricks</a> </li> <li > <a href="/docs/devcontainers/faq" >FAQ</a> </li> </ul> </li> </ul> </nav> <nav id="small-nav" aria-label="Topics" class="docs-nav hidden-md hidden-lg"> <label class="faux-h4" for="small-nav-dropdown">Topics</label> <select id="small-nav-dropdown" aria-label="topics"> <option value="/docs" >Overview</option> <optgroup label="Setup"> <option value="/docs/setup/setup-overview" >Overview</option> <option value="/docs/setup/linux" >Linux</option> <option value="/docs/setup/mac" >macOS</option> <option value="/docs/setup/windows" >Windows</option> <option value="/docs/setup/raspberry-pi" >Raspberry Pi</option> <option value="/docs/setup/network" >Network</option> <option value="/docs/setup/additional-components" >Additional Components</option> <option value="/docs/setup/enterprise" >Enterprise</option> <option value="/docs/setup/uninstall" >Uninstall</option> </optgroup> <optgroup label="Get Started"> <option value="/docs/getstarted/getting-started" >Tutorial</option> <option value="/docs/getstarted/introvideos" >Intro Videos</option> <option value="/docs/getstarted/tips-and-tricks" >Tips and Tricks</option> <option value="/docs/getstarted/userinterface" >User Interface</option> <option value="/docs/getstarted/themes" >Themes</option> <option value="/docs/getstarted/settings" >Settings</option> <option value="/docs/getstarted/keybindings" >Key Bindings</option> <option value="/docs/getstarted/locales" >Display Language</option> <option value="/docs/getstarted/telemetry" >Telemetry</option> <option value="/docs/getstarted/educators-and-students" >Educators & Students</option> </optgroup> <optgroup label="User Guide"> <option value="/docs/editor/codebasics" >Basic Editing</option> <option value="/docs/editor/extension-marketplace" >Extension Marketplace</option> <option value="/docs/editor/intellisense" >IntelliSense</option> <option value="/docs/editor/editingevolved" >Code Navigation</option> <option value="/docs/editor/refactoring" >Refactoring</option> <option value="/docs/editor/debugging" >Debugging</option> <option value="/docs/editor/testing" >Testing</option> <option value="/docs/editor/vscode-web" >VS Code for the Web</option> <option value="/docs/editor/tasks" >Tasks</option> <option value="/docs/editor/profiles" >Profiles</option> <option value="/docs/editor/settings-sync" >Settings Sync</option> <option value="/docs/editor/userdefinedsnippets" >Snippets</option> <option value="/docs/editor/emmet" >Emmet</option> <option value="/docs/editor/command-line" >Command Line Interface</option> <option value="/docs/editor/workspaces" >Workspaces</option> <option value="/docs/editor/workspace-trust" >Workspace Trust</option> <option value="/docs/editor/multi-root-workspaces" >Multi-root Workspaces</option> <option value="/docs/editor/accessibility" >Accessibility</option> <option value="/docs/editor/voice" >Voice Interactions</option> <option value="/docs/editor/custom-layout" >Custom Layout</option> <option value="/docs/editor/port-forwarding" >Port Forwarding</option> </optgroup> <optgroup label="Source Control"> <option value="/docs/sourcecontrol/overview" >Overview</option> <option value="/docs/sourcecontrol/intro-to-git" >Introduction to Git</option> <option value="/docs/sourcecontrol/github" >Collaborate on GitHub</option> <option value="/docs/sourcecontrol/faq" >FAQ</option> </optgroup> <optgroup label="Terminal"> <option value="/docs/terminal/getting-started" >Getting Started Tutorial</option> <option value="/docs/terminal/basics" >Terminal Basics</option> <option value="/docs/terminal/profiles" >Terminal Profiles</option> <option value="/docs/terminal/shell-integration" >Shell Integration</option> <option value="/docs/terminal/appearance" >Appearance</option> <option value="/docs/terminal/advanced" >Advanced</option> </optgroup> <optgroup label="GitHub Copilot"> <option value="/docs/copilot/overview" >Overview</option> <option value="/docs/copilot/copilot-vscode-features" >Copilot Cheat Sheet</option> <option value="/docs/copilot/setup" >Setup</option> <option value="/docs/copilot/getting-started" >Quickstart</option> <option value="/docs/copilot/ai-powered-suggestions" >Code Completions</option> <option value="/docs/copilot/copilot-chat" selected>Copilot Chat</option> <option value="/docs/copilot/getting-started-chat" >Copilot Chat Tutorial</option> <option value="/docs/copilot/copilot-edits" >Copilot Edits</option> <option value="/docs/copilot/prompt-crafting" >Best Practices</option> <option value="/docs/copilot/workspace-context" >Workspace Context</option> <option value="/docs/copilot/copilot-customization" >Customizing Copilot</option> <option value="/docs/copilot/copilot-extensibility-overview" >Copilot Extensibility</option> <option value="/docs/copilot/copilot-settings" >Settings Reference</option> <option value="/docs/copilot/faq" >FAQ</option> </optgroup> <optgroup label="Languages"> <option value="/docs/languages/overview" >Overview</option> <option value="/docs/languages/javascript" >JavaScript</option> <option value="/docs/languages/json" >JSON</option> <option value="/docs/languages/html" >HTML</option> <option value="/docs/languages/css" >CSS, SCSS and Less</option> <option value="/docs/languages/typescript" >TypeScript</option> <option value="/docs/languages/markdown" >Markdown</option> <option value="/docs/languages/powershell" >PowerShell</option> <option value="/docs/languages/cpp" >C++</option> <option value="/docs/languages/java" >Java</option> <option value="/docs/languages/php" >PHP</option> <option value="/docs/languages/python" >Python</option> <option value="/docs/languages/julia" >Julia</option> <option value="/docs/languages/r" >R</option> <option value="/docs/languages/ruby" >Ruby</option> <option value="/docs/languages/rust" >Rust</option> <option value="/docs/languages/go" >Go</option> <option value="/docs/languages/tsql" >T-SQL</option> <option value="/docs/languages/csharp" >C#</option> <option value="/docs/languages/dotnet" >.NET</option> <option value="/docs/languages/polyglot" >Polyglot</option> </optgroup> <optgroup label="Node.js / JavaScript"> <option value="/docs/nodejs/working-with-javascript" >Working with JavaScript</option> <option value="/docs/nodejs/nodejs-tutorial" >Node.js Tutorial</option> <option value="/docs/nodejs/nodejs-debugging" >Node.js Debugging</option> <option value="/docs/nodejs/nodejs-deployment" >Deploy Node.js Apps</option> <option value="/docs/nodejs/browser-debugging" >Browser Debugging</option> <option value="/docs/nodejs/angular-tutorial" >Angular Tutorial</option> <option value="/docs/nodejs/reactjs-tutorial" >React Tutorial</option> <option value="/docs/nodejs/vuejs-tutorial" >Vue Tutorial</option> <option value="/docs/nodejs/debugging-recipes" >Debugging Recipes</option> <option value="/docs/nodejs/profiling" >Performance Profiling</option> <option value="/docs/nodejs/extensions" >Extensions</option> </optgroup> <optgroup label="TypeScript"> <option value="/docs/typescript/typescript-tutorial" >Tutorial</option> <option value="/docs/typescript/typescript-compiling" >Compiling</option> <option value="/docs/typescript/typescript-editing" >Editing</option> <option value="/docs/typescript/typescript-refactoring" >Refactoring</option> <option value="/docs/typescript/typescript-debugging" >Debugging</option> </optgroup> <optgroup label="Python"> <option value="/docs/python/python-quick-start" >Quick Start</option> <option value="/docs/python/python-tutorial" >Tutorial</option> <option value="/docs/python/run" >Run Python Code</option> <option value="/docs/python/editing" >Editing Code</option> <option value="/docs/python/linting" >Linting</option> <option value="/docs/python/formatting" >Formatting</option> <option value="/docs/python/debugging" >Debugging</option> <option value="/docs/python/environments" >Environments</option> <option value="/docs/python/testing" >Testing</option> <option value="/docs/python/jupyter-support-py" >Python Interactive</option> <option value="/docs/python/tutorial-django" >Django Tutorial</option> <option value="/docs/python/tutorial-fastapi" >FastAPI Tutorial</option> <option value="/docs/python/tutorial-flask" >Flask Tutorial</option> <option value="/docs/python/tutorial-create-containers" >Create containers</option> <option value="/docs/python/python-on-azure" >Deploy Python Apps</option> <option value="/docs/python/python-web" >Python in the Web</option> <option value="/docs/python/settings-reference" >Settings Reference</option> </optgroup> <optgroup label="Java"> <option value="/docs/java/java-tutorial" >Getting Started</option> <option value="/docs/java/java-editing" >Navigate and Edit</option> <option value="/docs/java/java-refactoring" >Refactoring</option> <option value="/docs/java/java-linting" >Formatting and Linting</option> <option value="/docs/java/java-project" >Project Management</option> <option value="/docs/java/java-build" >Build Tools</option> <option value="/docs/java/java-debugging" >Run and Debug</option> <option value="/docs/java/java-testing" >Testing</option> <option value="/docs/java/java-spring-boot" >Spring Boot</option> <option value="/docs/java/java-tomcat-jetty" >Application Servers</option> <option value="/docs/java/java-on-azure" >Deploy Java Apps</option> <option value="/docs/java/java-gui" >GUI Applications</option> <option value="/docs/java/extensions" >Extensions</option> <option value="/docs/java/java-faq" >FAQ</option> </optgroup> <optgroup label="C++"> <option value="/docs/cpp/introvideos-cpp" >Intro Videos</option> <option value="/docs/cpp/config-linux" >GCC on Linux</option> <option value="/docs/cpp/config-mingw" >GCC on Windows</option> <option value="/docs/cpp/config-wsl" >GCC on Windows Subsystem for Linux</option> <option value="/docs/cpp/config-clang-mac" >Clang on macOS</option> <option value="/docs/cpp/config-msvc" >Microsoft C++ on Windows</option> <option value="/docs/cpp/build-with-cmake" >Build with CMake</option> <option value="/docs/cpp/cmake-linux" >CMake Tools on Linux</option> <option value="/docs/cpp/cmake-quickstart" >CMake Quick Start</option> <option value="/docs/cpp/cpp-ide" >Editing and Navigating</option> <option value="/docs/cpp/cpp-debug" >Debugging</option> <option value="/docs/cpp/cpp-refactoring" >Refactoring</option> <option value="/docs/cpp/launch-json-reference" >Configure debugging</option> <option value="/docs/cpp/customize-default-settings-cpp" >Settings</option> <option value="/docs/cpp/configure-intellisense" >Configure IntelliSense</option> <option value="/docs/cpp/configure-intellisense-crosscompilation" >Configure IntelliSense for cross-compiling</option> <option value="/docs/cpp/faq-cpp" >FAQ</option> </optgroup> <optgroup label="C#"> <option value="/docs/csharp/introvideos-csharp" >Intro Videos</option> <option value="/docs/csharp/get-started" >Get Started</option> <option value="/docs/csharp/navigate-edit" >Navigate and Edit</option> <option value="/docs/csharp/intellicode" >IntelliCode</option> <option value="/docs/csharp/refactoring" >Refactoring</option> <option value="/docs/csharp/formatting-linting" >Formatting and Linting</option> <option value="/docs/csharp/project-management" >Project Management</option> <option value="/docs/csharp/build-tools" >Build Tools</option> <option value="/docs/csharp/package-management" >Package Management</option> <option value="/docs/csharp/debugging" >Run and Debug</option> <option value="/docs/csharp/testing" >Testing</option> <option value="/docs/csharp/cs-dev-kit-faq" >FAQ</option> </optgroup> <optgroup label="Docker"> <option value="/docs/containers/overview" >Overview</option> <option value="/docs/containers/quickstart-node" >Node.js</option> <option value="/docs/containers/quickstart-python" >Python</option> <option value="/docs/containers/quickstart-aspnet-core" >ASP.NET Core</option> <option value="/docs/containers/debug-common" >Debug</option> <option value="/docs/containers/docker-compose" >Docker Compose</option> <option value="/docs/containers/quickstart-container-registries" >Registries</option> <option value="/docs/containers/app-service" >Deploy to Azure</option> <option value="/docs/containers/choosing-dev-environment" >Choose a dev environment</option> <option value="/docs/containers/reference" >Customize</option> <option value="/docs/containers/bridge-to-kubernetes" >Develop with Kubernetes</option> <option value="/docs/containers/troubleshooting" >Tips and Tricks</option> </optgroup> <optgroup label="Data Science"> <option value="/docs/datascience/overview" >Overview</option> <option value="/docs/datascience/jupyter-notebooks" >Jupyter Notebooks</option> <option value="/docs/datascience/data-science-tutorial" >Data Science Tutorial</option> <option value="/docs/datascience/python-interactive" >Python Interactive</option> <option value="/docs/datascience/data-wrangler-quick-start" >Data Wrangler Quick Start</option> <option value="/docs/datascience/data-wrangler" >Data Wrangler</option> <option value="/docs/datascience/pytorch-support" >PyTorch Support</option> <option value="/docs/datascience/azure-machine-learning" >Azure Machine Learning</option> <option value="/docs/datascience/jupyter-kernel-management" >Manage Jupyter Kernels</option> <option value="/docs/datascience/notebooks-web" >Jupyter Notebooks on the web</option> </optgroup> <optgroup label="Azure"> <option value="/docs/azure/overview" >Overview</option> <option value="/docs/azure/gettingstarted" >Getting Started</option> <option value="/docs/azure/deployment" >Deployment</option> <option value="/docs/azure/docker" >Docker</option> <option value="/docs/azure/aksextensions" >Azure Kubernetes Service</option> <option value="/docs/azure/kubernetes" >Kubernetes</option> <option value="/docs/azure/mongodb" >MongoDB</option> <option value="/docs/azure/remote-debugging" >Remote Debugging for Node.js</option> </optgroup> <optgroup label="Remote"> <option value="/docs/remote/remote-overview" >Overview</option> <option value="/docs/remote/ssh" >SSH</option> <option value="/docs/remote/dev-containers" >Dev Containers</option> <option value="/docs/remote/wsl" >Windows Subsystem for Linux</option> <option value="/docs/remote/codespaces" >GitHub Codespaces</option> <option value="/docs/remote/vscode-server" >VS Code Server</option> <option value="/docs/remote/tunnels" >Tunnels</option> <option value="/docs/remote/ssh-tutorial" >SSH Tutorial</option> <option value="/docs/remote/wsl-tutorial" >WSL Tutorial</option> <option value="/docs/remote/troubleshooting" >Tips and Tricks</option> <option value="/docs/remote/faq" >FAQ</option> </optgroup> <optgroup label="Dev Containers"> <option value="/docs/devcontainers/containers" >Overview</option> <option value="/docs/devcontainers/tutorial" >Tutorial</option> <option value="/docs/devcontainers/attach-container" >Attach to Container</option> <option value="/docs/devcontainers/create-dev-container" >Create a Dev Container</option> <option value="/docs/devcontainers/containers-advanced" >Advanced Containers</option> <option value="/docs/devcontainers/devcontainerjson-reference" >devcontainer.json</option> <option value="/docs/devcontainers/devcontainer-cli" >Dev Container CLI</option> <option value="/docs/devcontainers/tips-and-tricks" >Tips and Tricks</option> <option value="/docs/devcontainers/faq" >FAQ</option> </optgroup> </select> </nav> </div> <!-- small right nav --> <div class="col-xs-12 visible-xs"> <nav aria-labelledby="small-right-nav-label" class="small-nav docs-nav updates-nav"> <label class="faux-h4" for="small-right-nav-dropdown" id="small-right-nav-label">In this article</label> <select id="small-right-nav-dropdown" class="small-nav-select" aria-label="Sections"> <option value="#_copilot-chat-use-cases">Copilot Chat use cases</option> <option value="#_prerequisites">Prerequisites</option> <option value="#_getting-started">Getting started</option> <option value="#_changing-your-ai-model">Changing your AI model</option> <option value="#_inline-chat">Inline Chat</option> <option value="#_chat-view">Chat view</option> <option value="#_quick-chat">Quick Chat</option> <option value="#_multiturn-conversations">Multi-turn conversations</option> <option value="#_terminal-inline-chat">Terminal Inline Chat</option> <option value="#_chat-smart-actions">Chat smart actions</option> <option value="#_chat-participants">Chat participants</option> <option value="#_slash-commands">Slash commands</option> <option value="#_improve-the-performance-of-copilot-chat">Improve the performance of Copilot Chat</option> <option value="#_use-voice-interactions">Use voice interactions</option> <option value="#_privacy-and-transparency">Privacy and transparency</option> <option value="#_frequently-asked-questions">Frequently asked questions</option> <option value="#_additional-resources">Additional resources</option> <option value="#_next-step">Next step</option> </select> </nav> </div> <!-- main content --> <main class="col-xs-12 col-sm-9 col-md-8 body"> <div class="edit-github pull-right"> <a href="https://vscode.dev/github/microsoft/vscode-docs/blob/main/docs/copilot/copilot-chat.md" class="btn btn-default" title="Edit this document in vscode.dev"> <span class="glyphicon glyphicon-pencil"></span> <span class="hidden-xs">Edit</span> </a> </div> <h1>Using Copilot Chat in VS Code</h1> <p>With the <a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat" class="external-link" target="_blank">GitHub Copilot Chat</a> extension in Visual Studio Code, you can have AI-powered chat conversations to generate code, increase your code understanding, and even configure your editor. Instead of searching for answers in documentation or online forums, you can ask Copilot Chat directly in VS Code, and get code suggestions while you're in the flow of coding.</p> <p>Copilot Chat integrates in your developer flow and gives you assistance where you need it:</p> <ul> <li><a href="#_inline-chat"><strong>Inline Chat</strong></a>: start a chat conversation directly from the editor and get inline suggestions while you're coding</li> <li><a href="#_chat-view"><strong>Chat view</strong></a>: have an AI assistant on the side to help with your questions and to provide code suggestions</li> <li><a href="#_quick-chat"><strong>Quick Chat</strong></a>: ask a quick question and get back into what you're doing</li> </ul> <h2 id="_copilot-chat-use-cases" data-needslink="_copilot-chat-use-cases">Copilot Chat use cases</h2> <p>You can use Copilot Chat in various developer scenarios, such as:</p> <ul> <li>Answering questions about coding and technology topics (<em>"What is a linked list?"</em>, <em>"top 10 popular web frameworks"</em>)</li> <li>Answering coding questions on how to best solve a problem (<em>"How to add auth to my project?"</em>)</li> <li>Explaining someone else's code and suggesting improvements (<em>"@workspace /explain"</em>, <em>"What does this code do?"</em>)</li> <li>Proposing code fixes (<em>"@workspace /fix"</em>, <em>"This method gives a FileNotFoundException"</em>)</li> <li>Generating unit test cases (<em>"@workspace /tests"</em>)</li> <li>Generating code documentation (<em>"/doc"</em>)</li> </ul> <h2 id="_prerequisites" data-needslink="_prerequisites">Prerequisites</h2> <ul> <li> <p>To use GitHub Copilot, you must have an active subscription for GitHub Copilot in your personal account, or you need to be assigned a seat by your organization.</p> </li> <li> <p>To use GitHub Copilot in VS Code, you must have the <a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot" class="external-link" target="_blank">GitHub Copilot</a> extension. When you install this extension, the <a href="https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat" class="external-link" target="_blank">GitHub Copilot Chat</a> extension is also installed.</p> </li> </ul> <p>Follow these steps to <a href="/docs/copilot/setup">set up GitHub Copilot in VS Code</a> by signing up for a subscription and installing the Copilot extension in VS Code.</p> <h2 id="_getting-started" data-needslink="_getting-started">Getting started</h2> <h3 id="_open-chat" data-needslink="_open-chat">Open chat</h3> <p>Use the Copilot Chat menu in the VS Code Command Center to get started with the different chat experiences.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-menu-command-center.png" alt="Screenshot of the Copilot Chat menu in the VS Code Command Center" loading="lazy"></p> <p>Or use one of the keyboard shortcuts to start a chat conversation with Copilot.</p> <table class="table table-striped"> <thead> <tr> <th>Shortcut</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><span class="dynamic-keybinding" data-commandId="workbench.action.chat.open" data-osx="⌃⌘I" data-win="Ctrl+Alt+I" data-linux="Ctrl+Alt+I"><span class="keybinding">⌃⌘I</span> (Windows, Linux <span class="keybinding">Ctrl+Alt+I</span>)</span></td> <td>Open the <strong>Chat view</strong> and start a chat conversation with Copilot by using natural language.</td> </tr> <tr> <td><span class="dynamic-keybinding" data-commandId="workbench.action.quickchat.toggle" data-osx="⇧⌥⌘L" data-win="Ctrl+Shift+Alt+L" data-linux="Ctrl+Shift+Alt+L"><span class="keybinding">⇧⌥⌘L</span> (Windows, Linux <span class="keybinding">Ctrl+Shift+Alt+L</span>)</span></td> <td>Open <strong>Quick Chat</strong> and ask a quick question to Copilot.</td> </tr> <tr> <td><span class="dynamic-keybinding" data-commandId="inlinechat.start" data-osx="⌘I" data-win="Ctrl+I" data-linux="Ctrl+I"><span class="keybinding">⌘I</span> (Windows, Linux <span class="keybinding">Ctrl+I</span>)</span></td> <td>Start <strong>Inline Chat</strong> to send a chat request to Copilot directly from the editor. Use natural language or use <code>/</code> commands to give instructions to Copilot.</td> </tr> </tbody> </table> <h3 id="_chat-context" data-needslink="_chat-context">Chat context</h3> <p>Copilot tries to determine the intent and scope of your question based on your natural language chat prompt. To help Copilot give you the best and most relevant answers, add context to your chat prompt. For example, attach specific files or even the full contents of your workspace, the current editor selection, and more.</p> <p>You can add context to your chat message by using the <i class="codicon codicon-attach"></i> button (<span class="dynamic-keybinding" data-commandId="workbench.action.chat.attachContext" data-osx="⌘/" data-win="Ctrl+/" data-linux="Ctrl+/"><span class="keybinding">⌘/</span> (Windows, Linux <span class="keybinding">Ctrl+/</span>)</span>) in any of the chat experiences. You can then select the specific type of context from a Quick Pick, such as the current selection, one or more files from the workspace, or one or more symbols from your source code.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view-attach-context.png" alt="Screenshot of VS Code Copilot Chat view, showing the Attach context button and context Quick Pick." loading="lazy"></p> <div class="markdown-alert tip" dir="auto"> <span> <svg class="markdown-alert-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"> </path> </svg> Tip </span><p>To quickly add multiple items from the attachment Quick Pick, use the <span class="keybinding">Up</span> and <span class="keybinding">Down</span> keys to navigate the list, use the <span class="keybinding">Right</span> key to add the item as context, and then repeat this for other items.</p> </div><p>Another quick way to add specific files to your chat prompt is to drag and drop files from the Explorer or Search view onto the chat input field. You can also drag and drop an editor tab onto the chat input field to add the file as context.</p> <p><video src="/assets/docs/copilot/copilot-chat/copilot-attach-dnd.mp4" title="Dragging files and editors into chat" autoplay loop controls muted></video></p> <p>VS Code automatically adds the currently active editor as context to your chat prompt in the Chat view. If you have a block of code selected in the editor, only that selection is added as context. You can disable adding the active editor by selecting the disable icon on the context item.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view-selection-context.png" alt="Screenshot of VS Code Copilot Chat view, showing the current editor selection as context." loading="lazy"></p> <p>You can also reference context by using chat variables. Type the <code>#</code> character and you'll see a list of available chat variables. For example, you can use <code>#selection</code> to add the current editor selection to your chat prompt, or <code>#file</code> to add a specific file from the workspace.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view-chat-variables.png" alt="Screenshot of VS Code Copilot Chat view, showing the chat variable picker." loading="lazy"></p> <div class="markdown-alert note" dir="auto"> <span> <svg class="markdown-alert-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"> </path> </svg> Note </span><p>If possible, the full contents of the file will be included when you attach a file. If that is too large to fit into the context window, an outline of the file will be included that includes functions and their descriptions without implementations. If the outline is also too large, then the file won't be part of the prompt.</p> </div><h2 id="_changing-your-ai-model" data-needslink="_changing-your-ai-model">Changing your AI model</h2> <p>The model picker in the chat input field enables you to change the language model that is used to generate responses. Select the model picker and choose one of the available language models.</p> <p>You can use the model picker in the different chat experiences.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view-model-picker.png" alt="Screenshot of the model picker in the Chat view" loading="lazy"></p> <h2 id="_inline-chat" data-needslink="_inline-chat">Inline Chat</h2> <p>Inline Chat enables you to have a chat conversation with Copilot directly from the editor without leaving the context of your work. With Inline Chat, you can preview code suggestions in-place within your code, which can be useful for quickly iterating on code changes.</p> <p>In any file, press <span class="dynamic-keybinding" data-commandId="inlinechat.start" data-osx="⌘I" data-win="Ctrl+I" data-linux="Ctrl+I"><span class="keybinding">⌘I</span> (Windows, Linux <span class="keybinding">Ctrl+I</span>)</span> on your keyboard to bring up Copilot Inline Chat and get started. Alternatively, open a file and select <strong>Editor Inline Chat</strong> in the Copilot Chat Command Center menu.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-command-center-editor-inline-chat.png" alt="Screenshot of the Copilot Chat menu in the VS Code Command Center" loading="lazy"></p> <p>Depending on your question, Copilot suggests code modifications or refactorings for the file you're currently in. Copilot gives a preview of the updates, which you can then accept (<span class="dynamic-keybinding" data-commandId="inlineChat.acceptChanges" data-osx="⌘Enter" data-win="Ctrl+Enter" data-linux="Ctrl+Enter"><span class="keybinding">⌘Enter</span> (Windows, Linux <span class="keybinding">Ctrl+Enter</span>)</span>) or discard (<span class="dynamic-keybinding" data-commandId="inlineChat.close" data-osx="Escape" data-win="Escape" data-linux="Escape"><span class="keybinding">Escape</span></span>). Optionally, you can generate a new code suggestion.</p> <p><img src="/assets/docs/copilot/copilot-chat/inline-chat-css-variables.png" alt="Copilot Inline Chat asking to convert a sort algorithm to use bubble sort" loading="lazy"></p> <p>If you have a block of code selected in the editor, Copilot scopes your question to the selection.</p> <p>You can also ask Copilot more exploratory questions that emerge as you write and iterate on code, such as "Explain this piece of code", or "How do I add functionality to do X?".</p> <p><img src="/assets/docs/copilot/copilot-chat/inline-chat-question-example.png" alt="Copilot Inline Chat asking information about the used sorting algorithm" loading="lazy"></p> <p>With the <span class="setting"><a href="vscode://settings/inlineChat.mode" codesetting="true"><span class="codicon codicon-settings-gear dynamic-setting-icon" title="Open 'inlineChat.mode' in Settings Editor"></span></a>inlineChat.mode</span> setting, you can configure how Inline Chat shows updates in the editor. The default setting value is <code>live</code>, which means that the updates are applied directly in the editor. If you prefer to preview the changes side-by-side instead, you configure the setting to <code>preview</code>.</p> <p>The following example shows the <code>preview</code> mode for Inline Chat.</p> <p><img src="/assets/docs/copilot/copilot-chat/inline-chat-preview-mode.png" alt="Copilot Inline Chat preview mode, showing the code changes side-by-side" loading="lazy"></p> <h2 id="_chat-view" data-needslink="_chat-view">Chat view</h2> <h3 id="_open-the-chat-view" data-needslink="_open-the-chat-view">Open the Chat view</h3> <p>The Chat view enables you to have a chat conversation with Copilot in a separate view. By default, the Chat view is located in the <strong>Secondary Side Bar</strong>. The Secondary Side Bar is always positioned opposite the Primary Side Bar, so you can have the Chat view open at the same time as the Explorer, Source Control, or other views in the Primary Side Bar.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view.png" alt="Copilot Chat view in the Secondary Side Bar and Explorer view in the Primary Side Bar." loading="lazy"></p> <p>You can access the Chat view by pressing <span class="dynamic-keybinding" data-commandId="workbench.action.chat.open" data-osx="⌃⌘I" data-win="Ctrl+Alt+I" data-linux="Ctrl+Alt+I"><span class="keybinding">⌃⌘I</span> (Windows, Linux <span class="keybinding">Ctrl+Alt+I</span>)</span> or by selecting <strong>Open Chat</strong> in the Copilot Chat Command Center menu.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-command-center-open-chat.png" alt="Screenshot of the Copilot Chat menu in the VS Code Command Center, highlighting Open Chat" loading="lazy"></p> <p>You can also use the layout controls in the VS Code title bar to toggle the Secondary Side Bar, which contains the Chat view.</p> <p><img src="/assets/docs/copilot/copilot-chat/layout-controls-toggle-secondary-side-bar.png" alt="Layout controls in the VS Code title bar, highlighting the Secondary Side Bar toggle." loading="lazy"></p> <div class="markdown-alert tip" dir="auto"> <span> <svg class="markdown-alert-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"> </path> </svg> Tip </span><p>At any time, you can drag the Chat view to another location, or even open it as an editor. Learn more about <a href="/docs/editor/custom-layout">custom layouts in VS Code</a>.</p> </div><h3 id="_enter-a-chat-prompt" data-needslink="_enter-a-chat-prompt">Enter a chat prompt</h3> <p>To get started, type your question in the chat input field. For example, ask a question about a general programming topic, or ask about the specific code in your workspace. Make sure to <a href="#_chat-context">attach the relevant context</a> for your chat prompt to help Copilot give you more relevant answers.</p> <p><img src="/assets/docs/copilot/copilot-chat/devcontainer-explain.png" alt="Copilot explaining a devcontainer.json file" loading="lazy"></p> <div class="markdown-alert tip" dir="auto"> <span> <svg class="markdown-alert-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"> </path> </svg> Tip </span><p>Type <code>/help</code> in the chat input box to get help about GitHub Copilot and how to interact with Copilot Chat.</p> </div><p>Copilot Chat can provide rich and interactive results that contain: simple text, images, buttons for invoking VS Code commands, references URIs or editor locations, or file trees (for example, to show a workspace preview when a chat participant proposes to create a new workspace).</p> <p>The following example (<em>"@workspace /new Express with TypeScript and pug"</em>) shows a chat prompt to create an Express app, which returns a tree view with a suggested workspace structure and a button to create a new workspace.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view-workspace-file-tree.png" alt="Copilot response containing rich results, such as a file tree with a proposed workspace structure, and a button to create a new workspace" loading="lazy"></p> <p>As you keep the conversation going, Copilot maintains the <a href="#_conversation-history">history of your chat messages and responses</a>, and provides related follow-up questions or commands in its response too.</p> <h3 id="_code-blocks" data-needslink="_code-blocks">Code blocks</h3> <p>Depending on your question, Copilot Chat might return source code in a code block. Depending on the language extension, the code block in the chat response might support IntelliSense, which enables you get information about methods and symbols by hovering over them, or to go to their definition.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view-code-block-actions.png" alt="A Copilot Chat code block response." loading="lazy"></p> <p>Hovering over the code block presents options to <strong>Apply in Editor</strong>, <strong>Insert at Cursor</strong>, and <strong>Copy</strong>.</p> <p>The <strong>More Actions</strong> (<code>...</code>) button gives options to <strong>Insert Into New File</strong> and <strong>Insert into Terminal</strong> (<span class="dynamic-keybinding" data-commandId="workbench.action.chat.runInTerminal" data-osx="⌃⌥Enter" data-win="Ctrl+Alt+Enter" data-linux="Ctrl+Alt+Enter"><span class="keybinding">⌃⌥Enter</span> (Windows, Linux <span class="keybinding">Ctrl+Alt+Enter</span>)</span>).</p> <p>If Copilot Chat detects that a code block contains a shell command, you can run it directly in the integrated terminal with <strong>Insert into Terminal</strong> (<span class="dynamic-keybinding" data-commandId="workbench.action.chat.runInTerminal" data-osx="⌃⌥Enter" data-win="Ctrl+Alt+Enter" data-linux="Ctrl+Alt+Enter"><span class="keybinding">⌃⌥Enter</span> (Windows, Linux <span class="keybinding">Ctrl+Alt+Enter</span>)</span>). This option creates or opens the active terminal and inserts the command text, ready for you to run.</p> <p><img src="/assets/docs/copilot/copilot-chat/run-in-terminal.png" alt="Copilot Chat code block to list files with Insert into Terminal option visible" loading="lazy"></p> <div class="markdown-alert tip" dir="auto"> <span> <svg class="markdown-alert-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"> </path> </svg> Tip </span><p>Navigate between code blocks with <strong>Chat: Next Code Block</strong> (<span class="dynamic-keybinding" data-commandId="workbench.action.chat.nextCodeBlock" data-osx="⌥⌘PageDown" data-win="Ctrl+Alt+PageDown" data-linux="Ctrl+Alt+PageDown"><span class="keybinding">⌥⌘PageDown</span> (Windows, Linux <span class="keybinding">Ctrl+Alt+PageDown</span>)</span>) and <strong>Chat Previous Code Block</strong> (<span class="dynamic-keybinding" data-commandId="workbench.action.chat.previousCodeBlock" data-osx="⌥⌘PageUp" data-win="Ctrl+Alt+PageUp" data-linux="Ctrl+Alt+PageUp"><span class="keybinding">⌥⌘PageUp</span> (Windows, Linux <span class="keybinding">Ctrl+Alt+PageUp</span>)</span>).</p> </div><p>You can control the font for code blocks in chat with the following settings:</p> <ul> <li><span class="setting"><a href="vscode://settings/chat.editor.fontFamily" codesetting="true"><span class="codicon codicon-settings-gear dynamic-setting-icon" title="Open 'chat.editor.fontFamily' in Settings Editor"></span></a>chat.editor.fontFamily</span></li> <li><span class="setting"><a href="vscode://settings/chat.editor.fontSize" codesetting="true"><span class="codicon codicon-settings-gear dynamic-setting-icon" title="Open 'chat.editor.fontSize' in Settings Editor"></span></a>chat.editor.fontSize</span></li> <li><span class="setting"><a href="vscode://settings/chat.editor.fontWeight" codesetting="true"><span class="codicon codicon-settings-gear dynamic-setting-icon" title="Open 'chat.editor.fontWeight' in Settings Editor"></span></a>chat.editor.fontWeight</span></li> <li><span class="setting"><a href="vscode://settings/chat.editor.lineHeight" codesetting="true"><span class="codicon codicon-settings-gear dynamic-setting-icon" title="Open 'chat.editor.lineHeight' in Settings Editor"></span></a>chat.editor.lineHeight</span></li> </ul> <h3 id="_chat-history" data-needslink="_chat-history">Chat history</h3> <p>Copilot Chat maintains a history of your previous chat conversations, which you can access by using the <strong>Show Chats...</strong> button in the Chat view or by using the <strong>Chat: Show Chats...</strong> command in the Command Palette.</p> <p>A Quick Pick shows the list of previous chats, order by most recent. You can select a chat to open it in the Chat view.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-view-show-chats.png" alt="Screenshot of the Chat view with the Show Chats... button highlighted" loading="lazy"></p> <h2 id="_quick-chat" data-needslink="_quick-chat">Quick Chat</h2> <p>If you want to ask Copilot a quick question and don't want to start a full Chat view session or open Inline Chat in your editor, you can use the Quick Chat dropdown.</p> <p><img src="/assets/docs/copilot/copilot-chat/quick-chat-dropdown.png" alt="Quick Chat dropdown" loading="lazy"></p> <p>Press <span class="dynamic-keybinding" data-commandId="workbench.action.quickchat.toggle" data-osx="⇧⌥⌘L" data-win="Ctrl+Shift+Alt+L" data-linux="Ctrl+Shift+Alt+L"><span class="keybinding">⇧⌥⌘L</span> (Windows, Linux <span class="keybinding">Ctrl+Shift+Alt+L</span>)</span> on your keyboard to bring up Quick Chat. Alternatively, select <strong>Quick Chat</strong> in the Copilot Chat Command Center menu.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-command-center-quick-chat.png" alt="Screenshot of the Copilot Chat menu in the VS Code Command Center" loading="lazy"></p> <p>You can type questions, scope your questions with <a href="#_chat-participants">chat participants</a> and <a href="#_slash-commands">slash commands</a>, and promote the discussion to a full Chat view session with the <strong>Open in Chat View</strong> button in the upper right of the dropdown.</p> <p><img src="/assets/docs/copilot/copilot-chat/open-in-chat-view.png" alt="Quick Chat Open in Chat View button" loading="lazy"></p> <h2 id="_multiturn-conversations" data-needslink="_multiturn-conversations">Multi-turn conversations</h2> <p>When you ask a question in Copilot Chat, you aren't stuck with the first response. Keep the chat conversation open and continue to iterate and prompt Copilot to improve the suggested solution. Copilot has both the context of the generated code and your current conversation history. As you keep asking additional questions, Copilot further refines the response according to your requirements.</p> <p>Here's an example using Inline Chat to create a function to calculate Fibonacci numbers:</p> <p><img src="/assets/docs/copilot/prompt-crafting/fibonacci-first.png" alt="First response from Copilot for a function to calculate Fibonacci numbers" loading="lazy"></p> <p>If you prefer a solution that doesn't use recursion, update the chat prompt and submit it to Copilot to get a different response.</p> <p><img src="/assets/docs/copilot/prompt-crafting/fibonacci-second.png" alt="Ask Copilot to not use recursion and new result" loading="lazy"></p> <p>Learn more about how to <a href="/docs/copilot/prompt-crafting#_iterate-on-your-solution">iterate over a Copilot chat conversation</a>.</p> <h2 id="_terminal-inline-chat" data-needslink="_terminal-inline-chat">Terminal Inline Chat</h2> <p>Similar to Inline Chat in the editor, you can bring up Copilot Inline Chat in the terminal to help you answer questions related to the terminal and shell commands. The terminal Inline Chat uses the <code>@terminal</code> chat participant, which has context about the integrated terminal's shell and its contents. For example, you can ask questions such as "how to install npm packages", or "list the top 5 largest files in the src directory".</p> <p>To start Inline Chat in the terminal, press the <span class="dynamic-keybinding" data-commandId="inlinechat.start" data-osx="⌘I" data-win="Ctrl+I" data-linux="Ctrl+I"><span class="keybinding">⌘I</span> (Windows, Linux <span class="keybinding">Ctrl+I</span>)</span> keyboard shortcut.</p> <p><img src="/assets/docs/copilot/copilot-chat/terminal-chat-2.png" alt="Screenshot showing that you can ask complex questions like "list the top 5 largest files in the src dir"" loading="lazy"></p> <p>Once a command is suggested, use <strong>Run</strong> (<span class="dynamic-keybinding" data-commandId="workbench.action.terminal.chat.runCommand" data-osx="⌘Enter" data-win="Ctrl+Enter" data-linux="Ctrl+Enter"><span class="keybinding">⌘Enter</span> (Windows, Linux <span class="keybinding">Ctrl+Enter</span>)</span>) to run the command in the terminal, or <strong>Insert</strong> (<span class="dynamic-keybinding" data-commandId="workbench.action.terminal.chat.insertCommand" data-osx="⌥Enter" data-win="Alt+Enter" data-linux="Alt+Enter"><span class="keybinding">⌥Enter</span> (Windows, Linux <span class="keybinding">Alt+Enter</span>)</span>) to insert the command into the terminal.</p> <p>Optionally, you can edit the command directly in the Copilot response before running it by placing the cursor in the response or by pressing <span class="keybinding">Ctrl+down</span>, <span class="keybinding">Tab</span>, <span class="keybinding">Tab</span> on Windows & Linux, or <span class="keybinding">Cmd+down</span>, <span class="keybinding">Tab</span>, <span class="keybinding">Tab</span> on macOS.</p> <h2 id="_chat-smart-actions" data-needslink="_chat-smart-actions">Chat smart actions</h2> <p>To make it easier to use Copilot Chat features, smart actions are integrated in your VS Code flow and they do not require you to write any prompt at all. For example, you can access Copilot smart actions from the editor context menu or through Quick Fix actions.</p> <p>Access the smart actions by selecting a block of code, right-clicking, and choosing <strong>Copilot</strong>. The smart actions are context-aware and can help you with common tasks, such as generating documentation, fixing code, or explaining code.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-smart-action-menu.png" alt="Editor context menu with the Copilot menu group expanded" loading="lazy"></p> <p>The most powerful smart action is <code>/fix</code>. Here is a relatively simple TypeScript calculator with an error noting that "Argument of type 'string' is not assignable to parameter of type 'number'". Select the <em>sparkle</em> icon, and then choose <strong>Fix using Copilot</strong>.</p> <p><img src="/assets/docs/copilot/copilot-chat/smart-action-fix-with-copilot.png" alt="Quick fix a type mismatch error by using the Copilot smart action" loading="lazy"></p> <p>Similar to <code>/fix</code>, the <code>/doc</code> smart action is popular with users. To use <code>/doc</code>, select a block of code, right-click, and choose <strong>Copilot</strong> > <strong>Generate Docs</strong>. Copilot will generate a documentation comment for your code.</p> <p><img src="/assets/docs/copilot/copilot-chat/generate-docs-example.png" alt="Inline Chat /doc results adding JSDoc comment for a TypeScript function" loading="lazy"></p> <h2 id="_chat-participants" data-needslink="_chat-participants">Chat participants</h2> <p><em>Chat participants</em> are like experts who have a specialty that they can help you with. You can invoke a chat participant by typing '@' in the chat input field, followed by the participant name. There are several built-in chat participants:</p> <ul> <li><code>@workspace</code> has context about the code in your workspace and can help you navigate it, finding relevant files or classes.</li> <li><code>@vscode</code> knows about commands and features in the VS Code editor itself, and can help you use them.</li> <li><code>@terminal</code> has context about the integrated terminal shell and its contents.</li> <li><code>@github</code> has knowledge about your GitHub repositories, issues, pull requests, and topics, and can also perform web searches using the Bing API.</li> </ul> <p>Extensions can also contribute chat participants to provide specialized help for their domain. To find the list of available chat participants, type <code>@</code> in the chat input field.</p> <p>These are some examples of extensions in the Visual Studio Marketplace that contribute a chat participant to the Chat view in VS Code. Go to the <a href="https://marketplace.visualstudio.com/search?term=tag%3Achat-participant&target=VSCode&category=All%20categories&sortBy=Relevance" class="external-link" target="_blank">Marketplace</a> or use the integrated <a href="/docs/editor/extension-marketplace">Extensions view</a> and search for more extensions by using the <code>chat-participant</code> tag.</p> <div class="marketplace-extensions-chat"></div> <h3 id="_workspace" data-needslink="_workspace">@workspace</h3> <p>The <code>@workspace</code> chat participant knows how to gather context about the code in your workspace, can help you navigate it, find relevant classes, files, and more.</p> <p><img src="/assets/docs/copilot/copilot-chat/workspace-agent-example.png" alt="Asking the @workspace chat participant about where a URL is specified in an Express app" loading="lazy"></p> <p>Because it has all of the necessary context, <code>@workspace</code> can answer the kinds of questions that developers are much more likely to ask. For example, questions that pertain to how different parts of the code interact:</p> <ul> <li>"<code>@workspace</code> how are notifications scheduled?"</li> </ul> <p>Or questions that require knowledge of related code, dependencies, and design patterns:</p> <ul> <li>"<code>@workspace</code> add form validation, similar to the newsletter page"</li> </ul> <h3 id="_vscode" data-needslink="_vscode">@vscode</h3> <p>VS Code can be customized in so many ways that people get pleasantly surprised when they discover some hidden functionality. To help you to unlock the full power of VS Code, we created <code>@vscode</code>.</p> <p>This chat participant knows all about VS Code and can help you bridge the gap between natural language and VS Code commands and customizations. <code>@vscode</code> internally uses tools that give it access to the index of all the settings and commands and we are in the process of adding a tool so that this chat participant can also use the VS Code documentation. Now you can ask vague questions like:</p> <ul> <li>"<code>@vscode</code> the name of that thing when vscode fake opens a file? And how to disable it?"</li> <li>"<code>@vscode</code> how do I change my VS Code colors?"</li> </ul> <p><img src="/assets/docs/copilot/copilot-chat/agent-example.png" alt="Asking @vscode how to change the VS Code colors" loading="lazy"></p> <p>With the <code>/runCommand</code> <a href="#_slash-commands">slash command</a>, you can ask <code>@vscode</code> to run a command in the editor. For example, you can ask <code>@vscode /runCommand show minimap</code> to show the minimap in the editor.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-runcommand.png" alt="Toggle the minimap in the editor with the /runCommand slash command in Copilot Chat." loading="lazy"></p> <h3 id="_terminal" data-needslink="_terminal">@terminal</h3> <p>With <code>@terminal</code> you can ask questions about the integrated terminal shell, its buffer, and the current selection. In the following example, you use the Quick fix <strong>Explain using Copilot</strong> in the terminal to get information about a failed shell command.</p> <p>Notice how the prompt in the Chat view is populated with <code>@terminal #terminalLastCommand</code> to help correct the error. <code>#terminalLastCommand</code> is a chat variable, which allows you to add more context to the chat prompt. Learn more about <a href="#_chat-context">adding context to chat</a>.</p> <p><img src="/assets/docs/copilot/copilot-chat/terminal-command-explanation.png" alt="Quick Chat with @terminal #terminalLastCommand and Copilot's answer" loading="lazy"></p> <div class="markdown-alert note" dir="auto"> <span> <svg class="markdown-alert-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"> </path> </svg> Note </span><p>The terminal doesn't pull in the workspace context automatically, so questions about your workspace could take some time.</p> </div><h3 id="_github" data-needslink="_github">@github</h3> <p>With <code>@github</code> you can ask questions about your GitHub repositories and your commits, issues, pull requests, and more. The following are examples of how you can use the <code>@github</code> participant:</p> <ul> <li><code>@github What are all of the open PRs assigned to me?</code></li> <li><code>@github What are the latest issues assigned to me?</code></li> <li><code>@github When was the latest release?</code></li> </ul> <p>Get more information about the available <a href="https://docs.github.com/en/copilot/using-github-copilot/asking-github-copilot-questions-in-your-ide#currently-available-skills" class="external-link" target="_blank">GitHub skills</a> in the GitHub documentation.</p> <h3 id="_extensioncontributed-chat-participants" data-needslink="_extensioncontributed-chat-participants">Extension-contributed chat participants</h3> <p>You can install additional chat participants from either the <a href="https://marketplace.visualstudio.com/VSCode" class="external-link" target="_blank">Visual Studio Code Marketplace</a> or from the <a href="https://github.com/marketplace" class="external-link" target="_blank">GitHub Marketplace</a>.</p> <p>Chat participants contributed via a VS Code extension are <em>client-side</em> extensions that have full access to the VS Code extension API surface.</p> <p>Chat participants contributed via a GitHub App do not run on your local machine and must explicitly request access to your local editor context. After you install a GitHub App that contributes a chat participant, the first time you <code>@-mention</code> the participant in VS Code, you are asked to authorize its access to your local editor context.</p> <div class="markdown-alert note" dir="auto"> <span> <svg class="markdown-alert-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"> </path> </svg> Note </span><p>To protect your privacy, your preference for sharing editor context with chat participants from GitHub App is saved on a per-workspace basis, unless you select 'Allow for All Workspaces'.</p> </div><h2 id="_slash-commands" data-needslink="_slash-commands">Slash commands</h2> <p>Chat participants can provide shortcuts to specific functionality by using <em>slash commands</em>. These commands provide a concise and structured way to interact with chat participants and to give them instructions. You can reference slash commands in your chat prompt by typing the participant, followed by <code>/</code> and the command name.</p> <p>For example, the <code>@workspace</code> participant has a slash command <code>/new</code> to scaffold a new workspace or a new file. Typing <code>@workspace /new Node.js Express Pug TypeScript</code> in the chat input field creates a new workspace with a Node.js Express Pug TypeScript project.</p> <p>Some examples of built-in slash commands are:</p> <ul> <li><code>/clear</code>: start a new chat session</li> <li><code>/help</code>: get help about using GitHub Copilot</li> <li><code>@workspace /explain</code> (or <code>/explain</code>): explain how the selected code works</li> <li><code>@workspace /fix</code> (or <code>/fix</code>): propose a fix for the problems in the selected code</li> <li><code>@workspace /new</code> (or <code>/new</code>): scaffold code for a new workspace or new file</li> <li><code>@vscode /runCommand</code>: search or run a VS Code command</li> </ul> <p>To view the list of build-in participants and their commands, type <code>@</code> in the chat input field or select the <i class="codicon codicon-mention"></i> icon.</p> <h2 id="_improve-the-performance-of-copilot-chat" data-needslink="_improve-the-performance-of-copilot-chat">Improve the performance of Copilot Chat</h2> <p>Copilot works best when it has sufficient context to know what you're doing and what you want help with. Just as you would provide a colleague with the context when asking for help with a specific programming task, you can do the same with Copilot.</p> <p>You can help Copilot provide better answers by upvoting or downvoting responses with the thumbs up and down icons in the upper right of its response. This provides Copilot feedback on how much it helped with your scenario so that it can help you even better in the future.</p> <h3 id="_use-chat-variables" data-needslink="_use-chat-variables">Use chat variables</h3> <p>By using a chat variable in your chat prompt, you can be more specific about the context that you provide to Copilot. For example, the prompt <em>"which sorting algo is used #selection"</em> focuses the chat request on the selected code snippet.</p> <h3 id="_use-chat-participants-and-commands" data-needslink="_use-chat-participants-and-commands">Use chat participants and commands</h3> <p>Chat participants, such as <code>@workspace</code>, might have context associated within them. For example, <code>@vscode</code> is aware of VS Code settings and its APIs. When you include a chat participant in the chat prompt, you inherently add context to the prompt. Similarly, by using slash commands, you can further focus the intent of the chat request.</p> <h3 id="_conversation-history" data-needslink="_conversation-history">Conversation history</h3> <p>Copilot keeps track of the history of your conversation in the Chat view. Copilot can use this information as context in subsequent prompts, for example when you have a <a href="#_multi-turn-conversations">multi-turn conversation</a>.</p> <p>For example, when you first ask "what is the number data type in TypeScript?" and then ask "Can you use it for decimal numbers too?", Copilot knows that you're still referring to the <code>number</code> data type.</p> <p><img src="/assets/docs/copilot/copilot-chat/chat-view-history.png" alt="Chat view with multiple prompts, where Copilot understands that 'it' refers to the first prompt." loading="lazy"></p> <p>You can delete a prompt and the corresponding response from the conversation history by hovering over the prompt and selecting the <strong>x</strong> control. It might be useful to delete one or more prompts to get more relevant responses.</p> <p><img src="/assets/docs/copilot/copilot-chat/copilot-chat-delete-prompt.png" alt="Chat view with multiple prompts, highlighting the 'x' control to delete a chat prompt and response." loading="lazy"></p> <p>You can export all prompts and responses for a chat session in a JSON file with the <strong>Chat: Export Chat...</strong> command in the Command Palette.</p> <h3 id="_context-in-inline-chat" data-needslink="_context-in-inline-chat">Context in Inline Chat</h3> <p>If you're using Inline Chat, and you have code selected in the editor, Copilot scopes your question to the selection.</p> <h3 id="_ignore-files" data-needslink="_ignore-files">Ignore files</h3> <p>When you're using <code>@workspace</code> to ask questions related to your VS Code workspace, you can explicitly ignore specific files from the workspace by using a <code>.gitignore</code> file. <code>@workspace</code> respects <code>.gitignore</code> when deciding which files from the workspace to index.</p> <h2 id="_use-voice-interactions" data-needslink="_use-voice-interactions">Use voice interactions</h2> <p>With the voice control capabilities in VS Code, provided by the <a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-speech" class="external-link" target="_blank">VS Code Speech</a> extension, you can initiate a chat conversation by using your voice:</p> <ul> <li>Use your voice to dictate your chat prompt</li> <li>Use the "Hey Code" voice command to start a voice session with Copilot Chat</li> <li>Accelerate voice input for chat by using the "hold to speak" mode</li> </ul> <p>Learn more about how to <a href="/docs/editor/voice">use voice interactions in VS Code</a>.</p> <h2 id="_privacy-and-transparency" data-needslink="_privacy-and-transparency">Privacy and transparency</h2> <p>We emphasize responsible usage of AI, especially when it comes to source code. The <span class="setting"><a href="vscode://settings/inlineChat.acceptedOrDiscardBeforeSave" codesetting="true"><span class="codicon codicon-settings-gear dynamic-setting-icon" title="Open 'inlineChat.acceptedOrDiscardBeforeSave' in Settings Editor"></span></a>inlineChat.acceptedOrDiscardBeforeSave</span> setting, which is enabled by default, asks you for confirmation before saving code that was generated by Copilot.</p> <p>When the setting is enabled, a file save operation waits for you to accept or discard any pending Inline Chat session. This also applies when Auto Save is enabled, which will be temporarily disabled until Inline Chat has ended.</p> <p><img src="/assets/docs/copilot/copilot-chat/inline-chat-save-consent.png" alt="Inline Chat save consent message." loading="lazy"></p> <p>To enable more workspace search features for private repositories, we require additional permissions. If we detect that we don't have these permissions already, we will ask for them at startup. Once granted, we'll securely store the session for the future.</p> <p><img src="/assets/docs/copilot/copilot-chat/authentication.png" alt="Modal window asking for additional authentication for a private repository." loading="lazy"></p> <p>Learn more about security, privacy, and transparency in the <a href="https://resources.github.com/copilot-trust-center/" class="external-link" target="_blank">GitHub Copilot Trust Center</a>.</p> <h2 id="_frequently-asked-questions" data-needslink="_frequently-asked-questions">Frequently asked questions</h2> <h3 id="_how-do-i-choose-between-inline-chat-chat-view-and-quick-chat" data-needslink="_how-do-i-choose-between-inline-chat-chat-view-and-quick-chat">How do I choose between Inline Chat, Chat view, and Quick Chat?</h3> <p>The following table provides a comparison of the capabilities of each interface.</p> <table class="table table-striped"> <thead> <tr> <th>Capability</th> <th style="text-align:center">Chat view</th> <th style="text-align:center">Inline Chat</th> <th style="text-align:center">Quick Chat</th> </tr> </thead> <tbody> <tr> <td>Ask general technology questions</td> <td style="text-align:center">✅</td> <td style="text-align:center">✅</td> <td style="text-align:center">✅</td> </tr> <tr> <td>Receive code suggestions</td> <td style="text-align:center">✅</td> <td style="text-align:center">✅</td> <td style="text-align:center">✅</td> </tr> <tr> <td>View code suggestions in the editor</td> <td style="text-align:center"></td> <td style="text-align:center">✅</td> <td style="text-align:center"></td> </tr> <tr> <td>Code suggestions for multiple files</td> <td style="text-align:center">✅</td> <td style="text-align:center"></td> <td style="text-align:center">✅</td> </tr> <tr> <td>Generate a new project</td> <td style="text-align:center">✅</td> <td style="text-align:center"></td> <td style="text-align:center">✅</td> </tr> <tr> <td>Attach context</td> <td style="text-align:center">✅</td> <td style="text-align:center">✅</td> <td style="text-align:center">✅</td> </tr> <tr> <td>Use chat participants</td> <td style="text-align:center">✅</td> <td style="text-align:center"></td> <td style="text-align:center">✅</td> </tr> <tr> <td>Use commands</td> <td style="text-align:center">✅</td> <td style="text-align:center">✅*</td> <td style="text-align:center">✅</td> </tr> <tr> <td>Chat history</td> <td style="text-align:center">✅</td> <td style="text-align:center"></td> <td style="text-align:center"></td> </tr> </tbody> </table> <p>* <em>only a limited set of commands is available in Inline Chat</em></p> <h2 id="_additional-resources" data-needslink="_additional-resources">Additional resources</h2> <p>You can read more about <a href="https://github.com/features/copilot" class="external-link" target="_blank">GitHub Copilot</a> and how to use it in VS Code in the <a href="https://docs.github.com/copilot/getting-started-with-github-copilot?tool=vscode" class="external-link" target="_blank">GitHub Copilot documentation</a>.</p> <p>Or check out the <a href="https://www.youtube.com/playlist?list=PLj6YeMhvp2S5_hvBl2SE-7YCHYlLQ0bPt" class="external-link" target="_blank">VS Code Copilot Series</a> on YouTube, where you can find more introductory content and programming-specific videos for using Copilot with <a href="https://www.youtube.com/watch?v=DSHfHT5qnGc" class="external-link" target="_blank">Python</a>, <a href="https://www.youtube.com/watch?v=VsUQlSyQn1E" class="external-link" target="_blank">C#</a>, <a href="https://www.youtube.com/watch?v=zhCB95cE0HY" class="external-link" target="_blank">Java</a>, <a href="https://www.youtube.com/watch?v=EwtRzAFiXEM" class="external-link" target="_blank">PowerShell</a>, <a href="https://www.youtube.com/watch?v=ZfT2CXY5-Dc" class="external-link" target="_blank">C++</a>, and more.</p> <h2 id="_next-step" data-needslink="_next-step">Next step</h2> <p>Get started with the introductory <a href="/docs/copilot/getting-started-chat">Copilot Chat tutorial</a>.</p> <div class="feedback"></div> <div class="body-footer">10/29/2024</div> </main> <!-- medium right nav --> <div class="col-sm-3 col-md-2 hidden-xs docs-subnavbar-container"> <nav id="docs-subnavbar" aria-label="On Page" data-spy="affix" data-offset-top="20"> <h4><span class="sr-only">In this article there are 18 sections</span><span aria-hidden="true">In this article</span></h4> <ul class="nav"> <li><a href="#_copilot-chat-use-cases">Copilot Chat use cases</a></li> <li><a href="#_prerequisites">Prerequisites</a></li> <li><a href="#_getting-started">Getting started</a></li> <li><a href="#_changing-your-ai-model">Changing your AI model</a></li> <li><a href="#_inline-chat">Inline Chat</a></li> <li><a href="#_chat-view">Chat view</a></li> <li><a href="#_quick-chat">Quick Chat</a></li> <li><a href="#_multiturn-conversations">Multi-turn conversations</a></li> <li><a href="#_terminal-inline-chat">Terminal Inline Chat</a></li> <li><a href="#_chat-smart-actions">Chat smart actions</a></li> <li><a href="#_chat-participants">Chat participants</a></li> <li><a href="#_slash-commands">Slash commands</a></li> <li><a href="#_improve-the-performance-of-copilot-chat">Improve the performance of Copilot Chat</a></li> <li><a href="#_use-voice-interactions">Use voice interactions</a></li> <li><a href="#_privacy-and-transparency">Privacy and transparency</a></li> <li><a href="#_frequently-asked-questions">Frequently asked questions</a></li> <li><a href="#_additional-resources">Additional resources</a></li> <li><a href="#_next-step">Next step</a></li> </ul> <div class="connect-widget"></div> </nav> </div> <!-- end of page connect widget --> <div class="col-xs-12 visible-xs"> <div class="connect-widget"></div> </div> </div> </div> </div> </div> <footer role="contentinfo" class="container"> <div class="footer-container"> <div class="footer-row"> <div class="footer-social"> <ul class="links"> <li> <a href="https://go.microsoft.com/fwlink/?LinkID=533687"><img src="/assets/icons/x-icon.svg" class="x-icon" alt="Follow us on X"></a> </li> <li> <a href="https://github.com/microsoft/vscode"><img src="/assets/icons/github-icon.svg" alt="VS Code on Github"></a> </li> <li> <a href="https://www.youtube.com/@code"><img src="/assets/icons/youtube-icon.svg" alt="VS Code on YouTube"></a> </li> <script> function manageConsent() { if (siteConsent && siteConsent.isConsentRequired) { siteConsent.manageConsent(); } } </script> </ul> <a id="footer-microsoft-link" class="microsoft-logo" href="https://www.microsoft.com"> <img src="/assets/icons/microsoft.svg" alt="Microsoft homepage" /> </a> </div> </div> <div class="footer-row"> <ul class="links"> <li><a id="footer-support-link" href="https://support.serviceshub.microsoft.com/supportforbusiness/create?sapId=d66407ed-3967-b000-4cfb-2c318cad363d" target="_blank" rel="noopener">Support</a></li> <li><a id="footer-privacy-link" href="https://go.microsoft.com/fwlink/?LinkId=521839" target="_blank" rel="noopener">Privacy</a></li> <li style="display: none;"><a id="footer-cookie-link" style="cursor: pointer;" onclick="manageConsent()" target="_blank" rel="noopener">Manage Cookies</a></li> <li><a id="footer-terms-link" href="https://www.microsoft.com/legal/terms-of-use" target="_blank" rel="noopener">Terms of Use</a></li> <li><a id="footer-license-link" href="/License" target="_blank" rel="noopener">License</a></li> </ul> </div> </div> </footer> <script src="/dist/index.js"></script> <script type="application/ld+json"> { "@context" : "http://schema.org", "@type" : "SoftwareApplication", "name" : "Visual Studio Code", "softwareVersion": "1.95", "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }, "applicationCategory": "DeveloperApplication", "applicationSubCategory": "Text Editor", "alternateName": "VS Code", "datePublished": "2021-11-03", "operatingSystem": "Mac, Linux, Windows", "logo": "https://code.visualstudio.com/assets/apple-touch-icon.png", "screenshot": "https://code.visualstudio.com/assets/home/home-screenshot-win.png", "releaseNotes": "https://code.visualstudio.com/updates", "downloadUrl": "https://code.visualstudio.com/download", "license": "https://code.visualstudio.com/license", "softwareRequirements": "https://code.visualstudio.com/docs/supporting/requirements", "url" : "https://code.visualstudio.com", "author": { "@type": "Organization", "name": "Microsoft" }, "publisher": { "@type": "Organization", "name": "Microsoft" }, "maintainer": { "@type": "Organization", "name": "Microsoft" }, "potentialAction": { "@type": "SearchAction", "target": "https://code.visualstudio.com/Search?q={search_term_string}", "query-input": "required name=search_term_string" }, "sameAs" : [ "https://en.wikipedia.org/wiki/Visual_Studio_Code", "https://twitter.com/code", "https://www.youtube.com/code", "https://www.tiktok.com/@vscode", "https://github.com/microsoft/vscode" ] } </script> </body> </html>