@alibaba-group/open-code-review 1.6.1 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja-JP.md +90 -18
- package/README.ko-KR.md +89 -17
- package/README.md +90 -18
- package/README.ru-RU.md +90 -18
- package/README.zh-CN.md +90 -18
- package/imgs/providers.jpg +0 -0
- package/package.json +7 -7
package/README.ja-JP.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
<a href="#supported-platforms"><img alt="Linux" src="https://img.shields.io/badge/Linux-supported-blue.svg" /></a>
|
|
25
25
|
<a href="#supported-agents"><img alt="Claude Code" src="https://img.shields.io/badge/Claude_Code-supported-blueviolet.svg" /></a>
|
|
26
26
|
<a href="#supported-agents"><img alt="Codex" src="https://img.shields.io/badge/Codex-supported-blueviolet.svg" /></a>
|
|
27
|
+
<a href="#supported-agents"><img alt="Cursor" src="https://img.shields.io/badge/Cursor-supported-blueviolet.svg" /></a>
|
|
27
28
|
</p>
|
|
28
29
|
<p align="center">
|
|
29
30
|
<a href="README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | 日本語 | <a href="README.ko-KR.md">한국어</a> | <a href="README.ru-RU.md">Русский</a>
|
|
@@ -162,6 +163,8 @@ sudo cp dist/opencodereview /usr/local/bin/ocr
|
|
|
162
163
|
|
|
163
164
|
**コードレビューの前に必ずLLMを設定する必要があります。**
|
|
164
165
|
|
|
166
|
+
OCRは統一された**プロバイダー(Provider)**システムでLLM設定を管理します。多数の主要プロバイダーが組み込まれており、プライベートデプロイメントやその他の互換エンドポイントに接続するためのカスタムプロバイダーの追加もサポートしています。設定は`~/.opencodereview/config.json`に保存されます。
|
|
167
|
+
|
|
165
168
|
**オプションA: 対話的セットアップ(推奨)**
|
|
166
169
|
|
|
167
170
|
```bash
|
|
@@ -171,26 +174,60 @@ ocr config model # アクティブなプロバイダーのモデル
|
|
|
171
174
|
|
|
172
175
|

|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
対話的UIがプロバイダーの選択、APIキーの入力、モデル設定をガイドし、完了後に自動的に接続テストを行います。
|
|
178
|
+
|
|
179
|
+
`ocr llm providers`を実行すると、すべてのビルトインプロバイダーを確認できます。ビルトインプロバイダーにはAPI URLとプロトコルがプリセットされているため、APIキーを提供するだけで使用できます。対応する環境変数(例:`ANTHROPIC_API_KEY`、`OPENAI_API_KEY`)が設定済みの場合、APIキーは自動的に読み取られます。
|
|
180
|
+
|
|
181
|
+
**カスタムプロバイダー**も対話的UIから追加できます — プロバイダー名、API URL、プロトコルタイプ(`anthropic`または`openai`)、APIキーを入力します。
|
|
182
|
+
|
|
183
|
+
**オプションB: CLIセットアップ(CI/CDなど非対話環境向け)**
|
|
184
|
+
|
|
185
|
+
`ocr config set`コマンドでプロバイダー設定を直接書き込みます。スクリプトや自動化に適しています。
|
|
186
|
+
|
|
187
|
+
ビルトインプロバイダーを使用する場合:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ocr config set provider anthropic
|
|
191
|
+
ocr config set providers.anthropic.api_key your-api-key-here
|
|
192
|
+
ocr config set providers.anthropic.model claude-sonnet-4-6
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
カスタムプロバイダーを使用する場合(プライベートゲートウェイやその他の互換エンドポイント):
|
|
175
196
|
|
|
176
197
|
```bash
|
|
177
|
-
ocr config set
|
|
178
|
-
ocr config set
|
|
179
|
-
ocr config set
|
|
180
|
-
ocr config set
|
|
198
|
+
ocr config set provider my-gateway
|
|
199
|
+
ocr config set custom_providers.my-gateway.url https://my-llm-gateway.internal/v1
|
|
200
|
+
ocr config set custom_providers.my-gateway.protocol openai
|
|
201
|
+
ocr config set custom_providers.my-gateway.api_key your-api-key-here
|
|
202
|
+
ocr config set custom_providers.my-gateway.model gpt-4o
|
|
181
203
|
```
|
|
182
204
|
|
|
183
|
-
|
|
205
|
+
> カスタムプロバイダーでは`url`と`protocol`が必須です。サポートされるプロトコル:`anthropic`、`openai`。
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
オプション設定:
|
|
208
|
+
|
|
209
|
+
| キー | 説明 |
|
|
210
|
+
|------|------|
|
|
211
|
+
| `providers.<name>.auth_header` | 認証ヘッダー:`x-api-key`または`authorization`(デフォルト:`authorization`) |
|
|
212
|
+
| `providers.<name>.extra_body` | リクエストボディにマージされるカスタムJSONフィールド |
|
|
213
|
+
| `providers.<name>.extra_headers` | カンマ区切りの `key=value` ペアで、各リクエストに追加されるカスタムHTTPヘッダー |
|
|
214
|
+
| `providers.<name>.models` | 対話的選択用のモデルリスト |
|
|
215
|
+
|
|
216
|
+
**`extra_headers`(オプション):** すべてのLLM APIリクエストにカスタムHTTPヘッダーを追加します。プロキシ、ゲートウェイ、追加ヘッダーを必要とするエンタープライズエンドポイント(組織ID、トレースIDなど)に便利です。形式はカンマ区切りの `key=value` ペアです。カンマを含む値はダブルクォートで囲んでください:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ocr config set llm.extra_headers "X-Org-ID=org-123,X-Forwarded-For=\"1.2.3.4,5.6.7.8\""
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
プロバイダーごとに追加ヘッダーを設定することもできます:
|
|
186
223
|
|
|
187
224
|
```bash
|
|
188
|
-
ocr config set
|
|
225
|
+
ocr config set providers.anthropic.extra_headers "X-Org-ID=org-123"
|
|
189
226
|
```
|
|
190
227
|
|
|
191
|
-
|
|
228
|
+
**環境変数(最優先)**
|
|
192
229
|
|
|
193
|
-
|
|
230
|
+
環境変数は設定ファイルの設定を上書きします。設定ファイルの書き込みが不便なCI/CDシナリオに適しています:
|
|
194
231
|
|
|
195
232
|
```bash
|
|
196
233
|
export OCR_LLM_URL=https://api.anthropic.com/v1/messages
|
|
@@ -199,14 +236,12 @@ export OCR_LLM_MODEL=claude-opus-4-6
|
|
|
199
236
|
export OCR_USE_ANTHROPIC=true
|
|
200
237
|
```
|
|
201
238
|
|
|
202
|
-
|
|
239
|
+
Claude Codeの環境変数(`ANTHROPIC_BASE_URL`、`ANTHROPIC_AUTH_TOKEN`、`ANTHROPIC_MODEL`)とも互換性があり、`~/.zshrc` / `~/.bashrc`からこれらのexportをパースします。
|
|
203
240
|
|
|
204
|
-
> **CC-Switchユーザー向けの注意**: [CC-Switch](https://github.com/farion1231/cc-switch)を[ルーティングサービス](https://www.ccswitch.io/en/docs?section=proxy&item=service)
|
|
205
|
-
> - **Claude
|
|
206
|
-
> - **Codex
|
|
207
|
-
> - `
|
|
208
|
-
> - `llm.auth_token`は任意の値で構いません
|
|
209
|
-
> - `extra_body`設定は引き続き有効です
|
|
241
|
+
> **CC-Switchユーザー向けの注意**: [CC-Switch](https://github.com/farion1231/cc-switch)を[ルーティングサービス](https://www.ccswitch.io/en/docs?section=proxy&item=service)有効で使用している場合、プロバイダーの`url`をCC-Switchのプロキシアドレスに向けることで、追加設定なしで利用できます:
|
|
242
|
+
> - **Claude**プロバイダーの場合:`providers.anthropic.url`を`http://127.0.0.1:15721`に設定
|
|
243
|
+
> - **Codex**プロバイダーの場合:対応するプロバイダーの`url`を`http://127.0.0.1:15721/v1`に設定
|
|
244
|
+
> - `api_key`は任意の値で構いません。`extra_body`設定は引き続き有効です
|
|
210
245
|
|
|
211
246
|
**2. 疎通テスト**
|
|
212
247
|
|
|
@@ -294,7 +329,39 @@ ocr review --audience agent
|
|
|
294
329
|
|
|
295
330
|
韓国語ガイド:[`plugins/open-code-review/CODEX.ko-KR.md`](plugins/open-code-review/CODEX.ko-KR.md)
|
|
296
331
|
|
|
297
|
-
#### オプション4:
|
|
332
|
+
#### オプション4: Cursorプラグインとしてインストール
|
|
333
|
+
|
|
334
|
+
[Cursor](https://www.cursor.com/)では、このリポジトリからOpen Code Reviewプラグインをインストールできます:
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
cursor-plugin marketplace add alibaba/open-code-review
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
手動でmarketplaceを追加することもできます。Cursorで`/plugins`を開き、`Open Code Review`を検索してインストールしてください。
|
|
341
|
+
|
|
342
|
+
ローカルcheckoutまたはforkの場合:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
cursor-plugin marketplace add .
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
インストール後、Cursorで次のように呼び出します:
|
|
349
|
+
|
|
350
|
+
```text
|
|
351
|
+
@Open Code Review review my current changes
|
|
352
|
+
@Open Code Review review this branch against main
|
|
353
|
+
@Open Code Review review and fix high-confidence issues
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
これにより、ローカルOCR CLIを実行するCursor skillが登録されます:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
ocr review --audience agent
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
この統合はOCRの内部LLM backendを変更しません。OCR自体には、CLI setupセクションで説明されている`ocr` CLIのインストールと設定が引き続き必要です。
|
|
363
|
+
|
|
364
|
+
#### オプション5: コマンドファイルを直接コピー
|
|
298
365
|
|
|
299
366
|
パッケージマネージャーを使わずに素早くセットアップしたい場合は、コマンドファイルをコピーするだけでClaude Codeで`/open-code-review`スラッシュコマンドを使えるようになります。
|
|
300
367
|
|
|
@@ -553,10 +620,14 @@ OCRは4層の優先度チェーンを使ってレビュールールを解決し
|
|
|
553
620
|
| `providers.<name>.model` | string | プロバイダーのモデル名 |
|
|
554
621
|
| `providers.<name>.models` | array | 対話的選択に使う任意のプロバイダーモデル一覧 |
|
|
555
622
|
| `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
|
|
623
|
+
| `providers.<name>.extra_body` | object | すべてのリクエストボディにマージされるJSONオブジェクト |
|
|
624
|
+
| `providers.<name>.extra_headers` | string | カンマ区切りの `key=value` HTTPヘッダー |
|
|
556
625
|
| `custom_providers.<name>.*` | — | 任意の`models`を含む`providers.<name>.*`と同じフィールド |
|
|
557
626
|
| `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
|
|
558
627
|
| `llm.auth_token` | string | `sk-xxxxxxx` |
|
|
559
628
|
| `llm.auth_header` | string | Anthropicのみ:`x-api-key` \| `authorization` |
|
|
629
|
+
| `llm.extra_body` | object | すべてのリクエストボディにマージされるJSONオブジェクト |
|
|
630
|
+
| `llm.extra_headers` | string | カンマ区切りの `key=value` HTTPヘッダー |
|
|
560
631
|
| `llm.model` | string | `claude-opus-4-6` |
|
|
561
632
|
| `llm.use_anthropic` | boolean | `true` \| `false` |
|
|
562
633
|
| `language` | string | 任意の言語名、例:`English`、`Chinese`(デフォルト:`English`) |
|
|
@@ -574,6 +645,7 @@ OCRは4層の優先度チェーンを使ってレビュールールを解決し
|
|
|
574
645
|
| `OCR_LLM_URL` | LLM APIエンドポイントURL |
|
|
575
646
|
| `OCR_LLM_TOKEN` | APIキー / 認証トークン |
|
|
576
647
|
| `OCR_LLM_AUTH_HEADER` | Anthropic認証ヘッダー(`x-api-key`または`authorization`) |
|
|
648
|
+
| `OCR_LLM_EXTRA_HEADERS` | カンマ区切りの `key=value` HTTPヘッダー |
|
|
577
649
|
| `OCR_LLM_MODEL` | モデル名 |
|
|
578
650
|
| `OCR_USE_ANTHROPIC` | `true` = Anthropic、`false` = OpenAI |
|
|
579
651
|
|
package/README.ko-KR.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
<a href="#supported-platforms"><img alt="Linux" src="https://img.shields.io/badge/Linux-supported-blue.svg" /></a>
|
|
25
25
|
<a href="#supported-agents"><img alt="Claude Code" src="https://img.shields.io/badge/Claude_Code-supported-blueviolet.svg" /></a>
|
|
26
26
|
<a href="#supported-agents"><img alt="Codex" src="https://img.shields.io/badge/Codex-supported-blueviolet.svg" /></a>
|
|
27
|
+
<a href="#supported-agents"><img alt="Cursor" src="https://img.shields.io/badge/Cursor-supported-blueviolet.svg" /></a>
|
|
27
28
|
</p>
|
|
28
29
|
<p align="center">
|
|
29
30
|
<a href="README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.ja-JP.md">日本語</a> | 한국어 | <a href="README.ru-RU.md">Русский</a>
|
|
@@ -162,6 +163,8 @@ sudo cp dist/opencodereview /usr/local/bin/ocr
|
|
|
162
163
|
|
|
163
164
|
**코드 리뷰를 실행하기 전에 반드시 LLM을 설정해야 합니다.**
|
|
164
165
|
|
|
166
|
+
OCR은 통합 **Provider** 시스템으로 LLM 설정을 관리합니다. 다양한 주요 provider가 내장되어 있으며, 프라이빗 배포 또는 기타 호환 엔드포인트에 연결하기 위한 커스텀 provider 추가도 지원합니다. 설정은 `~/.opencodereview/config.json`에 저장됩니다.
|
|
167
|
+
|
|
165
168
|
**Option A: 대화형 설정 (권장)**
|
|
166
169
|
|
|
167
170
|
```bash
|
|
@@ -171,26 +174,60 @@ ocr config model # 활성 provider의 model 선택
|
|
|
171
174
|
|
|
172
175
|

|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
대화형 UI가 provider 선택, API key 입력, model 설정을 안내하며, 완료 후 자동으로 연결 테스트를 수행합니다.
|
|
178
|
+
|
|
179
|
+
`ocr llm providers`를 실행하면 모든 built-in provider를 확인할 수 있습니다. Built-in provider에는 API URL과 프로토콜이 사전 설정되어 있어 API key만 제공하면 바로 사용할 수 있습니다. 해당 환경 변수(예: `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`)가 이미 설정되어 있으면 API key가 자동으로 읽힙니다.
|
|
180
|
+
|
|
181
|
+
**커스텀 provider**도 대화형 UI에서 추가할 수 있습니다 — provider 이름, API URL, 프로토콜 타입(`anthropic` 또는 `openai`), API key를 입력합니다.
|
|
182
|
+
|
|
183
|
+
**Option B: CLI 설정 (CI/CD 등 비대화형 환경용)**
|
|
184
|
+
|
|
185
|
+
`ocr config set` 명령으로 provider 설정을 직접 작성합니다. 스크립트 및 자동화에 적합합니다.
|
|
186
|
+
|
|
187
|
+
Built-in provider 사용:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ocr config set provider anthropic
|
|
191
|
+
ocr config set providers.anthropic.api_key your-api-key-here
|
|
192
|
+
ocr config set providers.anthropic.model claude-sonnet-4-6
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
커스텀 provider 사용 (프라이빗 게이트웨이 또는 기타 호환 엔드포인트):
|
|
175
196
|
|
|
176
197
|
```bash
|
|
177
|
-
ocr config set
|
|
178
|
-
ocr config set
|
|
179
|
-
ocr config set
|
|
180
|
-
ocr config set
|
|
198
|
+
ocr config set provider my-gateway
|
|
199
|
+
ocr config set custom_providers.my-gateway.url https://my-llm-gateway.internal/v1
|
|
200
|
+
ocr config set custom_providers.my-gateway.protocol openai
|
|
201
|
+
ocr config set custom_providers.my-gateway.api_key your-api-key-here
|
|
202
|
+
ocr config set custom_providers.my-gateway.model gpt-4o
|
|
181
203
|
```
|
|
182
204
|
|
|
183
|
-
|
|
205
|
+
> 커스텀 provider에서는 `url`과 `protocol`이 필수입니다. 지원 프로토콜: `anthropic`, `openai`.
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
선택 설정:
|
|
208
|
+
|
|
209
|
+
| 키 | 설명 |
|
|
210
|
+
|----|------|
|
|
211
|
+
| `providers.<name>.auth_header` | 인증 header: `x-api-key` 또는 `authorization` (기본값: `authorization`) |
|
|
212
|
+
| `providers.<name>.extra_body` | 요청 body에 병합되는 커스텀 JSON 필드 |
|
|
213
|
+
| `providers.<name>.extra_headers` | 쉼표로 구분된 `key=value` 쌍, 각 요청에 추가되는 커스텀 HTTP 헤더 |
|
|
214
|
+
| `providers.<name>.models` | 대화형 선택용 model 목록 |
|
|
215
|
+
|
|
216
|
+
**`extra_headers` (선택사항):** 모든 LLM API 요청에 커스텀 HTTP 헤더를 추가합니다. 프록시, 게이트웨이, 추가 헤더가 필요한 엔터프라이즈 엔드포인트(조직 ID, 트레이싱 ID 등)에 유용합니다. 형식은 쉼표로 구분된 `key=value` 쌍입니다. 쉼표가 포함된 값은 큰따옴표로 묶으세요:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ocr config set llm.extra_headers "X-Org-ID=org-123,X-Forwarded-For=\"1.2.3.4,5.6.7.8\""
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
provider 별로 추가 헤더를 설정할 수도 있습니다:
|
|
186
223
|
|
|
187
224
|
```bash
|
|
188
|
-
ocr config set
|
|
225
|
+
ocr config set providers.anthropic.extra_headers "X-Org-ID=org-123"
|
|
189
226
|
```
|
|
190
227
|
|
|
191
|
-
|
|
228
|
+
**환경 변수 (가장 높은 우선순위)**
|
|
192
229
|
|
|
193
|
-
|
|
230
|
+
환경 변수는 설정 파일의 값을 덮어씁니다. 설정 파일 작성이 불편한 CI/CD 시나리오에 적합합니다:
|
|
194
231
|
|
|
195
232
|
```bash
|
|
196
233
|
export OCR_LLM_URL=https://api.anthropic.com/v1/messages
|
|
@@ -201,12 +238,10 @@ export OCR_USE_ANTHROPIC=true
|
|
|
201
238
|
|
|
202
239
|
Claude Code 환경 변수(`ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_MODEL`)와도 호환되며, `~/.zshrc` / `~/.bashrc`의 export도 파싱합니다.
|
|
203
240
|
|
|
204
|
-
> **CC-Switch 사용자 참고**: [CC-Switch](https://github.com/farion1231/cc-switch)를 [routing service](https://www.ccswitch.io/en/docs?section=proxy&item=service)와 함께 사용한다면,
|
|
205
|
-
> - **Claude** provider: `
|
|
206
|
-
> - **Codex** provider: `
|
|
207
|
-
> -
|
|
208
|
-
> - `llm.auth_token`은 아무 값이나 사용할 수 있음
|
|
209
|
-
> - `extra_body` 설정은 그대로 적용됨
|
|
241
|
+
> **CC-Switch 사용자 참고**: [CC-Switch](https://github.com/farion1231/cc-switch)를 [routing service](https://www.ccswitch.io/en/docs?section=proxy&item=service)와 함께 사용한다면, provider의 `url`을 CC-Switch proxy 주소로 지정하여 추가 설정 없이 사용할 수 있습니다:
|
|
242
|
+
> - **Claude** provider: `providers.anthropic.url`을 `http://127.0.0.1:15721`로 설정
|
|
243
|
+
> - **Codex** provider: 해당 provider의 `url`을 `http://127.0.0.1:15721/v1`로 설정
|
|
244
|
+
> - `api_key`는 아무 값이나 사용 가능, `extra_body` 설정은 그대로 적용됨
|
|
210
245
|
|
|
211
246
|
**2. 연결 테스트**
|
|
212
247
|
|
|
@@ -294,7 +329,39 @@ ocr review --audience agent
|
|
|
294
329
|
|
|
295
330
|
한국어 가이드: [`plugins/open-code-review/CODEX.ko-KR.md`](plugins/open-code-review/CODEX.ko-KR.md)
|
|
296
331
|
|
|
297
|
-
#### Option 4:
|
|
332
|
+
#### Option 4: Cursor Plugin으로 설치
|
|
333
|
+
|
|
334
|
+
[Cursor](https://www.cursor.com/)에서는 이 repository에서 Open Code Review plugin을 설치합니다:
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
cursor-plugin marketplace add alibaba/open-code-review
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
수동으로 marketplace를 추가할 수도 있습니다. Cursor에서 `/plugins`를 열고 `Open Code Review`를 검색하여 설치합니다.
|
|
341
|
+
|
|
342
|
+
local checkout이나 fork에서는 다음을 사용할 수 있습니다:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
cursor-plugin marketplace add .
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
설치 후, Cursor에서 다음과 같이 호출합니다:
|
|
349
|
+
|
|
350
|
+
```text
|
|
351
|
+
@Open Code Review review my current changes
|
|
352
|
+
@Open Code Review review this branch against main
|
|
353
|
+
@Open Code Review review and fix high-confidence issues
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
이 plugin은 local OCR CLI를 실행하는 Cursor skill을 등록합니다:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
ocr review --audience agent
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
이 통합은 OCR의 내부 LLM backend를 변경하지 않습니다. OCR 자체는 CLI 설정 섹션에 설명된 대로 `ocr` CLI 설치와 설정이 필요합니다.
|
|
363
|
+
|
|
364
|
+
#### Option 5: Command 파일 직접 복사
|
|
298
365
|
|
|
299
366
|
package manager 없이 빠르게 설정하려면 command 파일을 복사해 Claude Code에서 `/open-code-review` slash command를 사용할 수 있습니다.
|
|
300
367
|
|
|
@@ -511,10 +578,14 @@ Config file: `~/.opencodereview/config.json`
|
|
|
511
578
|
| `providers.<name>.model` | string | Provider의 model 이름 |
|
|
512
579
|
| `providers.<name>.models` | array | 대화형 선택에 사용할 optional provider model 목록 |
|
|
513
580
|
| `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
|
|
581
|
+
| `providers.<name>.extra_body` | object | 모든 요청 본문에 병합되는 JSON 객체 |
|
|
582
|
+
| `providers.<name>.extra_headers` | string | 쉼표로 구분된 `key=value` HTTP 헤더 |
|
|
514
583
|
| `custom_providers.<name>.*` | — | optional `models`를 포함한 `providers.<name>.*`과 동일한 필드 |
|
|
515
584
|
| `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
|
|
516
585
|
| `llm.auth_token` | string | `sk-xxxxxxx` |
|
|
517
586
|
| `llm.auth_header` | string | Anthropic only: `x-api-key` \| `authorization` |
|
|
587
|
+
| `llm.extra_body` | object | 모든 요청 본문에 병합되는 JSON 객체 |
|
|
588
|
+
| `llm.extra_headers` | string | 쉼표로 구분된 `key=value` HTTP 헤더 |
|
|
518
589
|
| `llm.model` | string | `claude-opus-4-6` |
|
|
519
590
|
| `llm.use_anthropic` | boolean | `true` \| `false` |
|
|
520
591
|
| `language` | string | 임의의 언어 이름, 예: `English`, `Chinese` (기본값: `English`) |
|
|
@@ -532,6 +603,7 @@ Config file: `~/.opencodereview/config.json`
|
|
|
532
603
|
| `OCR_LLM_URL` | LLM API endpoint URL |
|
|
533
604
|
| `OCR_LLM_TOKEN` | API key / auth token |
|
|
534
605
|
| `OCR_LLM_AUTH_HEADER` | Anthropic auth header (`x-api-key` 또는 `authorization`) |
|
|
606
|
+
| `OCR_LLM_EXTRA_HEADERS` | 쉼표로 구분된 `key=value` HTTP 헤더 |
|
|
535
607
|
| `OCR_LLM_MODEL` | Model name |
|
|
536
608
|
| `OCR_USE_ANTHROPIC` | `true` = Anthropic, `false` = OpenAI |
|
|
537
609
|
|
package/README.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
<a href="#supported-platforms"><img alt="Linux" src="https://img.shields.io/badge/Linux-supported-blue.svg" /></a>
|
|
25
25
|
<a href="#supported-agents"><img alt="Claude Code" src="https://img.shields.io/badge/Claude_Code-supported-blueviolet.svg" /></a>
|
|
26
26
|
<a href="#supported-agents"><img alt="Codex" src="https://img.shields.io/badge/Codex-supported-blueviolet.svg" /></a>
|
|
27
|
+
<a href="#supported-agents"><img alt="Cursor" src="https://img.shields.io/badge/Cursor-supported-blueviolet.svg" /></a>
|
|
27
28
|
</p>
|
|
28
29
|
<p align="center">
|
|
29
30
|
English | <a href="README.zh-CN.md">简体中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.ru-RU.md">Русский</a>
|
|
@@ -162,6 +163,8 @@ sudo cp dist/opencodereview /usr/local/bin/ocr
|
|
|
162
163
|
|
|
163
164
|
**You must configure an LLM before reviewing code.**
|
|
164
165
|
|
|
166
|
+
OCR manages LLM configuration through a unified **Provider** system. It ships with many popular built-in providers and also supports adding custom providers to connect to private deployments or other compatible endpoints. Config is stored in `~/.opencodereview/config.json`.
|
|
167
|
+
|
|
165
168
|
**Option A: Interactive setup (Recommended)**
|
|
166
169
|
|
|
167
170
|
```bash
|
|
@@ -171,26 +174,60 @@ ocr config model # Pick a model for the active provider
|
|
|
171
174
|
|
|
172
175
|

|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
The interactive UI guides you through provider selection, API key entry, and model configuration, then automatically tests connectivity.
|
|
178
|
+
|
|
179
|
+
Run `ocr llm providers` to see all built-in providers. Built-in providers come with preset API URLs and protocols — just supply an API key to get started. If the corresponding environment variable is already set (e.g. `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`), the API key is picked up automatically.
|
|
180
|
+
|
|
181
|
+
**Custom providers** can also be added through the interactive UI — you'll need to provide a name, API URL, protocol type (`anthropic` or `openai`), and API key.
|
|
182
|
+
|
|
183
|
+
**Option B: CLI setup (for CI/CD and non-interactive environments)**
|
|
184
|
+
|
|
185
|
+
Use `ocr config set` to write provider configuration directly, suitable for scripts and automation.
|
|
186
|
+
|
|
187
|
+
Using a built-in provider:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ocr config set provider anthropic
|
|
191
|
+
ocr config set providers.anthropic.api_key your-api-key-here
|
|
192
|
+
ocr config set providers.anthropic.model claude-sonnet-4-6
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Using a custom provider (private gateway or other compatible endpoint):
|
|
175
196
|
|
|
176
197
|
```bash
|
|
177
|
-
ocr config set
|
|
178
|
-
ocr config set
|
|
179
|
-
ocr config set
|
|
180
|
-
ocr config set
|
|
198
|
+
ocr config set provider my-gateway
|
|
199
|
+
ocr config set custom_providers.my-gateway.url https://my-llm-gateway.internal/v1
|
|
200
|
+
ocr config set custom_providers.my-gateway.protocol openai
|
|
201
|
+
ocr config set custom_providers.my-gateway.api_key your-api-key-here
|
|
202
|
+
ocr config set custom_providers.my-gateway.model gpt-4o
|
|
181
203
|
```
|
|
182
204
|
|
|
183
|
-
|
|
205
|
+
> `url` and `protocol` are required for custom providers. Supported protocols: `anthropic`, `openai`.
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
Optional settings:
|
|
208
|
+
|
|
209
|
+
| Key | Description |
|
|
210
|
+
|-----|-------------|
|
|
211
|
+
| `providers.<name>.auth_header` | Auth header: `x-api-key` or `authorization` (default: `authorization`) |
|
|
212
|
+
| `providers.<name>.extra_body` | Custom JSON fields merged into the request body |
|
|
213
|
+
| `providers.<name>.extra_headers` | Comma-separated `key=value` pairs of custom HTTP headers added to every request |
|
|
214
|
+
| `providers.<name>.models` | Model list for interactive selection |
|
|
215
|
+
|
|
216
|
+
**`extra_headers` (optional):** Adds custom HTTP headers to every LLM API request. Useful for proxies, gateways, or enterprise endpoints that require additional headers (e.g. organization IDs, tracing IDs). Format is comma-separated `key=value` pairs. Double-quote values that contain commas:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ocr config set llm.extra_headers "X-Org-ID=org-123,X-Forwarded-For=\"1.2.3.4,5.6.7.8\""
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
You can also set extra headers per-provider:
|
|
186
223
|
|
|
187
224
|
```bash
|
|
188
|
-
ocr config set
|
|
225
|
+
ocr config set providers.anthropic.extra_headers "X-Org-ID=org-123"
|
|
189
226
|
```
|
|
190
227
|
|
|
191
|
-
|
|
228
|
+
**Environment variables (highest priority)**
|
|
192
229
|
|
|
193
|
-
|
|
230
|
+
Environment variables override config file settings, useful in CI/CD where writing config files is inconvenient:
|
|
194
231
|
|
|
195
232
|
```bash
|
|
196
233
|
export OCR_LLM_URL=https://api.anthropic.com/v1/messages
|
|
@@ -199,14 +236,12 @@ export OCR_LLM_MODEL=claude-opus-4-6
|
|
|
199
236
|
export OCR_USE_ANTHROPIC=true
|
|
200
237
|
```
|
|
201
238
|
|
|
202
|
-
|
|
239
|
+
Also compatible with Claude Code environment variables (`ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_MODEL`) and parses `~/.zshrc` / `~/.bashrc` for those exports.
|
|
203
240
|
|
|
204
|
-
> **Note for CC-Switch Users**: If you are using [CC-Switch](https://github.com/farion1231/cc-switch) with [routing service](https://www.ccswitch.io/en/docs?section=proxy&item=service) enabled, you can point `
|
|
205
|
-
> - For **Claude** provider: set `
|
|
206
|
-
> - For **Codex** provider: set `
|
|
207
|
-
> -
|
|
208
|
-
> - `llm.auth_token` can be any value
|
|
209
|
-
> - `extra_body` settings still apply
|
|
241
|
+
> **Note for CC-Switch Users**: If you are using [CC-Switch](https://github.com/farion1231/cc-switch) with [routing service](https://www.ccswitch.io/en/docs?section=proxy&item=service) enabled, you can point the provider's `url` to the CC-Switch proxy address without additional configuration:
|
|
242
|
+
> - For **Claude** provider: set `providers.anthropic.url` to `http://127.0.0.1:15721`
|
|
243
|
+
> - For **Codex** provider: set the corresponding provider's `url` to `http://127.0.0.1:15721/v1`
|
|
244
|
+
> - `api_key` can be any value; `extra_body` settings still apply
|
|
210
245
|
|
|
211
246
|
**2. Test Connectivity**
|
|
212
247
|
|
|
@@ -294,7 +329,39 @@ This integration does not change OCR's internal LLM backend and does not require
|
|
|
294
329
|
|
|
295
330
|
Korean guide: [`plugins/open-code-review/CODEX.ko-KR.md`](plugins/open-code-review/CODEX.ko-KR.md)
|
|
296
331
|
|
|
297
|
-
#### Option 4:
|
|
332
|
+
#### Option 4: Install as a Cursor Plugin
|
|
333
|
+
|
|
334
|
+
For [Cursor](https://www.cursor.com/), install the Open Code Review plugin from this repository:
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
cursor-plugin marketplace add alibaba/open-code-review
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
Or add the marketplace manually. In Cursor, open `/plugins`, search for `Open Code Review`, and install it.
|
|
341
|
+
|
|
342
|
+
For a local checkout or fork:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
cursor-plugin marketplace add .
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
After installation, invoke it in Cursor:
|
|
349
|
+
|
|
350
|
+
```text
|
|
351
|
+
@Open Code Review review my current changes
|
|
352
|
+
@Open Code Review review this branch against main
|
|
353
|
+
@Open Code Review review and fix high-confidence issues
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
This registers a Cursor skill that runs the local OCR CLI:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
ocr review --audience agent
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
This integration does not change OCR's internal LLM backend. OCR itself still requires the `ocr` CLI to be installed and configured as described in the CLI setup section.
|
|
363
|
+
|
|
364
|
+
#### Option 5: Copy the Command File Directly
|
|
298
365
|
|
|
299
366
|
For a quick setup without any package manager, simply copy the command file to use the `/open-code-review` slash command in Claude Code.
|
|
300
367
|
|
|
@@ -558,10 +625,14 @@ Config file: `~/.opencodereview/config.json`
|
|
|
558
625
|
| `providers.<name>.model` | string | Model name for the provider |
|
|
559
626
|
| `providers.<name>.models` | array | Optional provider model list for interactive selection |
|
|
560
627
|
| `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
|
|
628
|
+
| `providers.<name>.extra_body` | object | JSON object merged into every request body |
|
|
629
|
+
| `providers.<name>.extra_headers` | string | Comma-separated `key=value` HTTP headers |
|
|
561
630
|
| `custom_providers.<name>.*` | — | Same fields as `providers.<name>.*`, including optional `models` |
|
|
562
631
|
| `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
|
|
563
632
|
| `llm.auth_token` | string | `sk-xxxxxxx` |
|
|
564
633
|
| `llm.auth_header` | string | Anthropic only: `x-api-key` \| `authorization` |
|
|
634
|
+
| `llm.extra_body` | object | JSON object merged into every request body |
|
|
635
|
+
| `llm.extra_headers` | string | Comma-separated `key=value` HTTP headers |
|
|
565
636
|
| `llm.model` | string | `claude-opus-4-6` |
|
|
566
637
|
| `llm.use_anthropic` | boolean | `true` \| `false` |
|
|
567
638
|
| `language` | string | Any language name, e.g. `English`, `Chinese` (default: `English`) |
|
|
@@ -579,6 +650,7 @@ Environment variables take precedence over the config file.
|
|
|
579
650
|
| `OCR_LLM_URL` | LLM API endpoint URL |
|
|
580
651
|
| `OCR_LLM_TOKEN` | API key / auth token |
|
|
581
652
|
| `OCR_LLM_AUTH_HEADER` | Anthropic auth header (`x-api-key` or `authorization`) |
|
|
653
|
+
| `OCR_LLM_EXTRA_HEADERS` | Comma-separated `key=value` HTTP headers |
|
|
582
654
|
| `OCR_LLM_MODEL` | Model name |
|
|
583
655
|
| `OCR_USE_ANTHROPIC` | `true` = Anthropic, `false` = OpenAI |
|
|
584
656
|
|
package/README.ru-RU.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
<a href="#supported-platforms"><img alt="Linux" src="https://img.shields.io/badge/Linux-supported-blue.svg" /></a>
|
|
25
25
|
<a href="#supported-agents"><img alt="Claude Code" src="https://img.shields.io/badge/Claude_Code-supported-blueviolet.svg" /></a>
|
|
26
26
|
<a href="#supported-agents"><img alt="Codex" src="https://img.shields.io/badge/Codex-supported-blueviolet.svg" /></a>
|
|
27
|
+
<a href="#supported-agents"><img alt="Cursor" src="https://img.shields.io/badge/Cursor-supported-blueviolet.svg" /></a>
|
|
27
28
|
</p>
|
|
28
29
|
<p align="center">
|
|
29
30
|
<a href="README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | Русский
|
|
@@ -162,6 +163,8 @@ sudo cp dist/opencodereview /usr/local/bin/ocr
|
|
|
162
163
|
|
|
163
164
|
**Перед запуском ревью необходимо настроить LLM.**
|
|
164
165
|
|
|
166
|
+
OCR управляет конфигурацией LLM через единую систему **провайдеров (Provider)**. Множество популярных провайдеров встроено, также поддерживается добавление пользовательских провайдеров для подключения к приватным развёртываниям или другим совместимым эндпоинтам. Конфигурация хранится в `~/.opencodereview/config.json`.
|
|
167
|
+
|
|
165
168
|
**Вариант A: интерактивная настройка (рекомендуется)**
|
|
166
169
|
|
|
167
170
|
```bash
|
|
@@ -171,26 +174,60 @@ ocr config model # Выбрать модель для активно
|
|
|
171
174
|
|
|
172
175
|

|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
Интерактивный UI проведёт вас через выбор провайдера, ввод API-ключа и настройку модели, после чего автоматически проверит подключение.
|
|
178
|
+
|
|
179
|
+
Выполните `ocr llm providers`, чтобы увидеть все встроенные провайдеры. У встроенных провайдеров предустановлены URL API и протокол — достаточно указать API-ключ. Если соответствующая переменная окружения уже задана (например, `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`), API-ключ будет подхвачен автоматически.
|
|
180
|
+
|
|
181
|
+
**Пользовательские провайдеры** также добавляются через интерактивный UI — потребуется указать имя, URL API, тип протокола (`anthropic` или `openai`) и API-ключ.
|
|
182
|
+
|
|
183
|
+
**Вариант B: настройка через CLI (для CI/CD и неинтерактивных сред)**
|
|
184
|
+
|
|
185
|
+
Используйте `ocr config set` для записи конфигурации провайдера напрямую — подходит для скриптов и автоматизации.
|
|
186
|
+
|
|
187
|
+
Использование встроенного провайдера:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ocr config set provider anthropic
|
|
191
|
+
ocr config set providers.anthropic.api_key your-api-key-here
|
|
192
|
+
ocr config set providers.anthropic.model claude-sonnet-4-6
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Использование пользовательского провайдера (приватный шлюз или другой совместимый эндпоинт):
|
|
175
196
|
|
|
176
197
|
```bash
|
|
177
|
-
ocr config set
|
|
178
|
-
ocr config set
|
|
179
|
-
ocr config set
|
|
180
|
-
ocr config set
|
|
198
|
+
ocr config set provider my-gateway
|
|
199
|
+
ocr config set custom_providers.my-gateway.url https://my-llm-gateway.internal/v1
|
|
200
|
+
ocr config set custom_providers.my-gateway.protocol openai
|
|
201
|
+
ocr config set custom_providers.my-gateway.api_key your-api-key-here
|
|
202
|
+
ocr config set custom_providers.my-gateway.model gpt-4o
|
|
181
203
|
```
|
|
182
204
|
|
|
183
|
-
|
|
205
|
+
> Для пользовательских провайдеров `url` и `protocol` обязательны. Поддерживаемые протоколы: `anthropic`, `openai`.
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
Дополнительные настройки:
|
|
208
|
+
|
|
209
|
+
| Ключ | Описание |
|
|
210
|
+
|------|----------|
|
|
211
|
+
| `providers.<name>.auth_header` | Заголовок аутентификации: `x-api-key` или `authorization` (по умолчанию: `authorization`) |
|
|
212
|
+
| `providers.<name>.extra_body` | Пользовательские JSON-поля, добавляемые в тело запроса |
|
|
213
|
+
| `providers.<name>.extra_headers` | Пары `key=value`, разделённые запятыми — пользовательские HTTP-заголовки для каждого запроса |
|
|
214
|
+
| `providers.<name>.models` | Список моделей для интерактивного выбора |
|
|
215
|
+
|
|
216
|
+
**`extra_headers` (необязательно):** добавляет пользовательские HTTP-заголовки к каждому запросу к LLM API. Полезно для прокси, шлюзов или корпоративных эндпоинтов, требующих дополнительных заголовков (например, ID организации, ID трассировки). Формат — пары `key=value`, разделённые запятыми. Значения с запятыми заключается в двойные кавычки:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ocr config set llm.extra_headers "X-Org-ID=org-123,X-Forwarded-For=\"1.2.3.4,5.6.7.8\""
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Дополнительные заголовки также можно задать для отдельного провайдера:
|
|
186
223
|
|
|
187
224
|
```bash
|
|
188
|
-
ocr config set
|
|
225
|
+
ocr config set providers.anthropic.extra_headers "X-Org-ID=org-123"
|
|
189
226
|
```
|
|
190
227
|
|
|
191
|
-
|
|
228
|
+
**Переменные окружения (наивысший приоритет)**
|
|
192
229
|
|
|
193
|
-
|
|
230
|
+
Переменные окружения переопределяют настройки из файла конфигурации — удобно в CI/CD, где запись в конфиг-файл затруднена:
|
|
194
231
|
|
|
195
232
|
```bash
|
|
196
233
|
export OCR_LLM_URL=https://api.anthropic.com/v1/messages
|
|
@@ -199,14 +236,12 @@ export OCR_LLM_MODEL=claude-opus-4-6
|
|
|
199
236
|
export OCR_USE_ANTHROPIC=true
|
|
200
237
|
```
|
|
201
238
|
|
|
202
|
-
|
|
239
|
+
Также совместим с переменными окружения Claude Code (`ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_MODEL`) и разбирает `~/.zshrc` / `~/.bashrc` в поисках соответствующих export'ов.
|
|
203
240
|
|
|
204
|
-
> **Примечание для пользователей CC-Switch**: если вы используете [CC-Switch](https://github.com/farion1231/cc-switch) с включённым [routing service](https://www.ccswitch.io/en/docs?section=proxy&item=service), можно указать в `
|
|
205
|
-
> -
|
|
206
|
-
> -
|
|
207
|
-
> - `
|
|
208
|
-
> - `llm.auth_token` может быть любым
|
|
209
|
-
> - настройки `extra_body` продолжают действовать
|
|
241
|
+
> **Примечание для пользователей CC-Switch**: если вы используете [CC-Switch](https://github.com/farion1231/cc-switch) с включённым [routing service](https://www.ccswitch.io/en/docs?section=proxy&item=service), можно указать в `url` провайдера адрес прокси CC-Switch без дополнительной настройки:
|
|
242
|
+
> - Для провайдера **Claude**: установите `providers.anthropic.url` в `http://127.0.0.1:15721`
|
|
243
|
+
> - Для провайдера **Codex**: установите `url` соответствующего провайдера в `http://127.0.0.1:15721/v1`
|
|
244
|
+
> - `api_key` может быть любым, настройки `extra_body` продолжают действовать
|
|
210
245
|
|
|
211
246
|
**2. Проверьте подключение**
|
|
212
247
|
|
|
@@ -294,7 +329,39 @@ ocr review --audience agent
|
|
|
294
329
|
|
|
295
330
|
Руководство на корейском: [`plugins/open-code-review/CODEX.ko-KR.md`](plugins/open-code-review/CODEX.ko-KR.md)
|
|
296
331
|
|
|
297
|
-
#### Вариант 4:
|
|
332
|
+
#### Вариант 4: установка как плагин Cursor
|
|
333
|
+
|
|
334
|
+
Для [Cursor](https://www.cursor.com/) установите плагин Open Code Review из этого репозитория:
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
cursor-plugin marketplace add alibaba/open-code-review
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
Или добавьте маркетплейс вручную. В Cursor откройте `/plugins`, найдите `Open Code Review` и установите.
|
|
341
|
+
|
|
342
|
+
Для локального чекаута или форка:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
cursor-plugin marketplace add .
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
После установки вызывайте плагин в Cursor:
|
|
349
|
+
|
|
350
|
+
```text
|
|
351
|
+
@Open Code Review review my current changes
|
|
352
|
+
@Open Code Review review this branch against main
|
|
353
|
+
@Open Code Review review and fix high-confidence issues
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Это зарегистрирует Cursor-скилл, запускающий локальный CLI OCR:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
ocr review --audience agent
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Эта интеграция не меняет внутренний LLM-бэкенд OCR. Самому OCR по-прежнему нужен установленный и настроенный CLI `ocr`, как описано в разделе про настройку CLI.
|
|
363
|
+
|
|
364
|
+
#### Вариант 5: просто скопировать файл команды
|
|
298
365
|
|
|
299
366
|
Для быстрой настройки без пакетных менеджеров достаточно скопировать файл команды, чтобы использовать slash-команду `/open-code-review` в Claude Code.
|
|
300
367
|
|
|
@@ -555,10 +622,14 @@ OCR разрешает правила ревью по цепочке приор
|
|
|
555
622
|
| `providers.<name>.model` | string | Имя модели провайдера |
|
|
556
623
|
| `providers.<name>.models` | array | Необязательный список моделей для интерактивного выбора |
|
|
557
624
|
| `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
|
|
625
|
+
| `providers.<name>.extra_body` | object | JSON-объект, добавляемый в каждое тело запроса |
|
|
626
|
+
| `providers.<name>.extra_headers` | string | HTTP-заголовки `key=value` через запятую |
|
|
558
627
|
| `custom_providers.<name>.*` | — | Те же поля, что и `providers.<name>.*`, включая необязательное `models` |
|
|
559
628
|
| `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
|
|
560
629
|
| `llm.auth_token` | string | `sk-xxxxxxx` |
|
|
561
630
|
| `llm.auth_header` | string | Только для Anthropic: `x-api-key` \| `authorization` |
|
|
631
|
+
| `llm.extra_body` | object | JSON-объект, добавляемый в каждое тело запроса |
|
|
632
|
+
| `llm.extra_headers` | string | HTTP-заголовки `key=value` через запятую |
|
|
562
633
|
| `llm.model` | string | `claude-opus-4-6` |
|
|
563
634
|
| `llm.use_anthropic` | boolean | `true` \| `false` |
|
|
564
635
|
| `language` | string | Любое название языка, например `English`, `Chinese` (по умолчанию: `English`) |
|
|
@@ -576,6 +647,7 @@ OCR разрешает правила ревью по цепочке приор
|
|
|
576
647
|
| `OCR_LLM_URL` | URL эндпоинта LLM API |
|
|
577
648
|
| `OCR_LLM_TOKEN` | API-ключ / токен авторизации |
|
|
578
649
|
| `OCR_LLM_AUTH_HEADER` | Заголовок авторизации Anthropic (`x-api-key` или `authorization`) |
|
|
650
|
+
| `OCR_LLM_EXTRA_HEADERS` | HTTP-заголовки `key=value` через запятую |
|
|
579
651
|
| `OCR_LLM_MODEL` | Имя модели |
|
|
580
652
|
| `OCR_USE_ANTHROPIC` | `true` = Anthropic, `false` = OpenAI |
|
|
581
653
|
|
package/README.zh-CN.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
<a href="#supported-platforms"><img alt="Linux" src="https://img.shields.io/badge/Linux-supported-blue.svg" /></a>
|
|
25
25
|
<a href="#supported-agents"><img alt="Claude Code" src="https://img.shields.io/badge/Claude_Code-supported-blueviolet.svg" /></a>
|
|
26
26
|
<a href="#supported-agents"><img alt="Codex" src="https://img.shields.io/badge/Codex-supported-blueviolet.svg" /></a>
|
|
27
|
+
<a href="#supported-agents"><img alt="Cursor" src="https://img.shields.io/badge/Cursor-supported-blueviolet.svg" /></a>
|
|
27
28
|
</p>
|
|
28
29
|
<p align="center">
|
|
29
30
|
<a href="README.md">English</a> | 简体中文 | <a href="README.ja-JP.md">日本語</a> | <a href="README.ko-KR.md">한국어</a> | <a href="README.ru-RU.md">Русский</a>
|
|
@@ -162,6 +163,8 @@ sudo cp dist/opencodereview /usr/local/bin/ocr
|
|
|
162
163
|
|
|
163
164
|
**在审查代码之前,必须先配置 LLM。**
|
|
164
165
|
|
|
166
|
+
OCR 通过**供应商(Provider)**模式统一管理 LLM 配置,内置了多种主流供应商,也支持添加自定义供应商以对接私有部署或其他兼容端点。配置存储于 `~/.opencodereview/config.json`。
|
|
167
|
+
|
|
165
168
|
**方式 A:交互式设置(推荐)**
|
|
166
169
|
|
|
167
170
|
```bash
|
|
@@ -171,26 +174,60 @@ ocr config model # 为当前供应商选择模型
|
|
|
171
174
|
|
|
172
175
|

|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
交互式界面会引导你完成供应商选择、API Key 输入和模型配置,完成后自动测试连通性。
|
|
178
|
+
|
|
179
|
+
运行 `ocr llm providers` 可查看所有内置供应商。内置供应商预设了 API 地址和协议,只需提供 API Key 即可使用。如果对应的环境变量已设置(如 `ANTHROPIC_API_KEY`、`OPENAI_API_KEY`),API Key 会自动读取,无需手动输入。
|
|
180
|
+
|
|
181
|
+
添加**自定义供应商**同样通过交互式界面完成 —— 需提供供应商名称、API 地址、协议类型(`anthropic` 或 `openai`)和 API Key。
|
|
182
|
+
|
|
183
|
+
**方式 B:命令行设置(适用于 CI/CD 等无交互环境)**
|
|
184
|
+
|
|
185
|
+
通过 `ocr config set` 命令直接写入供应商配置,适用于脚本和自动化场景。
|
|
186
|
+
|
|
187
|
+
使用内置供应商:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ocr config set provider anthropic
|
|
191
|
+
ocr config set providers.anthropic.api_key your-api-key-here
|
|
192
|
+
ocr config set providers.anthropic.model claude-sonnet-4-6
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
使用自定义供应商(对接私有网关或其他兼容端点):
|
|
175
196
|
|
|
176
197
|
```bash
|
|
177
|
-
ocr config set
|
|
178
|
-
ocr config set
|
|
179
|
-
ocr config set
|
|
180
|
-
ocr config set
|
|
198
|
+
ocr config set provider my-gateway
|
|
199
|
+
ocr config set custom_providers.my-gateway.url https://my-llm-gateway.internal/v1
|
|
200
|
+
ocr config set custom_providers.my-gateway.protocol openai
|
|
201
|
+
ocr config set custom_providers.my-gateway.api_key your-api-key-here
|
|
202
|
+
ocr config set custom_providers.my-gateway.model gpt-4o
|
|
181
203
|
```
|
|
182
204
|
|
|
183
|
-
|
|
205
|
+
> 自定义供应商的 `url` 和 `protocol` 为必填项。`protocol` 支持 `anthropic` 和 `openai` 两种。
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
可选配置项:
|
|
208
|
+
|
|
209
|
+
| 键 | 描述 |
|
|
210
|
+
|----|------|
|
|
211
|
+
| `providers.<name>.auth_header` | 认证头:`x-api-key` 或 `authorization`(默认 `authorization`) |
|
|
212
|
+
| `providers.<name>.extra_body` | 合并到请求体的自定义 JSON 字段 |
|
|
213
|
+
| `providers.<name>.extra_headers` | 逗号分隔的 `key=value` 键值对,为每个请求添加自定义 HTTP 头 |
|
|
214
|
+
| `providers.<name>.models` | 用于交互式选择的模型列表 |
|
|
215
|
+
|
|
216
|
+
**`extra_headers`(可选):** 为每个 LLM API 请求添加自定义 HTTP 头。适用于代理、网关或需要额外头的企业端点(例如组织 ID、链路追踪 ID)。格式为逗号分隔的 `key=value` 键值对。包含逗号的值请用双引号包裹:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ocr config set llm.extra_headers "X-Org-ID=org-123,X-Forwarded-For=\"1.2.3.4,5.6.7.8\""
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
也可以按供应商单独设置额外头:
|
|
186
223
|
|
|
187
224
|
```bash
|
|
188
|
-
ocr config set
|
|
225
|
+
ocr config set providers.anthropic.extra_headers "X-Org-ID=org-123"
|
|
189
226
|
```
|
|
190
227
|
|
|
191
|
-
|
|
228
|
+
**环境变量(优先级最高)**
|
|
192
229
|
|
|
193
|
-
|
|
230
|
+
环境变量会覆盖配置文件中的设置,适用于 CI/CD 场景中不便写入配置文件的情况:
|
|
194
231
|
|
|
195
232
|
```bash
|
|
196
233
|
export OCR_LLM_URL=https://api.anthropic.com/v1/messages
|
|
@@ -199,14 +236,12 @@ export OCR_LLM_MODEL=claude-opus-4-6
|
|
|
199
236
|
export OCR_USE_ANTHROPIC=true
|
|
200
237
|
```
|
|
201
238
|
|
|
202
|
-
|
|
239
|
+
同时兼容 Claude Code 环境变量(`ANTHROPIC_BASE_URL`、`ANTHROPIC_AUTH_TOKEN`、`ANTHROPIC_MODEL`),并解析 `~/.zshrc` / `~/.bashrc` 中的相关导出。
|
|
203
240
|
|
|
204
|
-
> **CC-Switch 用户特别提醒**:如果你使用 [CC-Switch](https://github.com/farion1231/cc-switch) 并开启了[路由服务](https://www.ccswitch.io/zh/docs?section=proxy&item=service)
|
|
205
|
-
> -
|
|
206
|
-
> -
|
|
207
|
-
> - `
|
|
208
|
-
> - `llm.auth_token` 可以设置成任意值
|
|
209
|
-
> - `extra_body` 设置依然生效
|
|
241
|
+
> **CC-Switch 用户特别提醒**:如果你使用 [CC-Switch](https://github.com/farion1231/cc-switch) 并开启了[路由服务](https://www.ccswitch.io/zh/docs?section=proxy&item=service),可以将供应商的 `url` 配置成 CC-Switch 启动的代理地址,无需额外配置:
|
|
242
|
+
> - 路由 **Claude** 供应商:`providers.anthropic.url` 设为 `http://127.0.0.1:15721`
|
|
243
|
+
> - 路由 **Codex** 供应商:对应供应商的 `url` 设为 `http://127.0.0.1:15721/v1`
|
|
244
|
+
> - `api_key` 可设置为任意值,`extra_body` 设置依然生效
|
|
210
245
|
|
|
211
246
|
**2. 测试连通性**
|
|
212
247
|
|
|
@@ -294,7 +329,39 @@ ocr review --audience agent
|
|
|
294
329
|
|
|
295
330
|
韩文指南:[`plugins/open-code-review/CODEX.ko-KR.md`](plugins/open-code-review/CODEX.ko-KR.md)
|
|
296
331
|
|
|
297
|
-
####
|
|
332
|
+
#### 方式四:作为 Cursor Plugin 安装
|
|
333
|
+
|
|
334
|
+
对于 [Cursor](https://www.cursor.com/),可以从此仓库安装 Open Code Review plugin:
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
cursor-plugin marketplace add alibaba/open-code-review
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
也可以手动添加 marketplace。在 Cursor 中打开 `/plugins`,搜索 `Open Code Review` 并安装。
|
|
341
|
+
|
|
342
|
+
对于本地 checkout 或 fork:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
cursor-plugin marketplace add .
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
安装后,在 Cursor 中调用:
|
|
349
|
+
|
|
350
|
+
```text
|
|
351
|
+
@Open Code Review review my current changes
|
|
352
|
+
@Open Code Review review this branch against main
|
|
353
|
+
@Open Code Review review and fix high-confidence issues
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
这会注册一个 Cursor skill,用于运行本地 OCR CLI:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
ocr review --audience agent
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
此集成不会改变 OCR 的内部 LLM backend。OCR 本身仍需要按照 CLI setup 部分安装并配置 `ocr` CLI。
|
|
363
|
+
|
|
364
|
+
#### 方式五:直接复制命令文件
|
|
298
365
|
|
|
299
366
|
如果不想使用任何包管理器,可以直接复制命令文件,在 Claude Code 中使用 `/open-code-review` 斜杠命令。
|
|
300
367
|
|
|
@@ -543,10 +610,14 @@ OCR 通过四层优先级链解析评审规则。每层采用首次匹配原则
|
|
|
543
610
|
| `providers.<name>.model` | string | 供应商模型名称 |
|
|
544
611
|
| `providers.<name>.models` | array | 用于交互式选择的可选供应商模型列表 |
|
|
545
612
|
| `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
|
|
613
|
+
| `providers.<name>.extra_body` | object | 合并到每个请求体的 JSON 对象 |
|
|
614
|
+
| `providers.<name>.extra_headers` | string | 逗号分隔的 `key=value` HTTP 头 |
|
|
546
615
|
| `custom_providers.<name>.*` | — | 与 `providers.<name>.*` 相同的字段,包括可选的 `models` |
|
|
547
616
|
| `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
|
|
548
617
|
| `llm.auth_token` | string | `sk-xxxxxxx` |
|
|
549
618
|
| `llm.auth_header` | string | 仅 Anthropic:`x-api-key` \| `authorization` |
|
|
619
|
+
| `llm.extra_body` | object | 合并到每个请求体的 JSON 对象 |
|
|
620
|
+
| `llm.extra_headers` | string | 逗号分隔的 `key=value` HTTP 头 |
|
|
550
621
|
| `llm.model` | string | `claude-opus-4-6` |
|
|
551
622
|
| `llm.use_anthropic` | boolean | `true` \| `false` |
|
|
552
623
|
| `language` | string | 任意语言名称,例如 `English`、`Chinese`(默认:`English`) |
|
|
@@ -564,6 +635,7 @@ OCR 通过四层优先级链解析评审规则。每层采用首次匹配原则
|
|
|
564
635
|
| `OCR_LLM_URL` | LLM API 端点 URL |
|
|
565
636
|
| `OCR_LLM_TOKEN` | API 密钥 / 认证令牌 |
|
|
566
637
|
| `OCR_LLM_AUTH_HEADER` | Anthropic 认证头(`x-api-key` 或 `authorization`) |
|
|
638
|
+
| `OCR_LLM_EXTRA_HEADERS` | 逗号分隔的 `key=value` HTTP 头 |
|
|
567
639
|
| `OCR_LLM_MODEL` | 模型名称 |
|
|
568
640
|
| `OCR_USE_ANTHROPIC` | `true` = Anthropic,`false` = OpenAI |
|
|
569
641
|
|
package/imgs/providers.jpg
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alibaba-group/open-code-review",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.3",
|
|
4
4
|
"description": "OpenCodeReview CLI — AI-powered code review tool",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ocr": "bin/ocr.js"
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"checksumPattern": "https://github.com/alibaba/open-code-review/releases/download/v{version}/sha256sum.txt"
|
|
29
29
|
},
|
|
30
30
|
"optionalDependencies": {
|
|
31
|
-
"@alibaba-group/ocr-darwin-arm64": "1.6.
|
|
32
|
-
"@alibaba-group/ocr-darwin-x64": "1.6.
|
|
33
|
-
"@alibaba-group/ocr-linux-arm64": "1.6.
|
|
34
|
-
"@alibaba-group/ocr-linux-x64": "1.6.
|
|
35
|
-
"@alibaba-group/ocr-win32-arm64": "1.6.
|
|
36
|
-
"@alibaba-group/ocr-win32-x64": "1.6.
|
|
31
|
+
"@alibaba-group/ocr-darwin-arm64": "1.6.3",
|
|
32
|
+
"@alibaba-group/ocr-darwin-x64": "1.6.3",
|
|
33
|
+
"@alibaba-group/ocr-linux-arm64": "1.6.3",
|
|
34
|
+
"@alibaba-group/ocr-linux-x64": "1.6.3",
|
|
35
|
+
"@alibaba-group/ocr-win32-arm64": "1.6.3",
|
|
36
|
+
"@alibaba-group/ocr-win32-x64": "1.6.3"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=14"
|