# ワンクリック設定スクリプト

コマンド 1 行で、ゼロから使える状態まで完了します。スクリプトが自動でレイテンシを計測して最速の接続エンドポイントを選び、キーの入力をガイドし、設定を書き込み、必要に応じて Node.js と CLI をインストールし、最後に最小限のリクエストを 1 回送信して疎通を確認します。**まずお使いの OS を選んでください**：

> 📖 実行前に [QCode.cc ダッシュボード](https://qcode.cc/dashboard) で `cr_` から始まる API キーをご用意ください。スクリプトの実行中に貼り付けを求められます（入力は画面に表示されません）。

## 🍎 macOS / 🐧 Linux

ターミナルを開き、貼り付けて実行します（sudo は不要です）：

### Claude Code

```bash
curl -fsSL https://qcode.cc/install/claude-code.sh | bash
```

### Codex

```bash
curl -fsSL https://qcode.cc/install/codex.sh | bash
```

## Interface language / 表示言語

```bash
# macOS / Linux
curl -fsSL https://qcode.cc/install/claude-code.sh | bash -s -- --lang en
```

```powershell
# Windows PowerShell
$env:QCODE_LANG='en'; irm https://qcode.cc/install/claude-code.ps1 | iex
```

`--lang zh` / `--lang en`. Same for `codex`.

設定は shell の設定ファイル（`~/.zshrc` / `~/.bashrc` 内の管理ブロック）または `~/.codex/` に書き込まれます。Node.js がない場合は nvm を使ってユーザーディレクトリにインストールされます。

## 🪟 Windows

**ネイティブの PowerShell だけで動作します — WSL も管理者権限も不要です。**「Windows ターミナル」または PowerShell を開き、貼り付けて実行します：

### Claude Code

```powershell
irm https://qcode.cc/install/claude-code.ps1 | iex
```

### Codex

```powershell
irm https://qcode.cc/install/codex.ps1 | iex
```

### No `irm` / blocked by execution policy

**In CMD (Command Prompt):**

```
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://qcode.cc/install/claude-code.ps1 | iex"
```

**Double-click, or `iex` blocked by policy:**

```
curl -fsSL https://qcode.cc/install/claude-code.cmd -o "%TEMP%\qcode.cmd" && "%TEMP%\qcode.cmd"
```

**For future PowerShell sessions (no admin rights needed):**

```powershell
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
```

Windows 版に関する注意：

- 設定は**ユーザーレベルの環境変数**に書き込まれます（Codex は `%USERPROFILE%\.codex\` に書き込み）。旧値は自動的に `%USERPROFILE%\.qcode\` へバックアップされます
- Node.js がない場合は winget で LTS をインストールします。winget がない場合は [nodejs.org](https://nodejs.org/) での手動インストール手順を案内します
- 設定完了後、**新しく開いた** PowerShell / ターミナルでは自動的に反映されます。VS Code などのエディタは一度再起動が必要です
- スクリプトが実行ポリシーにブロックされる場合は、先に `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser` を実行してから再試行してください

## スクリプトが行うこと

1. **レイテンシ計測によるエンドポイント選択** — api / asia / us の 3 つの接続エンドポイントにそれぞれ軽量リクエストを 1 回送信し、最速のものを推奨します（手動での変更も可能です）
2. **設定の書き込み** — Claude Code：macOS/Linux では shell の管理ブロック、Windows ではユーザーレベルの環境変数に書き込み。Codex：`~/.codex/config.toml` + `auth.json` に書き込み（デフォルトモデルはその場で選択でき、推奨は `gpt-6-sol`）
3. **環境のインストール**（スキップ可）— Node.js ≥ 20 を検出し、ない場合は nvm（macOS/Linux）または winget（Windows）で LTS をインストールした後、`npm install -g` で CLI をインストールします。すべてユーザーディレクトリ内で完結します
4. **疎通確認** — お手持ちのキーで最小限のリクエストを 1 回送信し、失敗した場合は HTTP ステータスコードに応じたトラブルシューティングのヒントを表示します
5. **書き込み前バックアップ** — 変更されるファイルはすべて事前に `.bak.タイムスタンプ` としてバックアップされます。Windows の旧環境変数は `%USERPROFILE%\.qcode\` にバックアップされます

## 非対話モード（CI / 確認省略）

macOS / Linux：

```bash
curl -fsSL https://qcode.cc/install/claude-code.sh | bash -s -- --key cr_xxx --yes
```

| パラメータ | 説明 |
|------|------|
| `--key <cr_...>` | API キー。指定すると対話入力をスキップします |
| `--domain <api\|asia\|us>` | 接続エンドポイントを指定し、レイテンシ計測をスキップします |
| `--model <id>` | Codex：デフォルトモデルを指定し、選択メニューをスキップします。Claude Code：デフォルトモデルを固定します（`ANTHROPIC_MODEL` に書き込み）。省略すると Claude Code 標準のデフォルトモデルを使い、そのアップグレードにも追従します |
| `--lang <zh\|en>` | Interface language (default: system locale) |
| `--target <app\|cli>` | (codex only) Config only / also install the CLI |
| `--yes` / `-y` | すべての確認にデフォルト値を使用します |
| `--no-install` | 設定の書き込みのみ行い、Node / CLI をインストールしません |
| `--no-verify` | 疎通確認をスキップします |
| `--help` | すべてのパラメータを表示します |

Windows でのパラメータ付き呼び出し（上表に対応するパラメータ：`-Key`、`-Domain`、`-Model`、`-Yes`、`-NoInstall`、`-NoVerify`）：

```powershell
& ([scriptblock]::Create((irm https://qcode.cc/install/claude-code.ps1))) -Key cr_xxx -Yes
```

（`codex.ps1` も同様です）

## 書き込まれるファイル / ロールバック方法

| ツール / プラットフォーム | 書き込み先 | ロールバック方法 |
|------|------|------|
| Claude Code（macOS/Linux）| `~/.zshrc` または `~/.bashrc` 内の `# >>> qcode.cc claude-code >>>` 管理ブロック | 管理ブロック全体を削除するか、同じディレクトリの `.bak.タイムスタンプ` バックアップから復元します |
| Claude Code（Windows）| ユーザーレベルの環境変数 ×4（`ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN` / `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` / `CLAUDE_CODE_AUTO_MODE_SERVER`。`-Model` 指定時は `ANTHROPIC_MODEL` も追加） | `%USERPROFILE%\.qcode\backup-*.json` 内の旧値から復元します |
| Codex（全プラットフォーム）| `~/.codex/config.toml` + `~/.codex/auth.json` | 同じディレクトリの `.bak.タイムスタンプ` バックアップから復元します |

スクリプトの再実行は常に安全です。管理ブロックはその場で更新され、設定ファイルはバックアップを取ってから上書きされます。

## よくある質問

- **確認で 401 が返る** — キーが無効か期限切れです。[ダッシュボード](https://qcode.cc/dashboard) で確認し（`cr_` プレフィックスまで完全にコピーされているかご確認ください）、スクリプトを再実行してください
- **確認で 404 が返る** — 接続先アドレスが間違っています。Claude Code の BASE_URL は `https://{域}/api`、Codex は `https://{域}/openai` で、末尾にスラッシュは付けません
- **ネットワークタイムアウト** — スクリプトを再実行して別の接続エンドポイントに切り替えてください（例：`--domain asia`）。各エンドポイントのリアルタイムの状態は [probe.qcode.cc](https://probe.qcode.cc/) で確認できます
- **Windows でインストール後に claude / codex コマンドが見つからない** — 新しい PowerShell ウィンドウを開き直してください（PATH は新しいセッションで初めて更新されます）
- **スクリプトに Node をインストールさせたくない** — `--no-install`（Windows：`-NoInstall`）を付けると、設定の書き込みのみ行います
- **先にスクリプトの内容を確認したい** — <https://qcode.cc/install/claude-code.sh> を直接開いてソースコードをお読みください。スクリプトは sudo / 管理者権限を必要とせず、システムディレクトリには一切書き込みません
- **"The API key contains invalid characters"** — quotes / spaces / smart punctuation were pasted with the key. Copy it again from the [dashboard](https://qcode.cc/dashboard)
- **"You are running this script with sudo"** — sudo is not needed; it writes the config into root's home. Re-run without sudo
- **"Config was written, but verification did not pass"** — config files are in place, only the final connectivity check failed. Fix per the status code and re-run
- **Codex がだんだん遅くなり「Reconnecting… / stream disconnected」を繰り返す** — 多くの場合、セッションにスクリーンショットや画像が溜まっています。Codex は毎ターン会話全体（すべての画像を含む）を再送信するため、数十枚のスクリーンショットで 1 回あたり数十 MB になり、回線が遅いと送り切れません。`/new` で新しいセッションを始めてください（続けたい作業を数行で説明すれば十分です）。セッションがすでに大きい場合は `/compact` を使わないでください（圧縮リクエスト自体も履歴全体を一度送信します）。今後は 1 つのセッションに貼るスクリーンショットを減らすか、縮小してから貼ってください

## Codex: desktop App or CLI

The script asks which client you use:

1. **Codex desktop App** (default) — config files only, no Node.js / CLI install
2. **Codex CLI** — also applies to the App; installs Node.js and the CLI as needed

Non-interactive: `--target app` / `--target cli` (Windows: `-Target app` / `-Target cli`).

> ⚠️ `~/.codex/config.toml` is overwritten as a whole. Existing MCP servers / profiles are not
> preserved; restore them from the `.bak.<timestamp>` backup in the same directory.