skill
Azure Kusto Irql
Compose IRQL (Incident Response Query Language) queries for Kusto cybersecurity investigations. Translates natural language hunting questions into composable IRQL pipelines using Get_*, Extract_*, and Enrich_* functions. WHEN: IRQL query, security hunt, threat hunting KQL, incident response query, compose hunting pipeline, failed logins, phishing investigation, lateral movement, process execution, file creation events.
About
# IRQL -- Incident Response Query Language
Compose IRQL function pipelines from selector, extractor, and enricher building blocks. IRQL wraps raw KQL security tables behind intent-revealing, composable functions so analysts (and LLMs) can express hunts without memorizing schemas, cluster locations, or join keys.
## Activation Triggers
Use this skill when the user: - Explicitly mentions IRQL, `Get_*`, `Extract_*`, or `Enrich_*` functions - Says "use IRQL" or "write an IRQL query" - Requests a composable hunting pipeline using known IRQL selectors
Do **not** activate for generic security queries (e.g. "find failed logins") unless the user explicitly asks for IRQL. Route those to `azure-kusto` instead.
**Not a natural-language-to-IRQL converter.** This skill composes IRQL function pipelines and may handle basic natural-language requests that map directly to known selectors and simple filters. For general NL-to-KQL or NL-to-IRQL conversion, use a dedicated query-generation skill (available separately).
## IRQL Function Preflight
Before generating a pipeline, verify IRQL is available on the target database:
```kql .show functions | where Name startswith "Get_" or Name startswith "Extract_" or Name startswith "Enrich_" | project Name ```
If no IRQL functions are found, inform the user that IRQL is not deployed on the target database and suggest using `azure-kusto` for raw KQL queries instead. IRQL functions are a prerequisite -- this skill does not deploy base IRQL selectors.
## What IRQL Is
IRQL is a **function-based dialect on top of KQL**. It provides:
1. **Unified schema** -- disparate security tables project into consistent column names regardless of the underlying data source 2. **Composability** -- small functions chain via `| invoke` to build complex hunts from simple steps 3. **Portability** -- the same IRQL pipeline works across different clusters/databases; only the `Get_*` primitives need re-pointing
IRQL is not a separate language. It's KQL functions you invoke. Any valid KQL works alongside IRQL functions.
## Deploying IRQL
IRQL functions are stored KQL functions (`.create-or-alter function`). They must already be deployed to the target database before this skill can generate pipelines.
**Public example cluster** (functions pre-deployed): - Cluster: `https://kc7001.eastus.kusto.windows.net` - Databases: `ValdyTimes`, `JoJosHospital`
To port IRQL to a new cluster/database, create `Get_*` selectors that project your source tables into the unified schema (column names below), then deploy extractors and enrichers. The extractors and enrichers work unchanged as long as the input schema matches.
## Function Catalog
### 1. Selectors -- `Get_*`
Return projected, schema-unified views of source tables. Use the minimal form by default; use `_All` when extra columns are needed.
| Function | Columns | |---|---| | `Get_Event_Authentication` | `EnvTime`, `Hostname`, `ClientIp`, `Username`, `Result` | | `Get_Event_Authentication_All` | + `Description`, `UserAgent`, `PasswordHash` | | `Get_Email` | `EnvTime`, `EmailSender`, `EmailRecipient`, `Subject`, `Url` | | `Get_Email_All` | + `ReplyTo`, `Verdict` | | `Get_Employees` | `Name`, `ClientIp`, `Email`, `Username`, `Hostname`, `Role` | | `Get_Employees_All` | + `HireDate`, `UserAgent`, `Domain` | | `Get_Event_FileCreation` | `EnvTime`, `Hostname`, `Filename`, `Path` | | `Get_Event_FileCreation_All` | + `Username`, `Sha256`, `ProcessName` | | `Get_Event_NetworkInbound` | `EnvTime`, `ClientIp`, `Url` | | `Get_Event_NetworkInbound_All` | + `Method`, `UserAgent`, `StatusCode` | | `Get_Event_NetworkOutbound` | `EnvTime`, `ClientIp`, `Url` | | `Get_Event_NetworkOutbound_All` | + `Method`, `UserAgent` | | `Get_Dns_All` | `EnvTime`, `Domain`, `ClientIp` | | `Get_Event_Process` | `EnvTime`, `ProcessCommandLine`, `ProcessName`, `Hostname`, `Username` | | `Get_Event_Process_All` | + `ParentProcessName`, `ParentProcessHash`, `ProcessHash` | | `Get_SecurityAlerts_All` | `EnvTime`, `AlertType`, `Severity`, `Description`, `Indicators` | | `Get_Network_Connection_All` | `EnvTime`, `SourceIp`, `SourcePort`, `DestinationIp`, `DestinationPort`, `Protocol`, `Bytes` |
### 2. Extractors -- `Extract_*`
Derive a new column from an existing one. Invoke after a selector.
| Function | Input Column | Adds | |---|---|---| | `Extract_Email_Sender_Domain(T)` | `EmailSender` | `Domain` | | `Extract_Employee_Firstname(T)` | `Name` | `Firstname` | | `Extract_Event_Network_Domain(T)` | `Url` | `DomainName` |
### 3. Enrichers -- `Enrich_*`
Left-join helpers that attach context from a related table.
| Function | Key Column | Enriches With | |---|---|---| | `Enrich_Event_Authentication_Username(T)` | `Username` | Auth events for user | | `Enrich_Ip_Employee(T)` | `ClientIp` | Employee identity from IP | | `Enrich_Username_Employee(T)` | `Username` | Employee identity from username | | `Enrich_Ip_Domain(T)` | `ClientIp` | DNS domains resolved to IP | | `Enrich_Ip_Event_NetworkO
Install
Run this command
git clone https://github.com/microsoft/azure-skills && cp -r azure-skills/.github/plugins/azure-kusto-graph-skills/skills/azure-kusto-irql ~/.claude/skills/Works with
Manual steps
Clone the repository and copy the `.github/plugins/azure-kusto-graph-skills/skills/azure-kusto-irql` folder into your Claude skills directory. Compatible with Claude Code, Cursor, Codex, and any Agent Skills-compatible agent.
Frequently asked questions
What is the Azure Kusto Irql skill?
Compose IRQL (Incident Response Query Language) queries for Kusto cybersecurity investigations. Translates natural language hunting questions into composable IRQL pipelines using Get_*, Extract_*, and Enrich_* functions. WHEN: IRQL query, security hunt, threat hunting KQL, incident response query, compose hunting pipeline, failed logins, phishing investigation, lateral movement, process execution, file creation even…
How do I install Azure Kusto Irql?
Run this in your terminal:
git clone https://github.com/microsoft/azure-skills && cp -r azure-skills/.github/plugins/azure-kusto-graph-skills/skills/azure-kusto-irql ~/.claude/skills/Which AI tools does Azure Kusto Irql work with?
It works with claude_app, claude_code, claude_api, cursor, codex, windsurf, cline, zed.
Who made Azure Kusto Irql?
Microsoft, released under the MIT license.
Is Azure Kusto Irql free?
Yes, it is free to use under the MIT license.
npx skills add coreyhaines31/marketingskills
npx skills add stripe/ai
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/sales/skills/customer-voice ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/sales/skills/call-prep ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/sales/skills/rep-context ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/sales/skills/stakeholder-map ~/.claude/skills/
Audit before you install
Run any source through our checks - AI visibility, security, performance, and stack detection.
Automated Web Security Scan
security
PageSpeed Analyzer
performance
AI Content Quality Test
arabic content
AI Agent / MCP Server Tester
ai testing
Site Stack Detector
migration
AI SEO / AEO / GEO Audit
ai visibility
llms.txt Generator
ai visibility
Readability Score
arabic content
Schema / JSON-LD Builder
ai visibility
AI Cost Calculator
ai testing
Headline Analyzer
arabic content