Serverless DNA Logo
Loading...
Kiro + WSL - The Full Guide hero image

Kiro + WSL - The Full Guide

Using the Kiro IDE on Windows with Windows Subsystem for Linux (WSL) feels like a dark art. If you are like me, you want all your development tools to be in the WSL, and you want the Kiro agents to be communicating with your local Linux instance as well. This article covers everything you need to know to integrate Kiro with WSL on Windows.

When developing on Windows, I prefer to have all my development tools, such as Node and Python, installed in the WSL environment, including MCP servers. There are three steps to getting Kiro working entirely with the Windows Subsystem for Linux (WSL2):

  1. Set up WSL Extension
  2. Make WSL the Default Terminal
  3. Configure MCP servers to run within your WSL environment

Prerequisites

Before starting, ensure you have:

  • Windows 11 (or Windows 10 with WSL2 support)
  • WSL2 installed with Ubuntu (or your preferred distribution)
  • Development tools (Node, Python, etc.) installed in your WSL environment
  • Kiro 0.5.0+ downloaded from kiro.dev/downloads

This article was tested on a Windows 11 laptop using Kiro 0.5.0 and WSL2 installed using the Ubuntu distribution.

Set Up WSL Extension

Kiro is built from a fork of Microsoft's VS Code, so you cannot use the WSL extension for VS Code. Instead, we need to install and use Open Remote - WSL. Search for the extension on the extensions page and install it.

Kiro IDE showing WSL Extension install screen

Once installed, an additional step is required to enable the extension in the Open Source VS Code Runtime Arguments.

  1. Press [Ctrl + Shift + p] and type "Preferences: Configure Runtime Arguments" to open the argv.json file.
  2. Add the "enable-proposed-api" attribute as shown in the JSON snippet below
// This configuration file allows you to pass permanent command-line arguments to VS Code. // Only a subset of arguments is currently supported to reduce the likelihood of breaking // the installation. // // PLEASE DO NOT CHANGE WITHOUT UNDERSTANDING THE IMPACT // // NOTE: Changing this file requires a restart of VS Code. {   // Use software rendering instead of hardware accelerated rendering.   // This can help in cases where you see rendering issues in VS Code.   // "disable-hardware-acceleration": true,   // Allows to disable crash reporting.   // Should restart the app if the value is changed.   "enable-crash-reporter": true,   // Unique id used for correlating crash reports sent from this instance.   // Do not edit this value.     "crash-reporter-id": "1e234567-fc11-1ead-a1b2-123456789012",         // Add this to enable the Open Remote - WSL extension on Kiro   "enable-proposed-api": [     "jeanp413.open-remote-wsl",   ] }

Make WSL the Default Terminal

You need to ensure that you set the default terminal profile for Kiro to be your WSL distribution that is running. You can do this by pressing [Ctrl + Shift  + p] and typing terminal: Select Default Profile. Pressing Enter will display a list of terminals to choose from; ensure you select the WSL distribution you plan to use for Kiro. In the image below, I have chosen Ubuntu (WSL).

Kiro - selecting default WSL terminal profile

Configure MCP to run in WSL

I prefer all my development tools to be in the Linux environment, so I want to execute all MCP servers in the WSL environment as well. This way, I don't need to install two versions of everything (one in Windows and one in WSL). Running MCP servers in the WSL environment can be achieved by extending the standard MCP configuration.  This configuration is for Local MCP servers using the stdio protocol.

NOTE (November 14, 2025): In a prior version of my blog, I used bash -cl to run the MCP servers, which worked in my environment but was very dependent on shell configuration and setup.

The key is to run the wsl.exe command and run the command in a login shell to execute the MCP server. The tools needed to run the MCP server(s) must be in your PATH, for example uv, npx, etc. For the standard fetch MCP used by Kiro, use the configuration shown below:

{   "mcpServers": {     "fetch": { "command": "wsl.exe", "args": [ "--shell-type", "login", "uvx", "mcp-server-fetch" ], "env": {}, "disabled": false, "autoApprove": [ "fetch" ] }   } }

With these steps completed, you have successfully integrated Kiro with the Windows Subsystem for Linux, and Kiro terminals will now run within the WSL terminal.  A neat feature of Kiro installation is that you can run kiro . from the WSL terminal in the project source folder you wish to open, and Kiro will start up in Windows and connect to WSL.

Setting up Git

Git is not available by default in Windows without installing Git for Windows.  The latest version of Kiro helps by providing a button to open the installation page from the git panel. For full Git integration, click the download button and follow the instructions to install Git for Windows.

Manage Unsafe Repositories

In Windows, when opening WSL folders, the owner of the repository files is a different user from the one running Kiro and git, which run from windows. Git 2.35.2+ introduced security checks for repositories where the owner doesn't match the current user, preventing potential attack vectors.  

For WSL development, where your projects are all in Linux, you can run the following command in a Windows terminal (not WSL) to avoid the permission error since this is not a problem within this context:

git config --global --add safe.directory '*'.