MCP HubMCP Hub
Вернуться к навыкам

setup-wsl-dev-environment

pjt222
Обновлено Yesterday
2 просмотров
17
2
17
Посмотреть на GitHub
Другоеautomation

О программе

Этот навык автоматизирует настройку среды разработки WSL2 в Windows, конфигурируя параметры оболочки, основные инструменты, Git, SSH-ключи и среды выполнения языков, такие как Node.js и Python. Он предназначен для инициализации новой машины Windows/WSL, добавления инструментов в существующую установку или настройки кросс-платформенных рабочих процессов. Разработчики используют его для быстрого развёртывания стандартизированной, продуктивной среды разработки.

Быстрая установка

Claude Code

Рекомендуется
Основной
npx skills add pjt222/agent-almanac -a claude-code
Команда плагинаАльтернативный
/plugin add https://github.com/pjt222/agent-almanac
Git клонированиеАльтернативный
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-wsl-dev-environment

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

Set Up WSL Dev Env

WSL2 dev env → cross-platform work.

Use When

  • New Windows machine → dev setup
  • First WSL2 config
  • Add dev tools → existing WSL
  • WSL + Windows tool workflows

In

  • Required: Windows 10/11 w/ WSL2
  • Optional: Linux distro (default: Ubuntu)
  • Optional: Langs (Node, Python, R)
  • Optional: Extra tools (Docker, tmux, fzf)

Do

Step 1: Install WSL2

PowerShell (Admin):

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

Reboot if asked. Ubuntu = default.

Got: wsl --list --verbose → distro under WSL v2. wsl → Linux shell.

If err: Install fails → enable "Virtual Machine Platform" + "Windows Subsystem for Linux" via optionalfeatures.exe. Old Win10 → kernel update from MS.

Step 2: WSL Resource Limits

~/.wslconfig in Windows home:

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

Got: .wslconfig in Windows home (e.g. C:\Users\Name\.wslconfig). After wsl --shutdown + restart → limits applied.

If err: No effect → file in wrong dir (Windows home, not WSL home). wsl --shutdown + reopen.

Step 3: Update + Essentials

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

Aliases:

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

Got: All install. git --version, jq --version, rg --version, tree work.

If err: apt install fails → sudo apt update first. Pkg not found → check Ubuntu ver, alt sources (snap, cargo, manual).

Step 4: 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

Got: git config --list → name, email, branch (main), autocrlf (input), editor.

If err: Not applied → used --local not --global. Check ~/.gitconfig.

Step 5: SSH Keys

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

Test: ssh -T [email protected]

Got: ssh -T [email protected] → "Hi username! You've successfully authenticated." Keys at ~/.ssh/id_ed25519{,.pub}.

If err: Auth fails → pubkey added to GitHub? ssh-agent running? ssh-add -l → key loaded? Add eval "$(ssh-agent -s)"~/.bashrc.

Step 6: Node.js (nvm)

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

Got: node --version + npm --version → LTS. nvm ls → default marked.

If err: nvm not found → source ~/.bashrc or new term. Script fails → review + run manually.

Step 7: Python (pyenv)

# Install build dependencies
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

# Add to ~/.bashrc
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

pyenv install 3.12
pyenv global 3.12

Got: python --version → 3.12.x. pyenv versions → set global.

If err: Build err → missing deps from apt install. libssl-dev | zlib1g-dev = most common cause.

Step 8: Shell

~/.bashrc:

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

# Navigation aliases
alias ll='ls -alF'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'

# Development paths
export DEV_HOME="/mnt/d/dev/p"
alias dev='cd $DEV_HOME'

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

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

Got: After source ~/.bashrc → aliases (ll, la, .., dev) work, mkcd creates+enters, $DEV_HOME set.

If err: Aliases missing → check appended to ~/.bashrc (not ~/.bash_profile | ~/.profile). source ~/.bashrc.

Step 9: Claude Code CLI

# Add Claude CLI to PATH (after installation)
echo 'export PATH="$HOME/.claude/local/node_modules/.bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Verify
which claude

Got: which claude → path (e.g. ~/.claude/local/node_modules/.bin/claude). claude --version → ver.

If err: Not found → PATH export in ~/.bashrc + sourced? Installed at ~/.claude/local/? Else install first.

Step 10: Cross-Platform Paths

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

Explorer from WSL: explorer.exe .

Got: Path table understood + tested (ls /mnt/c/Users/, explorer.exe . opens current dir).

If err: /mnt/c/ inaccessible → automount config? /etc/wsl.conf [automount]. wsl --shutdown + restart.

Check

  • WSL2 running w/ correct distro
  • Git config'd w/ identity
  • SSH key on GitHub + verified
  • Node.js works
  • Python works
  • Shell aliases + funcs work
  • Claude Code CLI accessible

Traps

  • Slow /mnt/ access: Hot projects → WSL fs (~/). /mnt/ only for Windows-shared.
  • Line endings: core.autocrlf=input prevents CRLF. Editors → LF.
  • Permissions: /mnt/ shows wrong perms → /etc/wsl.conf [automount]\noptions = "metadata,umask=22,fmask=11".
  • Windows Defender: Exclude WSL dirs from real-time scan.

  • configure-git-repository — Git repo setup
  • configure-mcp-server — MCP needs WSL env
  • write-claude-md — configure AI assistant

GitHub репозиторий

pjt222/agent-almanac
Путь: i18n/caveman-ultra/skills/setup-wsl-dev-environment
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Похожие навыки

llamaguard

Другое

LlamaGuard — это модель от Meta с 7–8 миллиардами параметров для модерации входных и выходных данных больших языковых моделей по шести категориям безопасности, таким как насилие и разжигание ненависти. Она обеспечивает точность 94–95% и может быть развернута с помощью vLLM, Hugging Face или Amazon SageMaker. Используйте этот навык, чтобы легко интегрировать фильтрацию контента и защитные механизмы в ваши ИИ-приложения.

Просмотреть навык

cost-optimization

Другое

Этот навык Claude помогает разработчикам оптимизировать облачные расходы за счет правильного подбора ресурсов, стратегий тегирования и анализа затрат. Он предоставляет framework для сокращения облачных расходов и внедрения управления затратами в AWS, Azure и GCP. Используйте его, когда вам нужно проанализировать расходы на инфраструктуру, оптимизировать ресурсы или уложиться в бюджетные ограничения.

Просмотреть навык

quantizing-models-bitsandbytes

Другое

Этот навык выполняет квантизацию LLM до 8-битной или 4-битной точности с использованием библиотеки bitsandbytes, обеспечивая сокращение использования памяти на 50-75% при минимальной потере точности. Он идеально подходит для запуска больших моделей при ограниченной памяти GPU или для ускорения вывода, поддерживая форматы INT8, NF4 и FP4. Навык интегрируется с HuggingFace Transformers и позволяет использовать обучение QLoRA и 8-битные оптимизаторы.

Просмотреть навык

dispatching-parallel-agents

Другое

Этот навык Claude распределяет нескольких агентов для исследования и устранения трёх и более независимых проблем параллельно. Он предназначен для сценариев с несвязанными сбоями, которые можно устранить без общего состояния или зависимостей. Ключевая возможность — параллельное решение проблем, где за каждую независимую предметную область назначается отдельный агент для максимальной эффективности.

Просмотреть навык