Skip to content
Development
Skill

/cortex-router

Auto-routing skill loaded by the prompt filter hook. Routes Snowflake-related operations to Cortex Code CLI. Not for direct invocation — use $cortex-run instead.

From plugin
snowflake-ai-kit
4310 skills

Claude Code

$ npx -y skills add Snowflake-Labs/snowflake-ai-kit --skill cortex-router --agent claude-code

SKILL.md

cortex-router.SKILL.md
name: cortex-router
description: "Auto-routing skill loaded by the prompt filter hook. Routes Snowflake-related operations to Cortex Code CLI. Not for direct invocation — use $cortex-run instead."
license: Proprietary. See LICENSE-SKILLS.md for complete terms
user-invocable: false
metadata:
  author: Snowflake Integration Team
  version: 3.5.0
  compatibility: Requires Cortex Code CLI installed and configured

Cortex Code Router

Route Snowflake operations to Cortex Code CLI, which has specialized bundled skills (data-quality, semantic-view, cost-intelligence, ML, governance, etc.).

**CRITICAL: Follow steps 1 → 2 → 3 in order. Do NOT skip to Step 3.**

Step 1: Verify CLI

which cortex 2>/dev/null && cortex --version

If `cortex` is NOT found: 1. Tell the user: "Cortex Code CLI is not installed. Setting it up now." 2. Load the `snowflake-cortex-code:cortex-setup` skill using the Skill tool. 3. **STOP** — do not continue until the CLI is installed.

Step 2: Confirm Routing

Run the routing script to check if this prompt should go to Cortex or stay in Claude Code:

bash "${CLAUDE_PLUGIN_ROOT}/scripts/run_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/router/route_request.py" --prompt "USER_PROMPT_HERE"

Replace `USER_PROMPT_HERE` with the actual user prompt (shell-escaped).

The shared launcher selects `python3`, or `python` only after verifying Python 3. Use Bash (Git Bash on Windows). It never retries a failed script under another interpreter. If routing fails, STOP and report the error; do not bypass a configuration/policy error.

**Read the output carefully:**

  • If output says **"route: cortex"** → proceed to Step 3
  • If output says **"route: claude"** → **STOP**. Handle the request yourself using Claude Code tools (sql_execute, Read, Write, etc.). Do NOT run execute_cortex.py.

Step 3: Execute via Cortex Code

Only reach this step if Step 2 confirmed routing to Cortex.

Choose a security envelope based on the operation:

  • **RO**: Read-only queries (SELECT, SHOW, DESCRIBE) — won't run DDL or DML
  • **RW**: Data modifications, DDL (CREATE, ALTER, DROP) — default for most operations
  • **RESEARCH**: Read + web access, no writes
  • **DEPLOY**: Full access (use sparingly)

Default to **RW** unless the request is clearly read-only.

bash "${CLAUDE_PLUGIN_ROOT}/scripts/run_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/router/execute_cortex.py" \
  --prompt "USER_PROMPT_HERE" \
  --envelope "RW"

Add `--connection CONNECTION_NAME` if a specific Snowflake connection is needed.

Multi-turn: `--resume-last` vs fresh

Every cortex invocation returns a `session_id` that the router persists. Follow-up turns can resume that session so Cortex sees the prior conversation -- real multi-turn, not one-shot batches per prompt.

  • **Add `--resume-last`** when the current prompt is a continuation of the

previous Cortex turn: "keep going", "apply the top suggestion", "dig deeper", "also show me ...", "and for last quarter", "fix that", or any clarification of an answer Cortex just gave.

  • **Omit `--resume-last`** (start fresh) when the user switches topics, asks

about a different database/warehouse, or begins a clearly new task.

  • `--resume <session_id>` is also accepted if you have an explicit id.
# Follow-up on the previous Cortex turn
bash "${CLAUDE_PLUGIN_ROOT}/scripts/run_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/router/execute_cortex.py" \
  --prompt "drill into the top customer" --envelope "RO" \
  --resume-last

**Timeout**: This command may take 30-90 seconds. If it takes longer than 2 minutes, it likely hung — kill the process and tell the user to try `$cortex-run` for direct invocation.

Step 4: Return Results

Format Cortex's output for the user:

  • Show SQL results in readable tables
  • Display any generated artifacts or analysis
  • Report success/failure clearly

Notes

  • Cortex has bundled skills for: data-quality, semantic-view, cost-intelligence, ML, governance, security, lineage, dynamic-tables, and more
  • For simple SQL queries that don't need Cortex skills, Step 2 should route to Claude Code
  • If routing or execution fails, STOP and report the error rather than bypassing the plugin
  • Multi-turn context is preserved across invocations via `--resume-last` (see Step 3)
Read more
@snowflake-labs
Ships withsnowflake-ai-kit

Connect your AI coding agent to Snowflake. Plugins for Claude Code and OpenAI Codex that automatically detect Snowflake prompts and route them to Cortex Code — where 55+ built-in skills handle SQL, data governance, dynamic tables, ML, and more.

Stars on GitHub

Momentum

stars in total
43
Star history of Snowflake-Labs/snowflake-ai-kit on GitHub, a chart by star-history.com

Other skills on snowflake-ai-kit.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about cortex-router.

Which coding agents can use cortex-router?
cortex-router installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.