環境構築
Local Account
- OS初期起動時に
Shift+F10
を押してコマンドプロントを開く -
cd oobe
でディレクトリを移動後、BypassNRO.cmd
で再起動 - インターネットに接続しないまま設定を進めると、ローカルアカウントに必要な情報(ユーザー名、パスワード等)を求められるので入力
Wallpaper
Chrome
Remote Desktop
Logi Options
Nvidia Driver
基本自動でインストールされるが最新版でないため再インストール
まず、以下からダウンロード
ダウンロード後は、インストール
インストール時は、Experienceは除き、カスタムを選択し、クリーンナップにチェックを入れる
正しくインストールされたかチェック
nvidia-smi
Tailscale
以下からインストーラをダウンロードし、インストール
あとはログインすればOK
OpenSSH Server
まず、Server / Client 機能が入っているか確認
Get-WindowsCapability -Online |
Where-Object Name -match 'OpenSSH\.(Server|Client)' |
Select-Object Name,State
未導入なら、OpenSSH Server をインストール
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
サービスを起動し自動起動に設定
# サーバー本体
Start-Service sshd
Set-Service sshd -StartupType Automatic
# 鍵キャッシュ用(任意)
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
サービス状態を確認
Get-Service sshd,ssh-agent | Select Name,Status,StartType
ファイアウォールを確認(自動で入るが念のため)
Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP'
ルールが無い場合は
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' ` -DisplayName 'OpenSSH SSH Server' -Enabled True ` -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
接続テスト
# ローカルから
ssh <ユーザー名>@localhost
# 他 PC から
ssh <ユーザー名>@<WindowsPCのIPアドレス>
WSL
wsl を有効にする
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
vm を有効にする
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
インストール
wsl --install
うまくいかない場合は、以下から、wsl.x.x.x.x.x64.msi
をダウンロードし、インストール後、再度 wsl --install
を試す
起動したら、アカウント設定し、パッケージをを更新
sudo apt update
sudo apt upgrade
Git
windows
インストール時は以下を変更
インストール後は、name, email を設定
git config --global user.name 'TaroYamada'
git config --global user.email 'taro.yamada@gmail.com'
wsl
デフォルトで入っているので、name, email だけ設定
FFmpeg
windows
以下から、ダウンロードし解凍
https://ffmpeg.org/download.html
https://github.com/BtbN/FFmpeg-Builds/releases
Program Filesにffmpegディレクトリを作成し解凍したものを配置
最後にシステムの環境変数を変更する
Pathに以下をを追加
C:\Program Files\ffmpeg\bin
wsl
sudo apt install ffmpeg
VSCode
インストール
以下からダウンロードしインストール
拡張機能のエキスポート
code --list-extensions > ext.txt
拡張機能のインポート
bradlc.vscode-tailwindcss
cweijan.dbclient-jdbc
cweijan.vscode-database-client2
donjayamanne.githistory
ecmel.vscode-html-css
esbenp.prettier-vscode
formulahendry.auto-close-tag
github.copilot
github.copilot-chat
janisdd.vscode-edit-csv
mechatroner.rainbow-csv
mhutchie.git-graph
ms-azuretools.vscode-containers
ms-azuretools.vscode-docker
ms-ceintl.vscode-language-pack-ja
ms-python.black-formatter
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
ms-toolsai.jupyter
ms-toolsai.jupyter-keymap
ms-toolsai.jupyter-renderers
ms-toolsai.vscode-jupyter-cell-tags
ms-toolsai.vscode-jupyter-slideshow
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-wsl
oderwat.indent-rainbow
pkief.material-icon-theme
上記のtxtを作成後、以下コマンドを実行
# bash
xargs -L 1 code --install-extension < ext.txt
# powershell
Get-Content ext.txt | ForEach-Object {
code --install-extension $_
}
設定の共有
Ctrl + Shift + P → Open User Settings
で設定ファイルを開き、以下を貼り付け。
{
// --------------------------------------------------
// 1. Python
// --------------------------------------------------
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnType": true
},
"python.analysis.typeCheckingMode": "basic",
"python.analysis.inlayHints.callArgumentNames": "partial",
"python.analysis.inlayHints.functionReturnTypes": true,
"black-formatter.args": ["--line-length", "170"],
// --------------------------------------------------
// 2. Jupyter & データベース(拡張依存)
// --------------------------------------------------
"database-client.autoSync": true,
// --------------------------------------------------
// 3. Prettier系共通(対応言語のみ override)
// --------------------------------------------------
"prettier.printWidth": 170,
"[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[javascriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[typescriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[jinja-html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[dockercompose]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
// --------------------------------------------------
// 4. エディタ挙動
// --------------------------------------------------
"editor.formatOnSave": true,
"editor.unicodeHighlight.ambiguousCharacters": false,
"editor.unicodeHighlight.invisibleCharacters": false,
// --------------------------------------------------
// 5. Git
// --------------------------------------------------
"git.enableSmartCommit": true,
// --------------------------------------------------
// 6. ワークベンチ UI
// --------------------------------------------------
"workbench.iconTheme": "material-icon-theme",
"workbench.startupEditor": "none",
"workbench.editorAssociations": {
"*.pdf": "default"
}
}
serve-web
これでVSCodeをサーバーにできる
code serve-web --host 0.0.0.0 --port 8000 --without-connection-token --accept-server-license-terms
uv
windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
wsl
curl -LsSf https://astral.sh/uv/install.sh | sh
nvm
windows
nvm-setup.exe をダウンロードし、nvmをインストール
LTS版の node をインストール
# インストール
nvm install lts
# バージョンチェック
nvm ls
# インストールしたバージョンをデフォルトに指定
nvm use x.x.x
npm, npx が使えない場合、以下を実行して使えるように変更
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
npmを最新版に更新
npm install -g npm@latest
wsl
nvmをインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
LTS版の node をインストール
nvm install --lts
npmを最新版に更新
npm install -g npm@latest
docker
windows
以下からダウンロード
デフォルト設定でインストール
wsl
以下手順にそって、インストール
CUDA&cuDNN
CUDA on Windows
まず、参考になるサイト
以下手順
pytorch に対応したバージョンを入れるため以下を確認する
確認すると、現状対応しているのは、12.8 のため、以下から12.8.1をダウンロード
対象のダウンロードリンクを探すときはこちらがおすすめ
ダウンロード後は、インストール
cuDNN
CUDA と対応したバージョンである必要がある
以下を参考に対応関係を調べる
対応するバージョンが見つかったら以下からダウンロード
今回は、cuDNN 9.10.2 をダウンロード
ダウンロード後はzipを解凍
以下のパスに新しく cuDNN/v9.10.2 のディレクトリを作成し、解凍したした中身をそこに移動
# before
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
# after
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\cuDNN\v9.10.2
最後にシステムの環境変数を変更する
Pathに以下をを追加し、
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\cuDNN\v9.10.2\bin
CUDNN_PATH を新規作成し以下を登録する
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\cuDNN\v9.10.2
その後、パスが通っていることを確認する
where cudnn64_68.dll
Claude Code
wsl
curl -fsSL https://claude.ai/install.sh | bash
API利用の場合は、環境変数にAPI_KEYを設定
echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.bashrc
# 確認用コマンド
env | grep ANTHROPIC_API_KEY
Codex
wslに、以下コマンドでインストール
npm install -g @openai/codex
API利用の場合は、環境変数にAPI_KEYを設定
echo 'export OPENAI_API_KEY="your-api-key-here"' >> ~/.bashrc
# 確認用コマンド
env | grep OPENAI_API_KEY
~/.codex/config.toml
に以下を追記
preferred_auth_method = "apikey"
model_reasoning_effort = "high"
[tools]
web_search = true
Claude Desktop
ダウンロードし、インストール
Claude Code UI
work dir にクローン
git clone https://github.com/siteboon/claudecodeui.git
ライブラリのインストール
wsl
npm install
# sudo apt install build-essential インストールに失敗した場合これ試す
.env.sapme をコピーして、.env を作成し、port を書き換える
cp .env.example .env
# Backend server port (Express API + WebSocket server)
#API server
PORT=54322
#Frontend port
VITE_PORT=54321
vite.cinfig.js に allowHost を加える
import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig(({ command, mode }) => {
// Load env file based on `mode` in the current working directory.
const env = loadEnv(mode, process.cwd(), "");
return {
plugins: [react()],
server: {
allowedHosts: true, // この行を追加
port: parseInt(env.VITE_PORT) || 3001,
proxy: {
"/api": `http://localhost:${env.PORT || 3002}`,
"/ws": {
target: `ws://localhost:${env.PORT || 3002}`,
ws: true,
},
},
},
build: {
outDir: "dist",
},
};
});
run-dev.sh を新規作成
#!/bin/bash
export PATH=/home/your/node/bin:$PATH # which npm で確認
cd /mnt/c/Users/your/work/dir/claudecodeui # クローンしたディレクトリを設定
npm run dev
run-dev.ps1 を新規作成
# WSL Port Proxy Setup & Claude Code UI Startup Script with System Tray
# ========== Configuration ==========
$PORTS = @('54321', '54322')
$WSL_SCRIPT_PATH = "/mnt/c/Users/your/work/dir/claudecodeui/run-dev.sh" # クローンしたディレクトリを設定
$SERVER_NAME = "Claude Code UI"
$ACCESS_URL = "http://localhost:$($PORTS[0])"
# ===================================
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# Get WSL IP address
$ip = (wsl.exe -e sh -c "ip route get 8.8.8.8 | grep -oE 'src [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | cut -d' ' -f2").Trim()
if (-not $ip) {
Write-Error "WSL NAT IP not found";
exit 1
}
# Setup port proxy
Write-Host "Setting up port proxy for IP: $ip"
$PORTS | ForEach-Object {
netsh interface portproxy delete v4tov4 listenport=$_ 2>$null
netsh interface portproxy add v4tov4 listenport=$_ connectaddress=$ip connectport=$_
Write-Host "Port $_ -> $ip`:$_"
}
Write-Host "portproxy updated -> $ip"
# Start WSL dev server as background job
Write-Host "Starting $SERVER_NAME dev server..."
$job = Start-Job -ScriptBlock {
param($scriptPath)
wsl.exe -e $scriptPath
} -ArgumentList $WSL_SCRIPT_PATH
# Create system tray icon
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon("$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe")
$trayIcon = New-Object System.Windows.Forms.NotifyIcon
$trayIcon.Icon = $icon
$trayIcon.Text = "$SERVER_NAME - Running on :$($PORTS[0])"
$trayIcon.Visible = $true
# Create context menu with Exit only
$contextMenu = New-Object System.Windows.Forms.ContextMenuStrip
$exitItem = New-Object System.Windows.Forms.ToolStripMenuItem
$exitItem.Text = "Exit"
$exitItem.Add_Click({
try {
# Stop the background job
if ($job) {
Stop-Job $job -ErrorAction SilentlyContinue
Remove-Job $job -ErrorAction SilentlyContinue
}
# Kill processes using specific ports
$PORTS | ForEach-Object {
wsl.exe -e bash -c "fuser -k $_/tcp 2>/dev/null || true"
}
# Clean up port proxy
$PORTS | ForEach-Object {
netsh interface portproxy delete v4tov4 listenport=$_ 2>$null
}
Write-Host "$SERVER_NAME server stopped and port proxy cleaned up"
} catch {}
$trayIcon.Visible = $false
$trayIcon.Dispose()
[System.Windows.Forms.Application]::Exit()
})
$contextMenu.Items.Add($exitItem)
$trayIcon.ContextMenuStrip = $contextMenu
# Show notification
$trayIcon.ShowBalloonTip(3000, $SERVER_NAME, "Server started! Access at $ACCESS_URL", [System.Windows.Forms.ToolTipIcon]::Info)
Write-Host "System tray icon created. Right-click tray icon to exit."
Write-Host "Server access: $ACCESS_URL"
# Keep UI responsive with message loop
[System.Windows.Forms.Application]::Run()
管理者の powershell で以下を実行し、立ち上げ。終了させるときはシステムトレイから。
powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\your\work\dir\claudecodeui\run-dev.ps1"
タスクスケジューラで、PC起動時にサーバーが自動起動するように、上記のコマンドを設定すると便利
※ 忘れずに最上位権限を付与
GitHub CLI
windows
インストール
winget install --id GitHub.cli
ログイン
gh auth login
wsl
インストール
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& sudo mkdir -p -m 755 /etc/apt/sources.list.d \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
ログイン
gh auth login