ローカルで実行できる「OpenClaude」

ローカルで実行できるOpenClaudeを見かけたので試してみました。

結論から言えば、現時点では特に使用するメリットはなさそうですが、今後に期待ということでメモとして。現状ではまだopencodeのほうが実用的そうです。強いて言えば、Claude Codeのコードベースに近いので、Claude CodeユーザーならUIが馴染みやすいという点と、gRPCサーバーモードがある(自前のUIを作りたい場合)点でしょうか。

項目OpenClaudeopencode
GitHubスター2.1万14万
月間利用者不明650万人
対応プロバイダ~10種75種以上
TUI(ターミナルUI)なし(シンプルなCLI)あり(Bubble Tea製)
LSP連携なしあり(Rust, TS, Python等)
Plan/Buildモード切替なしTab一発で切替
デスクトップアプリなしあり
IDE拡張VSCode対応のみJetBrains, Zed, Neovim等
開発元個人/小規模Anomaly(専門チーム)
更新頻度低めほぼ毎日リリース

OpenClaude導入スクリプト

#!/usr/bin/env bash
# ============================================================
#  OpenClaude インストールスクリプト
#  対象: Ubuntu 26.04 LXD コンテナ (直インストール)
#  用途: npm global install で openclaude を使えるようにする
# ============================================================
set -euo pipefail

# ---- 色付きログ ----------------------------------------
GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; NC='\033[0m'
info()  { echo -e "${GREEN}[INFO]${NC}  $*"; }
warn()  { echo -e "${YELLOW}[WARN]${NC}  $*"; }
error() { echo -e "${RED}[ERROR]${NC} $*" >&2; exit 1; }

# ---- root チェック ------------------------------------
if [[ $EUID -ne 0 ]]; then
  warn "root 以外で実行しています。sudo が必要な場面は自動的に付きます。"
  SUDO="sudo"
else
  SUDO=""
fi

# ============================================================
# 1. 基本パッケージの更新
# ============================================================
info "パッケージリストを更新します..."
$SUDO apt-get update -y

info "必要な基本パッケージをインストールします..."
$SUDO apt-get install -y \
  curl \
  git \
  ripgrep \
  build-essential \
  ca-certificates \
  gnupg

# ============================================================
# 2. Node.js 22.x (LTS) のインストール
#    ※ openclaude は Node.js >= 18 が必要
# ============================================================
NODE_MAJOR=22

if command -v node &>/dev/null; then
  CURRENT_NODE=$(node -v | sed 's/v//' | cut -d. -f1)
  if [[ "$CURRENT_NODE" -ge 18 ]]; then
    info "Node.js $(node -v) が既にインストールされています。スキップします。"
  else
    warn "Node.js $(node -v) は古すぎます。Node.js ${NODE_MAJOR}.x をインストールします..."
    INSTALL_NODE=true
  fi
else
  info "Node.js が見つかりません。インストールします..."
  INSTALL_NODE=true
fi

if [[ "${INSTALL_NODE:-false}" == "true" ]]; then
  curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | $SUDO bash -
  $SUDO apt-get install -y nodejs
fi

info "Node.js バージョン: $(node -v)"
info "npm バージョン:     $(npm -v)"

# ============================================================
# 3. ripgrep の確認 (openclaude が使用)
# ============================================================
if ! command -v rg &>/dev/null; then
  error "ripgrep (rg) のインストールに失敗しました。手動で確認してください。"
fi
info "ripgrep バージョン: $(rg --version | head -1)"

# ============================================================
# 4. OpenClaude のインストール
# ============================================================
info "OpenClaude をグローバルインストールします..."
$SUDO npm install -g @gitlawb/openclaude

info "openclaude バージョン: $(openclaude --version 2>/dev/null || echo '(確認できません)')"

# ============================================================
# 5. 設定ディレクトリの作成
# ============================================================
CONFIG_DIR="${HOME}/.claude"
mkdir -p "$CONFIG_DIR"
info "設定ディレクトリ: ${CONFIG_DIR}"

# ============================================================
# 6. 環境変数テンプレートの生成
#    実際の値は後で編集してください
# ============================================================
ENV_FILE="${HOME}/.openclaude.env"

if [[ ! -f "$ENV_FILE" ]]; then
  cat > "$ENV_FILE" << 'EOF'
# ============================================================
#  OpenClaude 環境変数設定ファイル
#  使い方: source ~/.openclaude.env  を .bashrc / .zshrc に追加
# ============================================================

# --- OpenAI 互換 API を使う場合 ---
# export CLAUDE_CODE_USE_OPENAI=1
# export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
# export OPENAI_MODEL=gpt-4o
# export OPENAI_BASE_URL=https://api.openai.com/v1   # 省略可

# --- OpenRouter を使う場合 ---
# export CLAUDE_CODE_USE_OPENAI=1
# export OPENAI_API_KEY=sk-or-xxxxxxxxxxxxxxxx
# export OPENAI_BASE_URL=https://openrouter.ai/api/v1
# export OPENAI_MODEL=anthropic/claude-3-5-sonnet

# --- DeepSeek を使う場合 ---
# export CLAUDE_CODE_USE_OPENAI=1
# export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
# export OPENAI_BASE_URL=https://api.deepseek.com/v1
# export OPENAI_MODEL=deepseek-chat

# --- Gemini を使う場合 ---
# export GEMINI_API_KEY=AIzaxxxxxxxxxxxxxxxx

# --- ローカル Ollama を使う場合 (API キー不要) ---
# export CLAUDE_CODE_USE_OPENAI=1
# export OPENAI_BASE_URL=http://localhost:11434/v1
# export OPENAI_MODEL=qwen2.5-coder:7b

# --- Firecrawl (Web検索強化, 任意) ---
# export FIRECRAWL_API_KEY=your-key-here
EOF
  info "環境変数テンプレートを作成しました: ${ENV_FILE}"
else
  warn "環境変数ファイルが既に存在します: ${ENV_FILE} (スキップ)"
fi

# ============================================================
# 7. .bashrc への自動 source 追加 (任意)
# ============================================================
BASHRC="${HOME}/.bashrc"
SOURCE_LINE="[ -f \"\$HOME/.openclaude.env\" ] && source \"\$HOME/.openclaude.env\""

if ! grep -qF ".openclaude.env" "$BASHRC" 2>/dev/null; then
  echo "" >> "$BASHRC"
  echo "# OpenClaude 環境変数" >> "$BASHRC"
  echo "$SOURCE_LINE" >> "$BASHRC"
  info ".bashrc に環境変数の自動読み込みを追加しました。"
fi

# ============================================================
# 完了メッセージ
# ============================================================
echo ""
echo -e "${GREEN}=====================================================${NC}"
echo -e "${GREEN}  OpenClaude のインストールが完了しました!${NC}"
echo -e "${GREEN}=====================================================${NC}"
echo ""
echo "  次のステップ:"
echo ""
echo "  1. API キーを設定する:"
echo "       nano ${ENV_FILE}"
echo ""
echo "  2. 環境変数を読み込む:"
echo "       source ${ENV_FILE}"
echo "       # または新しいシェルを開く"
echo ""
echo "  3. OpenClaude を起動する:"
echo "       openclaude"
echo ""
echo "  4. 起動後にプロバイダ設定:"
echo "       /provider        # ガイド付き設定"
echo "       /onboard-github  # GitHub Models 設定"
echo ""
echo "  ドキュメント: https://github.com/Gitlawb/openclaude"
echo ""

Ollamaをコンテナに入れる場合

# Ollamaインストール
curl -fsSL https://ollama.com/install.sh | sh

# モデルを pull(例: 軽量な qwen2.5-coder 7B)
ollama pull qwen2.5-coder:7b

# OpenClaudeの環境変数設定
export CLAUDE_CODE_USE_OPENAI=1
export OPENAI_BASE_URL=http://localhost:11434/v1
export OPENAI_MODEL=qwen2.5-coder:7b
タイトルとURLをコピーしました