Claude Code 爽快手放し運転

on Raspberry Pi

© 2025 渡邊

世は Coding Agent 群雄割拠時代

ローカル

  • Cursor Agent モード
  • GitHub Copilot Agent
  • Claude Code
  • Gemini CLI
  • Codex CLI
  • Amazon Q

リモート

  • Devin
  • Google Jules
  • Codex
  • Manus
  • OpenHands

Claude Code

Claude Code概要 - Anthropic より

ターミナル内で動作し、コードベースを理解し、自然言語コマンドを通じてより高速なコーディングを支援するエージェンティックなコーディングツールであるClaude Code

Claude Code

  • Claude Opus/Sonnet 4 を基盤モデルとして、
  • ターミナル上で動作する、
  • コーディングエージェント

特に、

ターミナルで動作すること

が嬉しい

ターミナルで動くとなぜ良いのか

  • ターミナルから出なくて済む
  • IDE がせまくならなくて済む
  • 他のツールとパイプ経由で組み合わせやすい

Claude Code は許可を求める

~/.claude/settings.json による権限移譲

Claude Code settings - Anthropic を参考に

{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  }
}

手放し運転の誘惑

  • いちいち許可するのがあまりに面倒、僕は面倒見の良い管理者ではない
  • 許可なく全て実行するのは、実質 RCE を受け入れているようなもの。セキュリティレベル📉


... では隔離しよう!

サンドボックス環境の要素

  • Raspberry Pi
  • Tailscale (VPN)
  • Claude Code
  • tmux
graph TB subgraph VPN[Tailscale VPN] PC -->|SSH| RP
subgraph RP[Raspberry Pi]
  subgraph TM[tmux]
    CC[Claude Code]
  end
end

end
style RP fill:#f9f,stroke:#333,stroke-width:2px
style TM fill:#ddf,stroke:#333,stroke-width:2px
style CC fill:#5dd,stroke:#333,stroke-width:2px

準備

# common
sudo apt install vim tmux

# claude-code
sudo apt update
sudo apt install nodejs npm
sudo npm install -g @anthropic-ai/claude-code

apt install curl
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - 
apt show nodejs
apt install nodejs

claude # 認証用 URL が表示されるので、ブラウザで開いて認証コードをコピー

# tailscale
curl -fsSL https://tailscale.com/install.sh | sh
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale up

ログイン時に claude を起動

~/.bashrc に以下を追加

# tmux with claude
if [[ -n $SSH_CONNECTION ]] && [[ -z $TMUX ]] && [[ $- == *i* ]]; then
    tmux new-session -A -s main 'claude --continue --dangerously-skip-permissions'
fi

ついでにラズパイを組込開発者にする

- Raspberry Pi Pico を接続して、片方をデバッグプローブとして扱ってください
- カメラを接続しておくので、ターゲットの様子を確認するのに使ってください

撮れた写真

まとめ

  • 手放し運転する時は、サンドボックス環境を用意するとよい、ラズパイや適当なコンテナなど
  • Claude Code 楽しいのでみんなやろう、 Plus プランから利用できる

おわり

参考

Appendix: XDG 対応

https://github.com/anthropics/claude-code/issues/1455

  • XDG 準拠に変更しようとしている: ~/.claude -> ~/.config/claude
  • キャッシュ更新されない

流転激しい AI ツールの細かい仕様に振り回されるのは非本質的、激おこ