概要
VS CodeのCline拡張機能とZ.ai GLM-4.7を直接契約して連携させる方法について記載する。
Z.ai (智譜AI) はGLM-4.7をコーディングツール向けにサブスクリプション形式で提供しており、月額$3から利用できる。
GLM Coding Planの主な特徴を以下に示す。
- 5時間ごとにクォータがリセットされる
- Claude Code、Cline、OpenCode、Roo Code、Kilo Code等で利用可能
- Vision Understanding、Web Search MCP、Web Reader MCPが利用可能
- GLM-4.7は200Kトークンのコンテキストウィンドウをサポート
- SWE-bench 73.8%、LiveCodeBench V6でClaude 4.5 Sonnetを上回る性能
| プラン | 月額料金 | プロンプト数/5時間 | 特徴 |
|---|---|---|---|
| GLM Coding Lite | $3 (初月半額) | 120プロンプト | 一般的な開発用途向け |
| GLM Coding Pro | $15 (初月半額) | 600プロンプト | 高頻度利用向け |
Clineの機能体系はClaude Codeとは異なる用語を使用する。
| Claude Code | Cline | 説明 |
|---|---|---|
| サブエージェント | MCP Server / MCP Tools | 特定タスクに特化したツール |
| スキル | Custom Instructions | グローバルな指示設定 |
| ルール | .clinerules | プロジェクト固有の規約 |
Z.ai GLM Coding Planの契約手順
ステップ 1 : Z.aiアカウントの作成
Z.aiのサブスクリプションページにアクセスしてアカウントを作成する。
紹介コード付きのURLを使用すると、追加割引 (10%から20%OFF) が適用される場合がある。
アカウント作成手順を以下に示す。
- [Sign Up] または [Sign In] を選択する。
- メールアドレスまたはGoogleアカウント等でアカウントを作成する。
- [GLM Coding Lite] ($3/月) または [GLM Coding Pro] ($15/月) を選択する。
- クレジットカード情報を入力して契約を完了する。
ステップ 2 : APIキーの取得
Z.aiダッシュボードにアクセスしてAPIキーを取得する。
APIキー取得手順を以下に示す。
- ダッシュボードにログインする。
- メニューから [API Keys] セクションを開く。
- [+ Create a new API key] を選択する。
- 識別用の名前 (例: Cline用) を入力する。
- 生成されたAPIキーをコピーして安全な場所に保存する。
- APIキーは1度しか表示されないため、必ず保存すること。
ClineでZ.aiを設定する手順
ステップ 1 : Cline拡張機能のインストール
VS CodeにCline拡張機能をインストールする。
- VS Codeを起動して、左サイドバーの拡張機能アイコンを選択する。
- 検索バーに Cline と入力する。
- [Cline] を見つけて [Install] を選択する。
ステップ 2 : Z.ai API Providerの設定
ClineにZ.aiのAPIキーを設定する。
- VS Code左サイドバーに追加されたClineアイコンを選択する。
- 右上の歯車アイコン (Settings) を選択する。
- [API Provider] ドロップダウンメニューから [Z AI] を選択する。
- [Entrypoint] ドロップダウンで以下のいずれかを選択する。
- International Standard (api.z.ai)
- 海外 (日本含む) からのアクセス用
- China Standard (open.bigmodel.cn)
- 中国国内からのアクセス用
- International Standard (api.z.ai)
- [Z AI API Key] フィールドにAPIキーを貼り付ける。
- [Model] ドロップダウンから [glm-4.7] を選択する。
ステップ 3 : Coding Plan用エンドポイントに関する注意点
ClineのZ.ai設定画面にGLM Coding Plan専用のエンドポイント (/api/coding/paas/v4) が選択肢として表示されない場合がある。
対処法を以下に示す。
方法A : 標準APIエンドポイントをそのまま使用
Coding Planに登録したAPIキーを使用すれば、自動的にサブスクリプションのクォータが適用される場合がある。
まずはこの方法で試すことを推奨する。
方法B : OpenAI Compatible設定を使用
Coding Planのエンドポイントを明示的に指定する場合は、以下に示す設定を行う。
API Provider: OpenAI Compatible Base URL: https://api.z.ai/api/coding/paas/v4 API Key: [Z.ai APIキー] Model ID: glm-4.7
方法C : Clineの最新版を確認
Clineは頻繁に更新されている。
拡張機能を最新版に更新することで、Coding Plan用のエンドポイントがサポートされている可能性がある。
ルール (.clinerules) の作成手順
ルールはプロジェクト固有の指示をClineに与えるもので、コーディング規約やプロジェクト構造の強制に使用する。
単一ファイル形式での作成
プロジェクトのルートディレクトリに .clinerules ファイルを作成する。
vi .clinerules
例えば、組み込み・デスクトップアプリ開発向けの.clinerulesファイルの記述例を以下に示す。
# 言語とコミュニケーション
- すべての応答とコメントは日本語で記述すること
- コードのコメントは日本語でわかりやすく書くこと
- 技術用語は必要に応じて英語を併記すること
# コーディング規約 (C++)
- C++17以降の規格に準拠すること
- スマートポインタ (std::unique_ptr, std::shared_ptr) を優先的に使用
- 生ポインタは所有権を持たない観察用途のみで使用
- 例外処理よりもエラーコード返却を優先 (組み込み向け)
# 命名規則
- ローカル変数: camelCase (例: localVariable)
- メンバ変数: m_付きcamelCase (例: m_memberVariable)
- 定数・マクロ: ALL_CAPS (例: MAX_BUFFER_SIZE)
- クラス名: PascalCase (例: DataProcessor)
- 名前空間: lowercase (例: myproject::utils)
# Qt開発固有ルール
- Qt6を標準として使用すること
- シグナル・スロット接続は新しい構文を使用:
connect(sender, &Sender::signal, receiver, &Receiver::slot);
- QObjectの親子関係を活用し、メモリ管理を簡素化すること
# 組み込み開発固有ルール
- MSP430/MSP432向けコードではヒープ使用を最小限に
- 割り込みハンドラは短く保つこと
- volatile修飾子を適切に使用すること
# ドキュメント
- 関数にはDoxygenスタイルのコメントを付けること
- READMEやドキュメントは私が指示するまで編集しないこと
# テスト
- コード生成後は単体テストコードも生成すること
- テストフレームワークはGoogle Testを使用すること
# ファイル操作
- 編集するファイルは提案のみ行い、確認を求めること
- ランダムにファイルを開かず、編集対象を明示すること
フォルダ形式での管理
複数のルールファイルを使い分ける場合は、.clinerules/ フォルダを作成する。
プロジェクトルート/
├── .clinerules/
│ ├── general.md # 全般的なルール
│ ├── cpp-rules.md # C++固有のルール
│ ├── qt-rules.md # Qt固有のルール
│ ├── embedded-rules.md # 組み込み開発ルール
│ ├── fpga-rules.md # FPGA/Verilogルール
│ └── documentation.md # 仕様書作成ルール
└── src/
└── ...
embedded-rules.mdファイルの記述例を以下に示す。
# 組み込み開発ルール
## 対象マイコン
- TI: MSP430, MSP432, MSPM0
- ATMEL: ATmega168, ATmega328, ATmega1284
## メモリ管理
- 動的メモリ確保 (malloc/new) は原則禁止
- スタックサイズを意識した変数配置
- 大きな配列はstatic修飾子を付けてBSSセクションに配置
## 割り込み処理
- 割り込みハンドラは最小限の処理のみ
- フラグを立てて、メインループで処理するパターンを推奨
- volatile修飾子を忘れずに付与
## 低消費電力設計
- 不要なペリフェラルはクロック停止
- 適切なスリープモードの使用
- ウェイクアップ条件の明確化
## レジスタ操作
- ビットフィールド操作にはマクロを使用
- マジックナンバーは定義済み定数で置き換え
fpga-rules.mdファイルの記述例を以下に示す。
# FPGA/Verilog-HDL開発ルール
## 対象デバイス
- Xilinx FPGA (Vivado対応)
## コーディング規約
- 同期設計を基本とする
- 非同期リセットは避け、同期リセットを使用
- always_ff / always_comb を使用 (SystemVerilog)
## 命名規則
- 信号名: snake_case (例: data_valid)
- パラメータ: ALL_CAPS (例: DATA_WIDTH)
- モジュール名: PascalCase (例: DataProcessor)
- クロック信号: clk_xxx
- リセット信号: rst_n (負論理)
## テストベンチ
- 各モジュールにテストベンチを作成
- 期待値との自動比較を実装
- カバレッジを意識した入力パターン
## タイミング制約
- セットアップ/ホールド違反に注意
- クロックドメイン間はCDC対策を実施
ルールの有効化と切り替え
Clineはプロジェクトを開くと自動的に .clinerules ファイルを読み込む。
Cline v3.0以降では、各ルールファイルの有効 / 無効をUIから切り替えることができる。
- ClineのサイドパネルでRulesアイコンを選択する。
- 現在有効なルールの一覧が表示される。
- 各ルールファイルの横にあるトグルで有効 / 無効を切り替える。
スキル (Custom Instructions) の作成手順
スキルはVS Code全体に適用されるグローバルな指示で、個人の作業スタイルや専門分野を反映させる。
Custom Instructionsの設定画面を開く
- VS CodeでサイドバーのClineアイコンを選択する。
- 歯車アイコン (Settings) を選択する。
- [Custom Instructions] のテキストエリアを探す。
Custom Instructionsの記述例
組み込み・デスクトップアプリケーション開発向けのCustom Instructions記述例を以下に示す。
# 基本指示
常に日本語で応答してください。
技術用語は必要に応じて英語を併記してください。
# 私のバックグラウンド
- 組み込みシステム開発 (TI MSP430/MSP432/MSPM0、ATMEL ATmega) の実務経験あり
- デスクトップアプリケーション開発 (C#/WindowsForms、C#/Avalonia UI、C#/Photino.Blazor、QML/C++、Qt Widgets/C++、Rust/Tauri/React) を行う
- FPGA開発 (Xilinx、Verilog-HDL) の知識がある
- アナログ/デジタル混載回路設計を行う
- KiCADでの基板設計を行う
- MATLABでのスクリプト開発を行う
# コード生成時の注意
- 組み込みシステムのコードでは、メモリ使用量を最小限に抑えること
- リソース制約のあるターゲット (MSP430等) ではヒープ使用を避けること
- Qt開発ではQt6を標準として使用すること
- エラーハンドリングを必ず含めること
- コードには日本語でコメントを付けること
# 仕様書作成時の注意
- 画面定義書、機能概要書はEXCEL向けの構造化データで出力
- 画面遷移図、DFD、フローチャート、ER図はDraw.io形式を提案
- シーケンス図、状態遷移図、タイミングチャートはMermaid記法で出力
- 単体試験書はEXCEL向けの構造化データで出力
# 品質基準
- 生成するコードには必ずコメントを付けること
- 複雑なロジックには図解やダイアグラムの提案をすること
- 変数名・関数名は意味のある名前を付けること
用途別のCustom Instructionsテンプレート
仕様書作成支援向け
# 仕様書作成モード
- EXCEL形式を想定した構造化データを提供すること
- Draw.io XML、Mermaid記法に対応すること
- テーブル定義はデータ型、制約、インデックスを漏れなく記載すること
# 出力フォーマット
- シーケンス図/タイミングチャート: Mermaid
- フローチャート/ER図: Draw.io互換
- データフロー図: 入出力型情報を含む
ハードウェア開発向け
# 回路設計・基板設計モード
- KiCADシンボル/フットプリント命名規則に準拠すること
- デザインルールはJLCPCB等の製造制約を考慮すること
- 部品選定では入手性と代替品情報を提供すること
# FPGA開発
- Verilog-HDLはXilinxコーディングガイドラインに準拠すること
- テストベンチを必須で生成すること
- タイミング制約の考慮事項を明記すること
サブエージェント相当機能の実現方法
例えば、Claude Codeにはサブエージェントという機能があり、特定のタスクに特化したAIアシスタントを定義して親エージェントと子エージェントに分けて推論させることができる。
しかし、Clineにはネイティブでこれと同等の機能は存在しない。
Clineでサブエージェント相当の機能を実現するには、sub-agents-mcp等のMCPサーバを利用する方法がある。
Claude Codeのサブエージェントとは
Claude Codeのサブエージェントは、YAMLフロントマターを持つMarkdownファイルとして定義され、以下の特徴を持つ。
- 独立したコンテキストウィンドウ (各エージェントが1Mトークン) を持つ。
- カスタムシステムプロンプトによる専門化が可能
- 特定のツール (Read、Write、Edit、Bash等) へのアクセス制限が可能
- 異なるモデル (Opus、Sonnet、Haiku等) の使用が可能
- .claude/agents/ または ~/.claude/agents/ に配置される。
MCPサーバとは
MCP (Model Context Protocol) サーバは、外部APIやサービスとの連携を提供するプロトコルベースの拡張機能である。
これはClineに限らず、Claude Code等でも使用される汎用的な機能拡張の仕組みである。
MCPサーバの主な用途を以下に示す。
- 外部APIの呼び出し (GitHub、Jira、AWS等)
- ファイル処理の自動化
- データベースへのアクセス
- 特定ドメインの知識検索
Clineでサブエージェント相当機能を実現する方法
Clineでサブエージェント相当の機能を実現するには、sub-agents-mcpというMCPサーバを利用する。
このMCPサーバを使用することで、Claude Code形式のサブエージェント定義ファイルをClineでも活用できるようになる。
ステップ 1 : エージェント定義フォルダの作成
エージェント定義ファイルを格納するフォルダを作成する。
mkdir -p ~/cline-agents
ステップ 2 : エージェント定義ファイルの作成
エージェント定義ファイルはMarkdown形式で作成する。
code-reviewer.md (コードレビュー用) の記述例を以下に示す。
# Code Reviewer
あなたはコードレビューに特化したAIアシスタントです。
## 責務
- バグや潜在的な問題の発見
- コード品質の改善提案
- セキュリティ上の脆弱性チェック
- パフォーマンス最適化の提案
## レビュー観点
- C++コードではメモリリーク、ダングリングポインタに注意
- Qtコードではシグナル・スロットの接続漏れを確認
- 組み込みコードではスタックオーバーフローリスクを確認
- 例外処理・エラーハンドリングの有無を確認
- コーディング規約への準拠を確認
## 出力フォーマット
レビュー結果は以下の形式で出力:
1. 重大な問題 (修正必須)
2. 中程度の問題 (修正推奨)
3. 軽微な問題 (改善提案)
4. 良い点 (コメント)
spec-writer.md (仕様書作成用) の記述例を以下に示す。
# 仕様書作成エージェント
あなたはソースコードから技術仕様書を作成するエキスパートです。
## 出力対象
- 機能概要書
- 画面定義書
- インターフェース仕様書
- データベーステーブル定義書
## 出力フォーマット
- EXCEL向け: CSV形式またはタブ区切りで構造化
- Draw.io向け: XMLまたはフローチャート記述
- Mermaid向け: シーケンス図、状態遷移図
## 抽出する情報
1. 関数一覧: 関数名、引数、戻り値、概要
2. クラス構造: クラス名、メンバ変数、メソッド
3. データフロー: 入力、処理、出力
4. エラー処理: エラーコード、対処方法
circuit-analyzer.md (回路解析用) の記述例を以下に示す。
# 回路解析エージェント
あなたは電子回路設計のエキスパートです。
## 専門分野
- アナログ/デジタル混載回路
- 電源回路設計
- EMC対策
- 熱設計
## 解析項目
1. 回路図のレビュー
2. 部品選定の妥当性確認
3. 熱設計の検討
4. ノイズ対策の提案
## 出力フォーマット
- KiCADシンボル/フットプリント名の提案
- 代替部品リスト (LCSC番号付き)
- 設計上の注意点リスト
- BOM (部品表) の雛形
ステップ 3 : sub-agents-mcp の設定
VS Codeの settings.json に sub-agents-mcp の設定を追加する。
- VS Codeで [Ctrl] + [Shift] + [P]キーを同時押下してコマンドパレットを開く。
- [Preferences: Open Settings (JSON)] を選択する。
- 以下の設定を追加する。
{ "cline.mcpServers": { "sub-agents": { "command": "npx", "args": ["-y", "sub-agents-mcp"], "env": { "AGENTS_DIR": "/home/yourname/cline-agents", "AGENT_TYPE": "cursor", "EXECUTION_TIMEOUT_MS": "600000" } } } }
環境変数の説明を以下に示す。
| 環境変数 | 説明 |
|---|---|
| AGENTS_DIR | エージェント定義ファイルを格納するディレクトリのパス |
| AGENT_TYPE | エージェントタイプの指定 (cursor を推奨) |
| EXECUTION_TIMEOUT_MS | 実行タイムアウト時間 (ミリ秒) |
ステップ 4 : サブエージェントの呼び出し
Clineで以下に示すように指示することで、定義したエージェントを呼び出すことができる。
code-reviewerサブエージェントで src/main.cpp をレビューして
spec-writerエージェントを使用して、このプロジェクトの機能概要書を作成して
MCPサーバの簡単な追加方法
Clineには、チャットで指示するだけでMCPサーバを自動作成・インストールする機能がある。
GitHub連携ツールの追加例を以下に示す。
add a tool that fetches GitHub issues and creates pull requests
ファイル変換ツールの追加例を以下に示す。
add a tool that converts markdown files to structured data for Excel
Clineはこの指示を受けて、適切なMCPサーバの作成、インストール、設定を自動で行う。
Claude CodeとClineの機能比較
Claude CodeとClineの機能の対応関係を以下に示す。
| Claude Code | Cline | 備考 |
|---|---|---|
| サブエージェント | ネイティブでは同等機能なし | sub-agents-mcp等のMCPサーバを使用して類似機能を実現可能 |
| スキル | Custom Instructions | 概ね同等の機能 |
| ルール | .clinerules | 概ね同等の機能 |
| MCP Server | MCP Server | 同等の機能 |
Z.ai MCPサーバの活用
Z.ai GLM Coding Planには、以下のMCPサーバが付属している。
| MCPサーバ | 機能 |
|---|---|
| Vision Understanding MCP | 画像・スクリーンショットの解析 |
| Web Search MCP | リアルタイムWeb検索 |
| Web Reader MCP | Webページの内容取得・解析 |
これらはCoding Planに含まれているため、追加料金なしで利用できる。
構成例
プロジェクトの推奨構成を以下に示す。
プロジェクト/
├── .clinerules/
│ ├── general.md # 日本語対応、基本ルール
│ ├── cpp-qt-rules.md # C++/Qt開発ルール
│ ├── embedded-rules.md # 組み込み開発ルール
│ ├── fpga-rules.md # FPGA/Verilog開発ルール
│ └── documentation.md # 仕様書作成ルール
│
├── ~/cline-agents/ # サブエージェント相当の定義ファイル (sub-agents-mcp用)
│ ├── code-reviewer.md # コードレビュー用エージェント
│ ├── spec-writer.md # 仕様書作成用エージェント
│ ├── test-generator.md # テスト生成用エージェント
│ └── circuit-analyzer.md # 回路解析用エージェント
│
└── .vscode/
└── settings.json # Cline設定 (API Provider、Model、Custom Instructions、MCP Servers)
| 機能 | 用途 | 保存場所 |
|---|---|---|
| ルール (.clinerules) | プロジェクト固有規約・制約 | プロジェクトルート |
| スキル (Custom Instructions) | 個人専門性・作業スタイル | VS Code設定 |
| サブエージェント相当 (sub-agents-mcp) | 特定タスクに特化したAIアシスタント | ~/cline-agents/ |
| MCPサーバ | 外部API連携・機能拡張 | VS Code settings.json |
推奨運用フローを以下に示す。
- Custom Instructionsでグローバル専門性を定義する。(1度だけの設定)
- プロジェクトごとの .clinerules を管理する。(Git管理可能)
- 必要に応じて sub-agents-mcp を設定し、特定タスク向けのエージェント定義ファイルを作成する。
- 外部サービス連携が必要な場合は、適切なMCPサーバを追加する。
※注意
sub-agents-mcpを使用したサブエージェント相当機能は、Claude Codeのネイティブサブエージェント機能と比較して以下の点が異なる。
- Claude Codeのサブエージェントは各エージェントが独立した200Kトークンのコンテキストウィンドウを持つが、sub-agents-mcpではこの機能は限定的である
- Claude Codeではツールアクセス制限 (Read、Write、Edit、Bash等) を細かく設定できるが、sub-agents-mcpでは同等の制御は困難である
- Claude Codeではサブエージェントごとに異なるモデル (Opus、Sonnet、Haiku等) を指定できるが、sub-agents-mcpでは対応状況が異なる
本格的なサブエージェント機能が必要な場合は、Claude Codeの使用を検討することを推奨する。
トラブルシューティング
Coding Planのクォータが消費されない / 従量課金されている
エンドポイントが正しく設定されていない可能性がある。
確認事項を以下に示す。
- Clineを最新版に更新する。
- Z.aiダッシュボードでCoding Planの契約状況を確認する。
- 必要に応じてOpenAI Compatible設定でエンドポイントを明示的に指定する。
APIキーが無効と表示される
確認事項を以下に示す。
- APIキーをコピーする際に余分な空白が含まれていないか確認する。
- APIキーがCoding Plan用のものか確認する。(通常API用とは異なる場合がある)
- Z.aiダッシュボードでAPIキーのステータスを確認する。
日本語の応答にならない
Custom Instructionsに「常に日本語で応答してください」を追加、あるいは、.clinerulesファイルに同様の指示を記載する。
サブエージェントが動作しない
設定ファイルの確認
サブエージェントの定義ファイルが正しい場所に配置されているか確認する。
- プロジェクトレベル
- .claude/agents/
- ユーザレベル
- ~/.claude/agents/
MCPサーバの確認
VS Codeのsettings.jsonファイルでMCPサーバが正しく設定されているか確認する。
{
"cline.mcpServers": {
"sub-agents": {
"command": "npx",
"args": ["-y", "sub-agents-mcp"],
"env": {
"AGENTS_DIR": "/path/to/your/agents"
}
}
}
}
VS Codeの再起動
設定を変更した後、VS Codeを再起動することで設定が反映される。
参考リンク
- Z.ai GLM Coding Plan
- Z.ai Model API
- Z.ai Developer Document - Overview
- Cline Documentation - Z AI
- Cline GitHub