Claude Code Pro Max 5x を契約したので。Codex CLI?知らんな
効率悪いと思いつつ、新しく何かをClaude Codeを始めるときの環境づくりでやってることを書く
前提
環境とか
claudeコマンドでTUIを起動するところまで。
作業
VSCodeにdevcontainer機能拡張を入れる
https://code.visualstudio.com/docs/devcontainers/tutorial
WSLを起動する
WSLは適当に有効化しておく。PowerShellかcmdを開いてwslを起動。
wsl
もし、WSLのストレージ先を変更したい(デフォルトはシステムドライブに配置されるはず)、同じディストリビューションを複数環境作りたい、とかあれば、一度エクスポートしたりインポートする必要がある。(FAQも参照)
以降はWSLの作業。
Optional: WSL上にpodmanを導入する
podmanはデーモンレス、rootlessがよい。基本的なCLIコマンドはdockerとある程度互換性がある。個人的な趣味なのでdockerでもいい。
インストールしたらpodman run --rm hello-world が動くことを確認して次に。
Optional: Podmanを使う場合、VSCodeのユーザ設定にて、devcontainerにpodmanを使うよう設定しておく
ユーザのsettings.jsonを開き以下を追記
"dev.containers.dockerPath": "podman",
"dev.containers.dockerComposePath": "podman-compose",
VSCodeをWSLで起動する
WSL上で code コマンド(VSCode)を使うとWSLで開いてくれる。PATHが通っていれば。
mkdir プロジェクト名 code プロジェクト名
devcontainer.jsonを作成
VSCodeのコマンドパレット(Ctrl+P)を開き、>Dev Containers: Add Dev Container Configuration Files と入力。目的のランタイムを選び .devcontainer/devcontainer.jsonを作成
.devcontainer/devcontainer.json を開き、featuresを足してclaudeが動作するようにする(nodeも最新を入れる)
see: devcontainer-features/src/claude-code at main · anthropics/devcontainer-features · GitHub
"features": {
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
},
devcontainer.jsonを使ってDevContainerを起動
VSCodeのコマンドパレット(Ctrl+P)を開き、>Dev Containers: Open Folder in Container を選択して起動。
無事起動することを祈る。(podmanだとコンテナによっては、ここでコケることが多い)
以降はdevcontainerの作業。続きを始めたいときはdevcontainerを開けばよい。
.claude/settings.json を用意する
.claude/settings.json を開き書き足す
{ "env": { "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1", "MAX_THINKING_TOKENS": "16000" }, "permissions": { "defaultMode": "bypassPermissions" }, "enabledMcpjsonServers": [ "mcp-server-name" ] }
- env
- "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1" => 色々無効化。例えばclaudeは定期的にupdateをチェックして最新化しようとするが、devcontainerはfeatureで入れた環境は素直にupdateできないので。updateしたいときはコンテナをrebuildしている
- "MAX_THINKING_TOKENS": "16000" => 31999で常時ultlathinkと同じらしい。なくても良いかも
- permissions
- defaultMode: "bypassPermissions" =>
claude --dangerously-skip-permissionsと等価。許可を求めなくなる
- defaultMode: "bypassPermissions" =>
- enabledMcpjsonServers: [ "mcp-server-name" ] => プロジェクトで利用を許可するMCPサーバを指定する。野良リポジトリを使う場合はここの値に注意するべき(claude起動→STDIOならMCPサーバ起動=任意コード実行になるので)でも趣味プロジェクトならいいよね?
claudeの利用開始
featureによりnode, claude codeのCLIが使えるようになっているはず。
claude
初回はログイン作業が発生する。.claude.jsonをマウントして共有するのもいいかもしれない。ccusageとかで使用量みたいとかだと.claudeもマウントしたほうがいいかもしれない。
あとはclaudeしたりgit initしたりして頑張る。