Talon CQL

approved

by Caio Lopes

Syntax highlighting for CrowdStrike CQL (LogScale Query Language) in code blocks. - This plugin has not been manually reviewed by Obsidian staff.

2 stars79 downloadsUpdated 2mo agoMIT

talon-cql

Obsidian plugin — syntax highlighting for CrowdStrike CQL (LogScale Query Language)

Threat hunters who document their work in Obsidian — playbooks, runbooks, DFIR notes — can now get proper syntax highlighting for embedded CQL queries. No equivalent plugin exists in the Obsidian community.

Talon CQL syntax highlighting


Usage

```cql
#event_simpleName=ProcessRollup2
ImageFileName=/powershell\.exe/i
| groupBy([ComputerName, CommandLine], function=count())
| sort(count, order=desc)
```

Also accepts ```logscale as an alias.

Works in both reading mode and editing mode.


Install

Community Plugin

Install from the Obsidian Community Plugins directory, or search for Talon CQL in Settings → Community Plugins.

Manual

  1. Download main.js, manifest.json, styles.css from the latest release
  2. Create .obsidian/plugins/talon-cql/ in your vault
  3. Copy the three files there
  4. Enable in Settings → Community Plugins

What gets highlighted

TokenExample
Event fields#event_simpleName, #aid, #cid
Built-in functionsgroupBy, eval, timeChart, join
Namespaced functionsarray:contains, math:abs, time:hour
Keywordscase, and, or, not, asc, desc
Operators| := =~ != <= >=
Strings"double" 'single'
Regex literals/pattern/i
Numbers42, 3.14
Comments// and /* */

Query Templates

Ready-to-use hunting queries in templates/:

FileContent
process-hunting.cqlLOLBins, encoded PowerShell, parent-child chains
network-hunting.cqlBeaconing, suspicious ports, geo anomalies
identity-hunting.cqlBrute force, off-hours logons, LSASS access

Build

npm install
npm run build   # production → generates main.js
npm run dev     # watch mode for development

References


License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.