Visual Studio Code ( VS Code )
Free. Open source. Runs everywhere.
Code focused development. Redefined.
Code, Build & Debug modern Web & Cloud applications.
VS Code combines the simplicity of a code editor with what developers need for the core code-build-debug cycle.
Code is Free and available on your favorite platform
It just opens in your browser or is very quick to install locally and packed full of features to allow you to work on your code anywhere. You can also use Extensions to add extra features.
VSCode for the Web is available at vscode.dev, github.dev or GitHub Codespaces.
The core editor is Monaco Editor packaged in the electron atom shell, formerly known as Atom Shell and made by GitHub.
The Monaco Editor is also widely used across Microsoft products like Visual Studio Team Services, TypeScript Playground, OneDrive, App Service Editor, IE11 F12 tools, plus many more places.
Microsoft evolution of VS Code began many years ago, todays product is one of the largest TypeScript code bases at more than 350k lines of TypeScript.
Both Monaco Editor & Visual Studio Code are Open Source available on GitHub.
The Integrated terminal is a great feature, really helpful.
Visual Studio Code 1.84 - Release
Yet again another excellent release by the VS Code team, packed with new features, now including:
- More audio cues - New audio cues to indicate clear, save, and format activity.
- Activity bar position - Move Activity bar to the top for compact display.
- Hide editor tabs - Show multiple, single, or no editor tabs.
- Maximize Editor Groups - Quickly expand the active Editor Group.
- Python improvements - Better run code in terminal, easier virtual environment creation.
- FastAPI tutorial - Learn about developing Python FastAPI apps with VS Code.
- Gradle for Java - Improved support for Java Gradle projects.
- Preview: GitHub Copilot - Chat "agents", generate commit messages, terminal support.
VS Code now ships with TypeScript 5.2.2
You can also try the next TypeScript features today by installing the TypeScript Nightly extension.
Plus so much more, make sure you read the Release Notes, loads of great information within them.
Documentation
Getting started with VS Code focusing on ways to make getting started with the editor easier.
A new "Learn to Code" landing page on the website with coding packs and new content geared towards folks who are new to coding.
Also a new student-friendly videos and resources on the site at code.visualstudio.com/learn
TypeScript Editing and Refactoring in VS Code.
Remote Repositories Blog Post
New Remote Development resources - Check out the new video and Learn module.
- Remote Development tutorials - Learn to develop over SSH, inside Containers, and in WSL.
- Docker Compose - Microsoft Docker extension can help you add Docker Compose files to your projects to work easily with multiple Docker containers
- GitHub - With the expanded GitHub integration, there is a new Working with GitHub topic that shows how you can use GitHub from within VS Code.
- New Remote Container topics - Learn how to attach to a container and create a new dev container.
- Updated "Create a Dev Container" tutorial - Get started with Development Containers. - Learn how to attach to a container and create a new dev container.
- Create a development container using Visual Studio Code Remote Development
- VS Code on Raspberry Pi - New topic explaining how to install VS Code on Raspberry Pi devices.
- Data Science tutorials - Learn about Jupyter Notebooks, PyTorch, and more.
- Web extension authors guide - Learn how to update your extension for VS Code in the browser. More about GitHub.dev
- New C# in VS Code documentation - Learn about C# development with the C# Dev Kit extension. C# topics.
New Beginner's Series to: Dev Containers, a set of eight videos that show you how to get, create, and configure a container-based development environment using VS Code Remote - Containers
Find out more at Visual Studio Code Update or Download.
Remote Development
A preview release of the Remote Development extensions has been released.
A new set of extensions that enable you to open any folder in a container, on a remote machine, or in the Windows Subsystem for Linux (WSL) and take advantage of VS Code's full feature set.
These extensions let you work with VS Code over SSH on a remote machine or VM, in Windows Subsystem for Linux (WSL), or inside a Docker container. You can read the Remote Development with Visual Studio Code blog post to learn more.
Visual Studio Codespaces - Create and connect to cloud-based development environments formerly Visual Studio Online.
The Visual Studio Codespaces preview, announced at Ignite 2019, allows you to create development environments in the cloud and connect to them with Visual Studio Code, a browser-based editor, or Visual Studio IDE.
Visual Studio Codespaces extension
You can learn more at Developing with Visual Studio Codespaces and get started creating and customizing a development environment with the Visual Studio Codespaces Quickstarts.GitHub Codespaces
Codespaces are also available on GitHub. Take a read of the Codespaces feature page for more information on getting started with a full Visual Studio Code experience without leaving GitHub.
We have started to put together information and links on our Codespaces page.
Some of the key features from earlier releases are:
- Accessibility improvements - Screen reader support for the pull request comments.
- Better Command Palette search - New "similar commands" list to help command discovery.
- Add custom icons to profiles - Display an icon to easily identify the active profile.
- Compact editor tab height - Shrinks editor tab height for larger editor region.
- Dedicated pinned editor row - New editor tab row supports pin/unpin via drag and drop.
- Go to Symbol in notebooks - Quickly navigate to code symbols in your notebook.
- Python debugger updates - Configure whether to step into system/library or just your code.
- Preview: GitHub Copilot - Test generation based on current framework and project conventions.
- Accessibility improvements - Accessible View support for inline completions, updated keybindings.
- Built-in port forwarding - Forward local server ports from within VS Code.
- Sticky Scroll updates - Scrolls horizontally with editor, display last line in scope, folding UI.
- New diff editor features - Detect moved code, dynamically switch inline and side-by-side view.
- Command Center displayed by default - Quickly open files or run commands from the title bar.
- Copy Notebook output - Easily copy cell output as well as generated images.
- WebAssembly debugging - Decompile WASM code to step through and set breakpoints.
- New TypeScript refactorings - Move to File and Inline Variables refactorings.
- New Python Formatting topic - Learn how to integrate formatters such as autopep8 and Black.
- Preview: GitHub Copilot - CreateWorkspace command previews file structure of proposed code.
- Accessibility improvements - Accessible View support for notifications, chat responses, and hovers.
- VS Code Profiles - Finer control with partial profiles and "Apply to all profiles" options.
- New diff editor features - Collapse unchanged regions, better diff region text alignment.
- Git repositories with symlinks - Support for repository paths with symbolic links.
- Notebook updates - Search text in closed notebooks, "sticky scroll" displays Markdown headers.
- Python test discovery - Error tolerant pytest discovery continues across all files.
- Access Jupyter servers in GitHub Codespaces - Connect to a remote Jupyter server in a codespace.
- GitHub pull request creation - Better base branch detection, remember previous create PR options.
- Preview: GitHub Copilot UX - Quick Chat improvements, iterative /fix command.
- Accessibility improvements - Accessible View for better screen reader support, Copilot audio cues.
- Better editor group and tab resizing - Set min tab size, avoid unnecessary editor group resizing.
- Skip subwords when expanding selection - Control whether to use camel case for selection.
- Terminal image support - Display images directly in the integrated terminal.
- Python extensions for mypy and debugpy - For Python type checking and debugging in VS Code.
- Remote connections to WSL - Connect to WSL instances on remote machines using Tunnels.
- Preview: GitHub Copilot create workspace/notebook - Quickly scaffold projects and notebooks.
- New C# in VS Code documentation - Learn about C# development with the C# Dev Kit extension. C# topics.
- Read-only mode - Mark specific files and folders in your workspace as read-only.
- 'Paste as' options - Choose how you'd like item links pasted into the editor.
- Automatic copy of external files - Drag or paste to Markdown adds new files to your workspace.
- Default Git repo branch name - Use "main" as the default or override via a user setting.
- Notebooks rich content search - Search based on Notebook output or filter on cell type.
- Linked editing for JSX tags - Simultaneously change opening and closing JSX tags.
- Preview: GitHub Copilot Chat improvements - Easily manage your chat session history. Inline chat "live preview."
- Accessibility improvements - Better screen reader support, new audio cues.
- New color themes - "Modern" light and dark color theme defaults.
- Profile templates - Built-in templates for Python, Java, Data Science, and more.
- Drag and drop selector - Choose how you'd like item links placed into the editor.
- Standalone color picker - Color picker UI to insert or modify color formats.
- Quick Fixes for Source Control input - Fix spelling and other errors right in the input box.
- Markdown drag and drop videos - Easily add video tags in Markdown files.
- Notebooks insert images as attachments - Choose between an image link, path, or attachment.
- Git LFS and VS Code for the Web - Use vscode.dev for repos with Git Large File Storage.
- Accessibility improvements - New keyboard shortcuts for hovers, notifications, and Sticky Scroll.
- Copy GitHub deep links - Create permalinks and HEAD links from within the editor.
- Notebook Format on Save - Automatically format notebooks cells on save.
- TS/JS switch case completions - Quickly fill in TypeScript/JavaScript switch statements.
- Python move symbol refactoring - Move Python symbols to an existing or new file.
- Remote Tunnels update - Reuse existing tunnel and quickly transition from remote to desktop.
- Ruby documentation - Learn about Ruby language support for VS Code.
- Preview: expanded GitHub Copilot integration - New inline chat and full AI chat view.
- Profiles - Active profile badge, quickly switch profiles via the Command Palette.
- Accessibility improvements - New audio cues, improved terminal screen reader mode.
- Moveable Explorer view - Place the Explorer in the secondary side bar or a panel.
- Notebook kernel MRU list - Find and select recently used notebook kernels.
- Markdown header link suggestions - Easily link to headers in files across your workspace.
- Remote Development usability - New keyboard shortcut, streamlined remote options list.
- New Git/GitHub topics - Articles for beginner and advanced Git source control users.
- Improved Marketplace search - Better results for multi-word queries.
- Jupyter IPyWidgets 8 support - Use the latest IPyWidgets version in your Jupyter notebooks.
- Python pytest IntelliSense - Completions for pytest fixtures and parameterized arguments
- Profiles - Create and share profiles to configure extensions, settings, shortcuts, and more.
- VS Marketplace signing - Published extensions now code signed by default.
- Accessibility improvements/ - Terminal screen reader mode, new keyboard shortcuts.
- Easier multi-view resizing - Drag layout corners to resize multiple views at once.
- Tree view search history - Quickly rerun previous searches in tree views.
- Better Terminal link detection - Detect links containing spaces, brackets, line and column formats.
- New Git commands - Stash staged changes and delete remote tags from within VS Code.
- Dark+ and Light+ V2 themes - Try the experimental color themes and let us know what you think.
- Jupyter Notebook topics - Using notebooks on the web, how to manage Jupyter kernels.
- AI Tools in VS Code - Learn about AI-powered completions with GitHub Copilot.
- Customize Explorer auto reveal - Decide which files scroll into view in the Explorer.
- Hide Activity bar and Panel badges - Simplify the editor UI by toggling state badges.
- Audio cues for notebooks and diff view - Sounds for cell run results, added or removed lines.
- Merge editor Undo/Redo - Quickly revert or reapply merge conflict actions.
- Manage unsafe repositories - Prevent Git operations on folders not owned by you.
- JavaScript console.profile collection - Easily create CPU profiles for viewing in VS Code.
- Go to Definition from return - Jump to the top of JavaScript/TypeScript functions.
- Remote Tunnels - Remote Tunnels - Create a connection to any machine, without needing SSH. - Remote Tunnels Docs - Remote Development Even Better
- Jupyter notebook "Just My Code" debugging- Avoid stepping into Python library code.
- Dev Container GPU support - Request a GPU when creating a Dev Container.
- Search include/exclude folders - Quickly set folders to include/exclude in the tree view.
- Command Center mode shortcuts - Displays commonly used modes before recent files list.
- Merge editor improvements - Access Combination option to auto merge conflicts.
- Markdown automatic link updates - File and image links updated on rename/move.
- More audio cues - Task completed or failed, Terminal Quick Fix available.
- vscode.dev protected branch workflow - Create new branch when committing to protected branch.
- New Python extensions - New standalone extensions for isort, Pylint, and Flake8.
- Dev Container Templates - Create new Dev Containers based on existing templates.
- Tool bar customization - Hide/show tool bar actions.
- Better editor autoscrolling - Scrolling speed tuned to cursor location.
- Extensions view updates - Highlights extensions with updates or needing attention.
- Search results in a tree view - Review search results in either list or tree view.
- Nested Git repo support - Detects and displays nested Git submodules.
- Terminal Quick Fixes - Suggestions to correct command typos and set an upstream remote.
- Pin frequently used tasks - Pin tasks to the top of the Run Task dropdown for quick access.
- Markdown link validation - Automatically check header, file, and image links.
- GitHub Enterprise Server authentication - Improved login workflow no longer requires PAT.
- Dev Containers Features - Easily add and share functionality for development containers.
- VS Code Community Discussions - Connect with other VS Code extension authors.
- Merge editor improvements - Easier transition between text and merge editors.
- Expanded codecs support - To help display embedded audio and video in notebooks and webviews.
- File rename selection - Pressing F2 selects filename, whole name, or file extension.
- New Code Action UI - Quickly find the Code Action you're looking for.
- Terminal updates - Shell integration for fish and Git Bash, new smooth scrolling.
- Jupyter notebook image pasting - Paste and preview image files in notebook Markdown cells.
- TypeScript livestreams - Watch TS "Crash Course" or "Tips and Tricks" on YouTube.
- Live Preview extension - Live Preview now supports multi-root web projects.
- Markdown Language Server - Learn how Markdown support moved to a Language Server blog post.
- Title bar customization - Hide/show menu bar, Command Center, or layout control.
- Fold selection - Create your own folded regions in the editor.
- Search multi-select - Select and then act on multiple search results.
- Tree view search and filtering - Find and filter in tree views such as the Find Explorer.
- Terminal improvements - Shell integration on by default, extended PowerShell keybindings.
- Command line option --merge - Use the 3-way merge editor as your default merge tool.
- Notebooks: Go to Most Recently Failed Cell - Jump directly to notebook errors.
- Python Get started experience - Quickly install and configure Python within VS Code.
- Sticky scroll preview - New scrolling UI shows current source code scope.
- Dev container CLI topic - Learn about the updated development container CLI.
- 3-way merge editor - Resolve merge conflicts within VS Code.
- Command Center - New UI to search files, run commands, and navigate cursor history.
- Do Not Disturb mode - Silence non-critical notification popups.
- Toggle Light/Dark themes - Quickly switch between preferred light and dark themes.
- Terminal shell integration - Display command status, run recent commands, and more.
- Task output decorations - Highlights task success or failure exit codes.
- Git Commit action button - Configure your default Git Commit action.
- Debug Step Into Target support - Allows you to step directly into functions when paused.
- JavaScript sourcemap toggling - Switch to debugging compiled rather than source code.
- Color theme tester - Use vscode.dev to preview color themes.
You can find earlier released key features on our key feature archive page.
VS Code also has some great documentation, some of the interesting topics covered are: https://github.com/Microsoft/vscode-recipes and Deploying Applications to Azure

GitHub Codespaces
Visual Studio Code in the Browser, plus so much more. We have started a page to collect information and links about Codespaces and GitHub.dev
VS Code for the Web is available at vscode.dev which supports Azure DevOps / Azure Repos.
Visual Studio Code Links
- Visual Studio Code
- Visual Studio Code Blog
- Visual Studio Code Blog (Old)
- Visual Studio Code - Keyboard Shortcuts
- marketplace.visualstudio.com/#VSCode
- Visual Studio Code and local web server
- Collection of helpful tips and tricks for VS Code.
- Visual Studio Code Can Do That?
- Visual Studio Code Can Do That? - Smashing Magazine
- A really good presentation by Alexandru Dima a Visual Studio Code team member covering the history behind Visual Studio Code's story on the steps from the start to todays shipping product. He also builds a snake game in @code as a live demo from jsDay 2016.
- The History of Visual Studio Code - Learn about how VS Code started and evolved until today from Erich Gamma at Build 2020.
- VS Code Day 2021 Videos
- VS Code Community Discussions
- VS Code Day 2023 Playlist
- Develop from anywhere with Visual Studio Code
References
- Monaco Editor the code editor that powers VS Code.
- Electron - Build cross platform desktop apps.
- TypeScript - JavaScript that scales.
- Typings - The TypeScript Definition Manager.
- Typings for NPM Packages
- DefinitelyTyped.org
- Why TypeScript is Hot Now, and Looking Forward - Treehouse Blog.
- Getting Started with TypeScript - Treehouse Blog.
- Brackets extensions - Use Brackets keyboard shortcuts in VS Code.
- Troubleshooting extensions blog post - Learn to troubleshoot extensions using extension bisect.
- Case study of a Computer Science lecturer at Naresuan University in Thailand who uses VS Code
Docs & Books
- http://code.visualstudio.com/Docs
- eBook: Visual Studio Code - Tips & Tricks Vol. 1
- Collection of helpful tips and tricks for VS Code.
- Release notes
Extensions you should really check out
- Thinking in Code By Jonathan Carter. A Collection of extensions to enable a richer environment for thinking and learning about code.
- Thinking in Data By Paige Bailey. A VS Code extension pack to help users visualize, understand, and interact with data.
- GitHub Codespaces By GitHub. Your instant dev environment connect to Codespaces from Visual Studio Code
- Remote - Containers By Microsoft. Open any folder or repository inside a Docker container and take advantage of Visual Studio Code's full feature set.
- Remote - SSH By Microsoft. Open any folder on a remote machine using SSH and take advantage of VS Code's full feature set.
- Remote - SSH: Editing Configuration Files By Microsoft. Edit SSH configuration files.
- Remote - WSL By Microsoft. Open any folder in the Windows Subsystem for Linux (WSL) and take advantage of Visual Studio Code's full feature set.
- Remote Development By Microsoft. An extension pack that lets you open any folder in a container, on a remote machine, or in WSL and take advantage of VS Code's full feature set.
- vscode-icons By VSCode Icons Team. Icons for Visual Studio Code
- Python By Microsoft. IntelliSense (Pylance), Linting, Debugging (multi-threaded, remote), Jupyter Notebooks, code formatting, refactoring, unit tests, and more.
- Pylance By Microsoft. A performant, feature-rich language server for Python in VS Code
- Jupyter By Microsoft. Jupyter notebook support, interactive programming and computing that supports Intellisense, debugging and more.
Insiders Build
Be sure to check out the Insiders Build which can be run alongside the stable version of VS Code but allows you to test out the new features ahead of time, before they land in the stable release.
Visual Studio Code 1.0
Released on 14 April 2016
Its hard to believe that VS Code has been with us for such a short time, with each release growing in features & functions.
The code team have relased a great blog post covering the journey to version 1. Read about the journey to version 1.0
Visual Studio Code on the Visual Studio Marketplace
Visual Studio Code now offers support for extensions and themes! With hundreds available at https://marketplace.visualstudio.com/#VSCode
A great write up to using an extension in VS Code is from Rey Bango (@reybango), Adding ESLint to the Microsoft VS Code Editor http://blog.reybango.com/2015/12/17/adding-eslint-to-the-microsoft-vs-code-editor/
We also plan to cover:
- Working with Gulp
- Working with tasks
- Deployment
- Working with Remote files
- Plus much more.