CODO – VSCode 拡張(薄いクライアント)
VSCode のサイドバーに Claude Code 風のチャットパネルを出し、クラウドの CODO エージェント(計画→意味検索→編集→自動テスト→自己修復→差分)に接続します。
頭脳はクラウド、拡張は「目と手」:開いているワークスペースを送り、返ってきた差分をローカルに適用します。
仕組み
- 初回送信時に、開いているワークスペースを zip 化(
codo.excludeGlobs 除外・codo.maxUploadMB 上限)して CODO へ送信 → サーバ側でリポジトリ取り込み+意味索引構築
- 以降の会話は同じ
conversationId でサーバのワークスペースを再利用(再送信不要)
- CODO が編集・サンドボックスでテスト →
unified patch を返す
- 「変更を適用」でローカルへ書き込み → ソース管理(SCM)で差分レビュー
すぐ試す(推奨・公開もパッケージ化も不要)
cd codo-vscode && npm install && npm run compile
- VSCode で
codo-vscode フォルダを開き、F5(「Run CODO Extension」)→ 拡張開発ホストが起動
- 起動した別ウィンドウで、対象のリポジトリフォルダを開いて使う
.vsix を作って通常インストール(アカウント不要・推奨)
ストア版と同じく「拡張機能一覧に常駐・自動有効化」されます。
cd codo-vscode
npm install
npm run vsix # codo-agent.vsix を生成 (vsce不要・Node18でもOK)
生成された codo-agent.vsix を VSCode で:
拡張機能 パネル → 右上「…」→ VSIX からのインストール…(または code --install-extension codo-agent.vsix)。
npm run package(公式 vsce)は Node 20+ が必要。npm run vsix(自前パッケージャ)は Node 版に依存せず動きます。
VS Code Marketplace へ公開(=拡張ストアからインストール)
ストア検索でインストールできるようにするには、無料の発行者アカウントが必要です:
- https://marketplace.visualstudio.com/manage で Publisher を作成(Microsoftアカウント・無料)。
package.json の "publisher" をその ID に合わせる
- Azure DevOps で PAT(Marketplace: Manage スコープ)を発行
- 公開:
npx @vscode/vsce publish -p <PAT>(または manage ページに codo-agent.vsix を手動アップロード)
Apple/Google と違い無料・審査の待ち行列なし(自動検証のみ)。発行者IDとPATを用意いただければ公開コマンドまで通します。
使い方
- アクティビティバーの CODO アイコン → チャットを開く
- サインイン(Web版と同じメール/パスワード)。未ログインでは操作できません。トークンは自動更新され、RefreshToken/IdToken は SecretStorage に安全保管。Web版と同一アカウントに紐づき同期します
- 依頼を入力して送信(Ctrl/Cmd+Enter でも送信)。進捗・テスト結果・変更ファイルが表示される
- ⚙メニューの「直近の変更を適用」でローカルへ反映 → SCM で確認
- 📎添付で重点対象ファイルを指定、Modesで Agent(編集可)/ Ask(読み取り)を切替
- エディタで選択 → 右クリック「CODO: 選択範囲を送って質問」も可
コンポーザ(Web版と同じ構成)
📎添付 ・ ⚙設定(新規会話/サインイン/サインアウト/変更を適用) … Modes ・ ➤送信
設定
codo.endpoint:CODO ストリーミング Function URL
codo.maxUploadMB:ワークスペース送信上限(既定 20MB)
codo.excludeGlobs:送信除外パターン
認証(Web版と同期)
- VSCode内で Cognito にサインイン(Web版と同じユーザープール/クライアント)。
USER_PASSWORD_AUTH で IdToken/RefreshToken を取得し、期限切れは RefreshToken で自動更新。未ログインでは使用不可
- 設定:
codo.cognitoRegion / codo.cognitoClientId(既定でWeb版に一致)
既知の制限(v1)
- MFA有効アカウントは未対応(チャレンジ時はエラー)
- 大規模変更でパッチが長い場合は適用が部分的になることがある(Web版の「zip でダウンロード」が確実)
- ローカル編集をサーバへ反映するには「新規会話」で再送信(差分同期は今後)
| |