Agent Skills in Claude Code and Visual Studio Code: Setup, Benefits, Risks, and a Step-by-Step Example
Many modern development tools assume that you are working in a Linux or Unix-style environment. Their installation guides may use commands such as ls, cd, mkdir, and sudo, even when the reader is using a Windows computer.
Windows Subsystem for Linux, usually called WSL, helps bridge that gap. It allows you to run a Linux environment alongside Windows without replacing Windows or setting up a traditional virtual machine manually.
For vibe coding, WSL can be especially useful when working with terminal-based tools, package managers, web development frameworks, deployment scripts, and coding agents designed around Linux-style workflows.
This guide explains what WSL does, when it is useful, how to install it, and how to verify that your Linux environment is ready.
Version note: Windows requirements, installation screens, and WSL commands can change. Before publishing or following this guide in a production environment, compare the version-sensitive steps with the current official Microsoft WSL documentation.
By the end of this guide, you should be able to:
This article focuses on installing and verifying WSL. Connecting WSL to Visual Studio Code will be covered in the next guide.
WSL gives Windows users access to a Linux environment from the same computer.
You continue using Windows normally. Your browser, desktop applications, documents, and Windows settings remain available. WSL adds a Linux terminal and Linux file system that can run alongside them.
This is different from replacing Windows with Linux.
It is also different from opening a Linux website or using a remote server. The Linux environment runs locally on your Windows computer.
A simplified view looks like this:
Windows
├── Browser
├── Visual Studio Code
├── Windows applications
└── WSL
├── Linux terminal
├── Linux home directory
├── Linux commands
└── Development toolsWSL supports Linux distributions such as Ubuntu and others made available through Microsoft’s supported installation channels.
A Linux distribution provides the user-space tools, package manager, shell, and file structure you interact with. In this series, Ubuntu is a practical beginner choice because it is widely documented and commonly used in development tutorials.
You can write code on Windows without WSL. PowerShell, the Windows command prompt, and native Windows development tools are sufficient for many projects.
WSL becomes useful when your development workflow depends on tools or instructions written for Linux.
Examples include:
A major advantage is consistency.
Suppose you build a web application on Windows but deploy it to a Linux server. Differences in file paths, command syntax, permissions, and shell behavior can create problems. Working inside WSL can reduce some of those differences because your local development environment is already Linux-based.
That does not mean WSL makes every environment identical. Production servers still have their own configuration, security rules, software versions, and deployment requirements. WSL simply gives you a more Linux-compatible local workflow.
WSL is not mandatory for every Windows developer.
You may not need it when:
The goal is not to install WSL because other developers use it. The goal is to choose an environment that matches the tools and projects you plan to use.
For this series, WSL provides a consistent environment for terminal-based development and later Claude Code exercises.
Before installing WSL, confirm that you are using a currently supported edition of Windows 10 or Windows 11.
You can check your Windows version by pressing the Windows key, typing:
winverThen open the result.
A small window should display your Windows edition, version, and operating system build.
The simplified wsl --install workflow has historically required a sufficiently recent Windows 10 build or Windows 11. Because Microsoft may update these requirements, verify the current minimum version in the official WSL installation documentation before publication.
You should also install pending Windows updates before setting up WSL. System updates may include components required by virtualization and WSL.
WSL 2 uses virtualization technology.
To check its status:
If virtualization is shown as enabled, you can continue.
If it is disabled, the setting may need to be enabled in your computer’s BIOS or UEFI firmware. The exact process depends on the device manufacturer.
Do not change unfamiliar firmware settings at random. Look for documentation specific to your computer model or motherboard.
On a work-managed computer, virtualization or WSL may be controlled by an administrator. In that case, contact the appropriate IT team rather than trying to bypass organizational restrictions.
The standard installation process begins in Windows PowerShell with administrator privileges.
The title bar should indicate that the window has administrative privileges.
Run the following command:
wsl --installThis command asks Windows to install the WSL components and a default Linux distribution when supported by the current installation method.
The command may:
Read the output rather than closing the window immediately.
If Windows asks for a restart, save your work in other applications and restart the computer.
The initial setup can enable operating-system features. Standard user permissions are not always sufficient for that task.
After WSL is installed, you normally do not need an elevated PowerShell window every time you open your Linux environment.
Using administrator privileges only when required is a good security habit. A terminal with elevated permissions can make system-level changes, so commands should be reviewed before execution.
The default wsl --install command may install Ubuntu automatically, depending on the current Windows and WSL behavior.
To see the distributions currently available for online installation, use:
wsl --list --onlineA successful result should display a list of distribution names recognized by WSL.
To install a specific distribution, the current syntax generally follows this pattern:
wsl --install -d UbuntuThe exact distribution names shown by wsl --list --online should be used rather than guessed.
For a beginner following this series, Ubuntu is a reasonable choice because:
You do not need multiple Linux distributions for the beginner workflow. Installing several distributions at once can make it harder to remember where files and tools were configured.
Start with one distribution and add another only when a project gives you a clear reason.
After installation and any required restart, open the installed Linux distribution from the Windows Start menu.
The first launch may take longer than later launches because the distribution needs to complete its initial setup.
You should eventually be asked to create:
These credentials belong to the Linux environment. They do not have to match your Windows username or password.
Use a simple username containing lowercase letters and, when needed, numbers.
For example:
alexAvoid spaces and complicated punctuation.
This username becomes part of your Linux home-directory path, which may look like:
/home/alexWhen the terminal asks for a password, type it and press Enter.
Linux terminals commonly do not display dots, asterisks, or other characters while you type a password. The screen may appear unchanged even though the password is being entered.
This behavior is normal.
Choose a password you can remember, because it may be requested when using administrative commands inside Linux.
The Linux password is used with tools such as sudo, which allows an approved command to run with elevated Linux privileges.
Do not confuse the Linux sudo password with:
After the Linux terminal opens, look at the prompt.
It may contain your Linux username and computer name, followed by a symbol such as $.
Run:
pwdThis prints the current working directory.
On a new installation, the result will usually be your Linux home directory:
/home/your-usernameNext, run:
uname -aThis displays information about the Linux kernel and environment.
The exact output differs by WSL version and system, but it should confirm that you are inside a Linux environment.
You can also list the files in the current directory:
lsA new home directory may contain only a few items or appear empty.
Return to a regular Windows PowerShell window and run:
wsl --statusThis should display general WSL configuration information when the command is supported by the installed version.
Then run:
wsl --list --verboseThe shorter equivalent is commonly:
wsl -l -vThis command lists installed distributions and normally shows:
For the workflow in this series, WSL 2 is generally the preferred version because it provides broader Linux compatibility than the original architecture.
If your installed distribution is shown as version 2, the main installation is complete.
WSL itself and the Linux distribution contain separate components.
From Windows PowerShell, the following command can update the WSL package when supported:
wsl --updateRead the output to confirm whether an update was installed or whether WSL was already current.
Inside Ubuntu, update the package index with:
sudo apt updateYou may be asked for the Linux password you created earlier.
This command refreshes information about the software packages available from the configured Ubuntu repositories. It does not necessarily upgrade every installed package.
A successful command ends without a fatal error and displays package repository information.
To install currently available package upgrades, Ubuntu users commonly run:
sudo apt upgradeRead the proposed changes before confirming.
For a brand-new environment, updating the package list is a useful first step. In professional or production environments, package upgrades should be planned because newer versions can affect existing applications.
Windows and WSL can access each other’s files, but they use different path formats.
A Windows path may look like:
C:\Users\Alex\DocumentsInside WSL, the same Windows drive is commonly available under a mount path such as:
/mnt/c/Users/Alex/DocumentsThe Linux home directory is different:
/home/alexFor tools running primarily inside WSL, keeping project files inside the Linux file system is often the more consistent approach.
For example:
/home/alex/projectsThis can reduce performance and file-watching issues that sometimes occur when Linux tools repeatedly access files stored on a mounted Windows drive.
The next article will establish a clear folder strategy and show how to open a WSL project in VS Code.
For now, do not move important projects between file systems without understanding the paths. Create a small test folder inside your Linux home directory instead.
Run:
mkdir -p ~/projectsThis command creates a projects directory inside your Linux home folder.
The -p option tells mkdir to create the required directory structure without failing if the directory already exists.
Move into it:
cd ~/projectsConfirm your location:
pwdThe result should look similar to:
/home/your-username/projectsThis folder will be useful in the next guide.
The following commands are run from Windows PowerShell, not from inside the Linux terminal.
wsl --list --verboseUse this to confirm which distributions are installed and whether they use WSL 1 or WSL 2.
wsl --shutdownThis stops all running WSL environments.
It can be useful after configuration changes or when troubleshooting a WSL process that is no longer responding.
Do not use it while an important command, database, development server, or file operation is still running inside WSL.
wslThis opens the default installed Linux distribution in the current terminal window.
Use the exact name displayed by the list command:
wsl -d UbuntuThis is useful when more than one distribution is installed.
Beginners should avoid commands that unregister or delete a distribution unless they fully understand the consequences. Removing a distribution can delete its Linux files and installed tools.
wsl Command Is Not RecognizedIf PowerShell reports that wsl is not recognized, check:
Restart Windows after installing pending updates and check the current official manual installation instructions if the simplified command is not supported.
This is expected when Windows enables required system features.
Save open work, restart the computer, and then open the Linux distribution again.
WSL 2 may fail when hardware virtualization is disabled.
Check Task Manager and your device documentation. On organization-managed hardware, ask the administrator responsible for the device.
Do not download unofficial utilities that claim to modify firmware settings automatically.
Open the distribution again from the Start menu and watch for an error message.
Also check the installed state from PowerShell:
wsl --list --verboseIf the distribution is partially installed, compare the error with the current Microsoft troubleshooting documentation before reinstalling or deleting anything.
Remember that Linux does not display password characters while you type.
Enter the password carefully and press Enter.
If the password was forgotten, follow the current official password-reset process for WSL. Do not remove the distribution as a first troubleshooting step, because that may destroy its files.
PowerShell and Linux use different shells and command sets.
For example:
Get-Locationis a PowerShell command, while:
pwdis a Linux shell command.
Some commands share the same name but behave differently.
Always check which terminal is active before running instructions from a tutorial.
Run:
wsl --list --verboseIdentify which distribution you intend to use.
You can specify it when launching WSL:
wsl -d UbuntuDo not delete the other distribution until you confirm that it contains no files or tools you need.
The main source of beginner confusion is often not the installation itself. It is losing track of which environment is active.
Before running a command, identify three things:
Inside Linux, use:
pwdIn Windows PowerShell, use:
Get-LocationAlso pay attention to path styles.
A path beginning with /home/ is in the Linux file system. A path beginning with C:\ is a Windows path. A path beginning with /mnt/c/ is WSL accessing the Windows C drive.
In software projects, consistency is usually more valuable than cleverness. Choose one primary project location and use it deliberately.
For the WSL-based workflow in this series, we will keep Linux-oriented development projects under:
~/projectsThis makes it easier to know where commands should run and reduces accidental mixing between Windows and Linux tools.
Before moving to the next article, confirm the following:
wsl --install completed successfully.pwd displays a Linux path.uname -a returns Linux environment information.wsl --list --verbose displays your distribution.sudo apt update completes without a fatal error.~/projects directory exists.A simple final check inside Ubuntu is:
cd ~/projects
pwdThe result should resemble:
/home/your-username/projectsIf this works, your WSL environment is ready for the next stage.
WSL gives Windows users a practical Linux environment without requiring them to replace Windows.
It is useful for development tools, terminal workflows, package managers, and AI coding agents that are designed around Linux-style environments. It also helps reduce some differences between local development and Linux-based deployment environments.
The essential setup is straightforward: confirm Windows support, install WSL from an elevated PowerShell window, complete the Linux user setup, verify the distribution, and create a consistent project location.
The most important habit is knowing which environment and file system you are using. That awareness prevents many command, path, and configuration problems later.
In the next article, we will connect Visual Studio Code to WSL, open the ~/projects directory as a Linux-based workspace, and verify that the VS Code terminal is running inside the correct environment.
No. WSL runs alongside Windows.
You continue using normal Windows applications while gaining access to a Linux terminal and file system. Removing or stopping WSL does not replace the Windows operating system.
For the web development and AI-assisted workflows in this series, WSL 2 is generally the better fit because it provides broader Linux compatibility.
Some specialized networking, storage, or organization-managed environments may have different requirements. Check the current Microsoft comparison before choosing for a professional system.
For tools that run mainly inside WSL, storing projects in the Linux file system is often the most consistent option.
A simple location is:
/home/your-username/projectsThe next guide will show how to open that folder directly in Visual Studio Code.
Comments
Post a Comment