返回技能列表

setup-wsl-dev-environment

pjt222
更新于 2 days ago
7 次查看
17
2
17
在 GitHub 上查看
其他automation

关于

This skill automates setting up a WSL2 development environment on Windows, configuring shell settings, core tools, Git, SSH keys, and language runtimes like Node.js and Python. It's designed for initializing a new Windows/WSL machine, adding tools to an existing setup, or establishing cross-platform workflows. Developers use it to quickly bootstrap a standardized, productive dev environment.

快速安装

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-8B参数内容审核模型,专门用于过滤LLM的输入和输出内容。它能检测六大安全风险类别(暴力/仇恨、性内容、武器、违禁品、自残、犯罪计划),准确率达94-95%。开发者可通过HuggingFace、vLLM或Sagemaker快速部署,并能与NeMo Guardrails集成实现自动化安全防护。

查看技能

cost-optimization

其他

这个Claude Skill帮助开发者优化云成本,通过资源调整、标记策略和预留实例来降低AWS、Azure和GCP的开支。它适用于减少云支出、分析基础设施成本或实施成本治理策略的场景。关键功能包括提供成本可视化、资源规模调整指导和定价模型优化建议。

查看技能

quantizing-models-bitsandbytes

其他

这个Skill使用bitsandbytes库量化大语言模型,能在GPU内存有限时通过8位或4位量化减少50-75%内存占用,同时保持精度损失最小。它支持INT8、NF4、FP4等多种量化格式,可与HuggingFace Transformers无缝集成,适用于需要部署更大模型或加速推理的场景。还提供QLoRA训练和8位优化器支持,让开发者能轻松实现高效模型压缩。

查看技能

dispatching-parallel-agents

其他

该Skill用于并行处理3个以上无依赖关系的独立故障,可为每个问题域分派专属Claude代理同时执行调查修复。它通过并发处理多个独立问题显著提升故障排查效率,特别适用于测试文件、子系统等无共享状态的场景。

查看技能