Back to Skills

setup-wsl-dev-environment

pjt222
Updated 2 days ago
4 views
17
2
17
View on GitHub
Designdesign

About

This skill automates the setup of a comprehensive WSL2 development environment on Windows. It installs and configures essential tools like Git, SSH, Node.js, Python, and shell customization while managing cross-platform paths. Use it when provisioning a new Windows machine, setting up WSL2 for the first time, or adding development tools to an existing WSL installation.

Quick Install

Claude Code

Recommended
Primary
npx skills add pjt222/agent-almanac -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternative
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-wsl-dev-environment

Copy and paste this command in Claude Code to install this skill

Documentation


name: setup-wsl-dev-environment description: > Configura un entorno de desarrollo WSL2 en Windows, incluyendo configuración de shell, herramientas esenciales, Git, claves SSH, Node.js, Python y gestión de rutas multiplataforma. Usar al configurar una nueva máquina Windows para desarrollo, al configurar WSL2 por primera vez, al añadir herramientas de desarrollo a una instalación WSL existente, o al establecer flujos de trabajo multiplataforma que combinen WSL y herramientas de Windows. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: general complexity: intermediate language: multi tags: wsl, windows, linux, development, setup locale: es source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16

Configurar el Entorno de Desarrollo WSL

Configura un entorno de desarrollo WSL2 completo para trabajo multiplataforma.

Cuándo Usar

  • Al configurar una nueva máquina Windows para desarrollo
  • Al configurar WSL2 por primera vez
  • Al añadir herramientas de desarrollo a una instalación WSL existente
  • Al establecer flujos de trabajo multiplataforma (WSL + herramientas de Windows)

Entradas

  • Requerido: Windows 10/11 con soporte para WSL2
  • Opcional: Distribución de Linux preferida (por defecto: Ubuntu)
  • Opcional: Lenguajes a configurar (Node.js, Python, R)
  • Opcional: Herramientas adicionales (Docker, tmux, fzf)

Procedimiento

Paso 1: Instalar WSL2

En PowerShell (Administrador):

wsl --install
wsl --set-default-version 2

Reiniciar si se solicita. Ubuntu se instala por defecto.

Esperado: Tras el reinicio, wsl --list --verbose muestra la distribución ejecutándose bajo la versión 2 de WSL. El comando wsl abre una shell de Linux.

En caso de fallo: Si la instalación de WSL2 falla, habilita manualmente las características de Windows "Virtual Machine Platform" y "Windows Subsystem for Linux" mediante optionalfeatures.exe. En versiones antiguas de Windows 10, puede ser necesaria una actualización del kernel de Microsoft.

Paso 2: Configurar los Límites de Recursos de WSL

Crear ~/.wslconfig en el directorio home de Windows:

[wsl2]
memory=8GB
processors=4
localhostForwarding=true

Esperado: El archivo .wslconfig existe en el directorio home del usuario de Windows (p.ej., C:\Users\Nombre\.wslconfig). Tras ejecutar wsl --shutdown y reiniciar WSL, los límites de recursos se aplican.

En caso de fallo: Si la configuración no tiene efecto, verifica que el archivo está en la ubicación correcta (home de Windows, no home de WSL). Ejecuta wsl --shutdown y vuelve a abrir WSL para que los cambios surtan efecto.

Paso 3: Actualizar e Instalar Esenciales

sudo apt update && sudo apt upgrade -y
sudo apt install -y \
  build-essential \
  curl \
  wget \
  git \
  git-lfs \
  vim \
  htop \
  tree \
  jq \
  ripgrep \
  fd-find \
  unzip \
  zip

Crear alias útiles:

echo 'alias fd="fdfind"' >> ~/.bashrc

Esperado: Todos los paquetes se instalan sin errores. Comandos como git --version, jq --version, rg --version y tree se ejecutan correctamente.

En caso de fallo: Si apt install falla, ejecuta primero sudo apt update para actualizar las listas de paquetes. Para paquetes no encontrados, verifica que la versión de Ubuntu los soporte o instálalos desde fuentes alternativas (p.ej., snap, cargo, o descarga manual).

Paso 4: Configurar Git

git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
git config --global core.autocrlf input
git config --global color.ui auto
git config --global core.editor vim

Esperado: git config --list muestra el nombre de usuario, correo, rama por defecto (main), autocrlf (input) y configuración del editor correctos.

En caso de fallo: Si los ajustes no se aplican, verifica que usaste --global (no --local, que solo aplica al repositorio actual). Comprueba que ~/.gitconfig contiene las entradas esperadas.

Paso 5: Configurar Claves SSH

ssh-keygen -t ed25519 -C "[email protected]"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
# Añadir a GitHub: Settings > SSH and GPG keys

Prueba: ssh -T [email protected]

Esperado: ssh -T [email protected] devuelve "Hi username! You've successfully authenticated." El par de claves SSH existe en ~/.ssh/id_ed25519 y ~/.ssh/id_ed25519.pub.

En caso de fallo: Si la autenticación falla, verifica que la clave pública fue añadida a GitHub (Settings > SSH and GPG keys). Comprueba que ssh-agent está en ejecución y la clave está cargada con ssh-add -l. Si el agente no está en ejecución, añade eval "$(ssh-agent -s)" a ~/.bashrc.

Paso 6: Instalar Node.js (vía nvm)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts

Esperado: node --version y npm --version devuelven las versiones LTS actuales. nvm ls muestra la versión instalada marcada como predeterminada.

En caso de fallo: Si nvm no se encuentra tras la instalación, ejecuta source ~/.bashrc o abre una nueva terminal. Si el script de instalación falla, descárgalo y ejecútalo manualmente tras revisar su contenido.

Paso 7: Instalar Python (vía pyenv)

# Instalar dependencias de compilación
sudo apt install -y make libssl-dev zlib1g-dev libbz2-dev \
  libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils \
  tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

curl https://pyenv.run | bash

# Añadir a ~/.bashrc
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

pyenv install 3.12
pyenv global 3.12

Esperado: python --version devuelve Python 3.12.x. pyenv versions muestra la versión instalada configurada como global.

En caso de fallo: Si pyenv install falla con errores de compilación, asegúrate de que todas las dependencias del comando apt install fueron instaladas. Las librerías faltantes (especialmente libssl-dev o zlib1g-dev) son la causa más común de errores en la compilación de Python.

Paso 8: Configurar el Shell

Añadir a ~/.bashrc:

# Historial
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTCONTROL=ignoredups:erasedups
shopt -s histappend

# Alias de navegación
alias ll='ls -alF'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'

# Rutas de desarrollo
export DEV_HOME="/mnt/d/dev/p"
alias dev='cd $DEV_HOME'

# Funciones
mkcd() { mkdir -p "$1" && cd "$1"; }

# Adiciones al PATH
export PATH="$HOME/bin:$HOME/.local/bin:$PATH"

Esperado: Tras ejecutar source ~/.bashrc, todos los alias (ll, la, .., dev) funcionan, la función mkcd crea y entra en directorios, y $DEV_HOME apunta al directorio de desarrollo.

En caso de fallo: Si los alias no están disponibles, verifica que las adiciones fueron añadidas a ~/.bashrc (no a ~/.bash_profile o ~/.profile). Ejecuta source ~/.bashrc para recargar sin abrir una nueva terminal.

Paso 9: Configurar Claude Code CLI

# Añadir Claude CLI al PATH (tras la instalación)
echo 'export PATH="$HOME/.claude/local/node_modules/.bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Verificar
which claude

Esperado: which claude devuelve la ruta al binario de Claude Code CLI (p.ej., ~/.claude/local/node_modules/.bin/claude). Ejecutar claude --version imprime la versión instalada.

En caso de fallo: Si claude no se encuentra, verifica que la exportación del PATH fue añadida a ~/.bashrc y recargada. Comprueba que Claude Code está realmente instalado en ~/.claude/local/. Si no está instalado, sigue primero las instrucciones de instalación de Claude Code.

Paso 10: Referencia de Rutas Multiplataforma

WindowsWSL
C:\Users\Name/mnt/c/Users/Name
D:\dev\projects/mnt/d/dev/projects
%APPDATA%/mnt/c/Users/Name/AppData/Roaming

Abrir el Explorador de Windows desde WSL: explorer.exe .

Esperado: La tabla de conversión de rutas se entiende y se prueba: el acceso a rutas de Windows desde WSL funciona (p.ej., ls /mnt/c/Users/), y explorer.exe . abre el Explorador de Windows en el directorio WSL actual.

En caso de fallo: Si /mnt/c/ no es accesible, verifica que el automontaje de WSL está configurado. Comprueba /etc/wsl.conf para los ajustes [automount]. Ejecuta wsl --shutdown y reinicia si los puntos de montaje están obsoletos.

Validación

  • WSL2 ejecutándose con la distribución correcta
  • Git configurado con la identidad correcta
  • Clave SSH añadida a GitHub y conexión verificada
  • Node.js instalado y funcionando
  • Python instalado y funcionando
  • Alias y funciones del shell funcionan
  • Claude Code CLI accesible

Errores Comunes

  • Acceso lento a archivos en /mnt/: Almacena los proyectos de acceso frecuente en el sistema de archivos de WSL (~/) para mejor rendimiento. Usa /mnt/ para proyectos compartidos con herramientas de Windows.
  • Finales de línea: core.autocrlf=input previene problemas con CRLF. Configura los editores para usar LF.
  • Problemas de permisos: Los archivos en /mnt/ pueden mostrar permisos incorrectos. Añadir a /etc/wsl.conf: [automount]\noptions = "metadata,umask=22,fmask=11"
  • Windows Defender: Excluye los directorios de WSL del análisis en tiempo real para mejor rendimiento.

Habilidades Relacionadas

  • configure-git-repository - configuración detallada de repositorios Git
  • configure-mcp-server - la configuración de MCP requiere el entorno WSL
  • write-claude-md - configurar el asistente de IA para proyectos

GitHub Repository

pjt222/agent-almanac
Path: i18n/es/skills/setup-wsl-dev-environment
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Related Skills

executing-plans

Design

Use the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.

View skill

requesting-code-review

Design

This skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.

View skill

connect-mcp-server

Design

This skill provides a comprehensive guide for developers to connect MCP servers to Claude Code using HTTP, stdio, or SSE transports. It covers installation, configuration, authentication, and security for integrating external services like GitHub, Notion, and custom APIs. Use it when setting up MCP integrations, configuring external tools, or working with Claude's Model Context Protocol.

View skill

web-cli-teleport

Design

This skill helps developers choose between Claude Code Web and CLI interfaces based on task analysis, then enables seamless session teleportation between these environments. It optimizes workflow by managing session state and context when switching between web, CLI, or mobile. Use it for complex projects requiring different tools at various stages.

View skill