
Snowflake CoCo Desktop が一般提供になったので新機能・運用機能を一通り試してみた
かわばたです。
Snowflake の AI 開発環境である CoCo Desktopが、2026年7月21日に GA(一般提供)となりました。
本記事では、Preview 期からの主な新機能(Memory、セマンティックコード検索、SQL Playground の複数シート等)と、GA を機に押さえておきたい運用・ガバナンス機能(利用履歴ビュー、クレジット上限、Managed settings)を一通り検証します。なお、本記事では製品名を現行の公式表記に合わせて「CoCo Desktop」と記載します。
なお、インストール・基本操作と MCP 連携は以下の記事で扱っているため、本記事では割愛します。
CoCo Desktop GA の概要
CoCo Desktop は macOS / Windows 向けのネイティブデスクトップアプリケーションで、Cortex Code(CoCo)ファミリーのスタンドアロン IDE 版という位置づけです。
| 形態 | 概要 |
|---|---|
| CoCo in Snowsight | Webベース(Snowsight 内) |
| CoCo Desktop | macOS / Windows 向けスタンドアロン IDE |
| CoCo CLI | ローカルシェル用コマンドラインツール |
GA 時点の提供条件・課金は以下のとおりです。
- cross-region inference が有効な Commercial アカウントで利用可能(Gov、VPS、Sovereign アカウントは対象外)
- 既存の Snowflake アカウントで利用する場合は、トークン消費ベースの従量課金(pay-as-you-go)
- 個人開発者向けには、月間の利用枠を含むサブスクリプションがあり、登録から30日間の無料トライアルが提供される。トライアル終了後は解約しない限り有償サブスクリプションへ移行し、月間の利用枠を超過した場合は次の請求期間まで CoCo Desktop を利用できない
- CoCo Desktop の利用とは別に、SQL 実行時のウェアハウスやストレージには通常の Snowflake の課金が発生する
- 利用するモデルへのパススルーには Snowflake のモデル条件が適用される
注意: CoCo Desktop 本体は GA ですが、Cortex Code ファミリーとしては MCP 対応・プラグイン・Agent SDK・ACP 対応は執筆時点でも Preview のままです。特に ACP は CoCo CLI をエディタ / IDE のエージェントバックエンドとして利用するための機能であり、CoCo Desktop の機能ではありません。
前提条件
- アクティブロールに以下のデータベースロールが必要です
SNOWFLAKE.COPILOT_USERSNOWFLAKE.CORTEX_USERまたはSNOWFLAKE.CORTEX_AGENT_USER
- デフォルトでは
SNOWFLAKE.COPILOT_USERとSNOWFLAKE.CORTEX_USERが PUBLIC ロールに付与されています。SNOWFLAKE.CORTEX_AGENT_USERは PUBLIC にはデフォルト付与されず、利用するロールへの明示的な付与が必要です - アカウントで cross-region inference が有効であること
注意:
SNOWFLAKE.CORTEX_USERを PUBLIC から revoke すると、CoCo Desktop だけでなく Cortex AI Functions(AI_COMPLETE 等)を含む他の Covered AI Features へのアクセスも失われます。CoCo Desktop の利用だけを制御したい場合は、後述の日次クレジット上限パラメータの利用が公式ドキュメントで案内されています。
- セマンティックコード検索を使う場合は
snowflake-arctic-embed-l-v2.0モデルへのアクセスが必要です
検証環境
- 検証日: 2026年7月22日
- CoCo Desktop: v1.20.0

- OS: Windows
- Snowflake: Enterpriseエディション
新機能を試してみた
Memory(会話をまたぐ記憶)
エージェントが会話をまたいで事実(好み、プロジェクトのコンテキスト等)を記憶し、新しい会話で自動的に呼び出す機能です。メモリの実体は ~/.snowflake/cortex/memory/ 配下の Markdown ファイルで、全ワークスペース共通のグローバルメモリと、特定ワークスペースのみのプロジェクトメモリの2スコープがあります。
Agent Settings → Personalization の Memory セクションで有効化・管理できます。

会話の中で好みを伝えると「Updating memory」のインジケーターが表示され、メモリに書き込まれます。
新規セッションを開始すると「Reading memory」の表示とともに、前のセッションで伝えた内容が反映されました。
注意: メモリは永続的なコンテキスト用であり、現在のタスクの一時的な状態は保存されません。また Reset memories は取り消しできません。
Custom instructions(常時適用のカスタム指示)
エージェントに常時適用される指示を専用ページで管理できるようになりました。Agent Settings → Personalization のエディターに指示を入力して Save すると、~/.snowflake/cortex/AGENTS.md に保存され、全ワークスペースに適用されます。

設定内容
# 基本方針
- 回答は日本語で行うこと
- コード内のコメントも日本語で記述すること
# SQL 規約
- SQL キーワードは大文字で記述すること(SELECT, FROM, WHERE 等)
- テーブル・カラム名は小文字のスネークケースで記述すること
- SELECT * は使わず、必要なカラムを明示すること
# Snowflake 固有ルール
- 検証用のクエリは WAREHOUSE の指定を明示すること
- コスト影響のある操作(大きなテーブルのフルスキャン等)は実行前に警告すること
# 出力形式
- 手順の説明は番号付きリストで簡潔にまとめること
CoCoデスクトップの設定手順について教えてくださいを確認してみます。

赤枠の文言からCustom instructionsの設定内容が反映されていそうです。
同じページで組み込みツール(Web Search Tool / Web Fetch Tool / Notebook Tools)のオン・オフも制御でき、トグルは即時反映されます。
注意: Custom instructions は 512 KB が上限です。また Web Search Tool の利用にはアカウントレベルの許可(
ENABLE_CORTEX_WEBSEARCHパラメータの有効化)が必要です。
セマンティックコード検索(tgrep)
自然言語でコードベースを「意味」で検索できる機能です。Snowflake Cortex の embeddings(snowflake-arctic-embed-l-v2.0)を利用しており、キーワード完全一致ではなく「接続を検証してからクエリを実行する箇所」のような聞き方で該当コードを特定できます。
デフォルトでは自動インデックスされず、ユーザーの明示的なオプトインが必要です。Agent Settings → Indexing から有効化します。
- Agent Settings → Indexing を開く
Enable semantic search (tgrep)をオンにする(全ワークスペース共通のグローバル設定)Search this workspaceをオンにする(現在のワークスペース単位の設定)Index workspaceで現在のワークスペースのインデックスを作成する

※CoCo Desktop のワークスペースには dbt-labs 社の jaffle-shop を格納してあります。
インデックス構築後、エージェントに自然言語でコードの場所を尋ねると、該当ファイルが特定されました。

※インデックス構築による効果は、この小規模なリポジトリだけでは明確に判断しにくいと感じました。一方で、コードやドキュメントがチャンク単位でインデックス化されるため、規模の大きいリポジトリや、自然言語で仕様・実装意図を探したいケースで特に効果を発揮しそうです。
注意: Remote-SSH や dev containers などのリモート / 仮想ワークスペースでは利用できません(ローカル実行のみ)。
コンテキスト管理と /compact
会話のトークン消費状況を可視化する context window と、会話を要約してトークンを解放する /compact コマンドが追加されています。
メッセージ入力欄の右下にある context window にマウスホバーすると、トークン使用の内訳がポップオーバーで表示されます。

長い会話の途中で /compact を実行すると、会話履歴が要約され、同じスレッドを継続したままトークンが解放されます。
変更追跡パネル(Changes)
エージェントがファイルを変更すると「N files changed」のサマリーカードが表示され、unified diff・変更ファイルツリー・スコープセレクタを使って変更内容を確認できます。ファイル単位での accept / reject も可能です。


SQL Playground の複数シート
Agent Manager の右側パネルに組み込まれた軽量 SQL エディタで、ワークスペース単位で複数の SQL シート(.sql バッファ)を管理できるようになりました。
- 開き方: 右側ツールバーの SQL Playground アイコン、Command Palette の「Open SQL Playground」、またはエージェント結果の「Open in SQL Playground」アクション
- 実行: Run ボタンまたは ⌘Enter(macOS)/ Ctrl+Enter(Windows)。カーソル位置のステートメントが実行されます
- シート管理: サイドバーで新規作成・名前変更・削除・ドラッグ&ドロップでの整理

チャート表示にも切り替え可能

注意: SQL Playground のシートはワークスペース配下のソースファイルではなく、
~/.snowflake/cortex/sql/<workspace-id>/に保存されるスクラッチ領域です。シートはワークスペース単位のローカル領域に自動保存されるため、少なくとも検証環境では CoCo Desktop を再起動した後もシートを継続して利用できました。Git 管理や通常のエディタ機能を使いたい場合は「Open in Editor」でエディタタブとして開けます(Playground 側のシートはそのまま残ります)。
発展機能をひととおり動かしてみた
いずれも単体で記事1本になるボリュームのため、本記事では最小限の動作確認に留めます。
Agentic Notebook
エージェントがチャットから Jupyter ノートブック(.ipynb)を直接操作できる機能です。セルの作成・編集・実行、出力の読み取り、DataFrame の検査(pandas / polars / PySpark / Snowpark 対応)まで自律的に行います。組み込み機能のため、CoCo Desktop 側で追加の機能有効化は不要です。ただしセルの実行には、ローカルの Python 環境・conda 環境・既存の Jupyter Server など、利用可能な Jupyter カーネルが必要です(Snowpark を使う場合は snowflake-snowpark-python などの依存関係もカーネル側にインストールしておきます)。
エージェントにサンプル DataFrame を作る Notebook の作成を指示すると、セルが生成され、Keep / Undo で変更を確認しながら進められます。
sample_analysis.ipynb に、Snowpark で SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS テーブルから月別の売上合計を集計して pandas DataFrame に変換するセルを作成して実行してください。

Automations
スケジュール実行される保存済みプロンプトです。実行のたびに新規チャットセッションが開始され、完了時にデスクトップ通知が届きます。
Automations ビューから New automation でタイトル・プロンプト・頻度を設定して作成し、Run now で即時実行できます。

ログファイルへの追記を行う内容を設定しました。実行頻度など設定が可能です。

Run now で即時実行してみます。

注意: 承認が必要なツール実行に到達すると、Automation の実行は承認待ちで停止します。スケジュール実行を無人で完走させたい場合は、初回に
Run nowで実行して必要なツール実行権限を承認しておくことを推奨します。
注意: Automations は CoCo Desktop が起動中かつ PC が非スリープ状態のときに実行されます。実行予定時刻にアプリが閉じている場合はスキップされますが、アプリを再度開くと Automation ごとに直近1件の未実行分だけが catch-up run として自動実行されます(それより古い未実行分は破棄されます)。定義はマシン・OS ユーザー単位のローカル保存で同期されず、実行履歴は最大50件です。
Agentic Browser
CoCo Desktop 内蔵のブラウザをエージェントが操作し、Web 閲覧やローカルアプリのテストを実行できます。手動での確認用に Chromium Developer Tools も利用できます。

dbt integration
ワークスペース内の dbt_project.yml を検出すると自動で有効化され、DBT タブから lineage 可視化・コンパイル済み SQL プレビュー・データプレビュー・コマンドバーが利用できます。実行モードはローカルの dbt CLI を使う Local mode(デフォルト)と Snowflake-managed mode の2つです。

dbt docs

注意: Snowflake-managed mode では Preview タブに加え、Command bar と Build / Compile / Show のクイックアクションも利用できません(dbt コマンドは Run ボタンと実行ポップオーバーから実行します)。ローカルの dbt CLI は不要になる一方、プロジェクトフォルダ直下の
profiles.yml・Personal Database の有効化・有効な Snowflake 接続は必要です。また Snowflake ワークスペースに同期する dbt プロジェクトは、target/やdbt_packages/を含め最大20,000ファイルの制限があります。
Building apps
Streamlit in Snowflake と Snowflake App Runtime の2フレームワークに対応し、スキャフォルディングからローカル開発サーバーでの反復、Snowflake へのデプロイまでをエージェントが支援します。デプロイには Snowflake CLI 3.19 以上が必要です。

Build an app をクリックすると下記のようにエージェントが立ち上がり、自然言語でアプリ開発が行えるようです。

運用・ガバナンス機能を確認してみた
GA を機に本番導入を検討する場合に押さえておきたい機能です。
利用履歴の確認(CORTEX_CODE_DESKTOP_USAGE_HISTORY ビュー)
SNOWFLAKE.ACCOUNT_USAGE スキーマに CoCo Desktop 専用の利用履歴ビューが用意されています。直近365日のクレジット使用量をユーザー・リクエスト単位で確認でき、TOKENS_GRANULAR / CREDITS_GRANULAR カラムではモデル別の内訳(input / cache_read_input / cache_write_input / output)まで見られます。
-- 直近30日のユーザー別クレジット消費
SELECT USER_ID, USER_NAME, SUM(TOKEN_CREDITS) AS TOTAL_CREDITS
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_CODE_DESKTOP_USAGE_HISTORY
WHERE USAGE_TIME >= DATEADD('day', -30, CURRENT_TIMESTAMP())
GROUP BY USER_ID, USER_NAME
ORDER BY TOTAL_CREDITS DESC;

注意: このビューに含まれるのは CoCo Desktop のリクエストのみで、CoCo CLI や CoCo in Snowsight の利用は含まれません。
日次クレジット上限(CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER)
ユーザーごとの日次クレジット消費に上限を設定できるパラメータです。デフォルトは -1(無制限)で、0 を設定するとアクセスを完全にブロックできます。正の値を設定すると、ローリング24時間の推定使用量が閾値を超えた時点でアクセスがブロックされます。
-- 現在の設定値を確認
SHOW PARAMETERS LIKE 'CORTEX_CODE_DESKTOP%' IN ACCOUNT;

-- ユーザーレベルで上限を設定(アカウントレベルより優先)
ALTER USER coco_test_user SET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER = 0;
上限到達後は、CoCo Desktop 上で日次クレジット上限に到達した旨のエラーが表示され、ローリング24時間の推定使用量が閾値を下回るまで利用できなくなります。
-- 設定を解除
ALTER USER coco_test_user UNSET CORTEX_CODE_DESKTOP_DAILY_EST_CREDIT_LIMIT_PER_USER;
注意: アカウントレベルで
0を設定すると全ユーザーがブロックされます。「アカウントレベルで0を設定し、許可するユーザーにのみユーザーレベルで正の値を設定する」という運用パターンも可能です。
Permission modes
ツール実行時の承認動作を2つのモードで切り替えられます。
| モード | 動作 |
|---|---|
| Default Approvals(推奨) | 新規・リスクの高いツールコール(bash / MCP / SQL 等)、保護対象ファイルの編集、URL アクセスの前に確認プロンプトを表示 |
| Bypass Approvals | ターミナル実行・ファイル編集・MCP ツール・SQL 実行を含む通常の承認を省略。信頼できるコンテキスト限定 |
チャット入力欄の左下にある approval mode picker で切り替えます。この設定はマシン全体(同一マシン上の全プロジェクト)に適用される点に注意が必要です。
注意: Bypass Approvals でも、ブラウザ上でのコード実行(
browser_evaluate/browser_run_code)、クリップボード読み取り(browser_read_clipboard)、サブエージェントの起動は常に確認が求められます。裏を返せば、それ以外の操作は破壊的なコマンドを含めて確認なしで実行されるため、信頼できる入力・ワークスペースに限定して利用してください。
運用上の推奨: 通常は Default Approvals を標準とし、Bypass Approvals は隔離された検証用ワークスペースや、内容を十分に理解している反復作業に限定します。追加の防御としてターミナルサンドボックス(Agent terminal sandbox)を併用する方針が公式ドキュメントでも案内されています。
Managed settings(組織での一元管理)
管理者が JSON ファイルで組織のポリシーを強制できる仕組みです。Jamf や Intune などのデバイス管理ツールでの配布が想定されています。
| OS | 配置パス |
|---|---|
| macOS | /Library/Application Support/Cortex/managed-settings.json |
| Windows | C:\ProgramData\Cortex\managed-settings.json |
たとえば以下の設定では、危険なコマンドとリモートスキルを拒否し、Bypass Approvals を無効化し、会話履歴の永続化を禁止し、組織バナーを表示します。
{
"version": "1.0",
"permissions": {
"deny": ["bash(rm:*)", "bash(curl:*)", "bash(wget:*)", "skill(remote:*)"],
"defaultMode": "allow",
"dangerouslyAllowAll": false
},
"settings": {
"forceNoHistoryMode": true
},
"ui": {
"showManagedBanner": true,
"bannerText": "Managed by your organization.",
"hideDangerousOptions": true
}
}
permissions.dangerouslyAllowAll を false にすると Bypass Approvals を組織全体でブロックできます。実機で確認したところ、approval mode picker の Bypass Approvals がグレーアウトされ、「Disabled by admin policy」と表示されて選択できなくなりました。

注意:
versionフィールドが欠落・不正な場合、アプリは fail-closed(制限モード)で起動します。ユーザー側から管理者設定を無効化することはできません。
最後に
CoCo Desktop の GA に合わせて、Preview 期からの新機能と運用・ガバナンス機能を一通り検証しました。Memory やセマンティックコード検索といった開発体験の向上に加え、利用履歴ビュー・クレジット上限・Managed settings と、組織導入に必要な統制機能が揃ってきた点が GA の大きなポイントだと感じます。
この記事が何かの参考になれば幸いです!








