Monocle documentation

Overview

Monocle has two main tabs and a settings area:

SearchPaste an IP, domain, hash, email, CVE and more. Monocle works out what it is and offers matching lookup sites, plus live results from any integrations you connect.
NotesA Markdown notebook built for investigations: templates, an indicators sidebar, defanged exports, and sharing to Slack, Discord or Bear.
SettingsAppearance, editor options, connectors, integrations and keyboard shortcuts.

Getting started

  1. Open Monocle and press ⌘1 for Search.
  2. Paste an indicator such as 8.8.8.8, example.com or a file hash.
  3. Pick a lookup site from the list to open it in your browser.
  4. Press ⌘2 for Notes, and ⌘N to start a new note. Use ⇧⌘N to start from a template.
  5. Optionally add API keys under Settings → Integrations to see results inline.

Type or paste into the search field. It accepts IPs (IPv4 and IPv6), domains, URLs, file hashes, ports, emails, user agents, MAC addresses, ASNs, certificate hashes and CVE IDs. You can also drag text or files onto the window.

Indicator detection

TypeExamples
IP AddressIPv4, IPv6 (including compressed and IPv4-mapped forms)
Domain / URLexample.com, https://example.com/path
File HashMD5 (32), SHA-1 (40), SHA-256 (64 characters)
Emailuser@example.com
CVECVE-2024-3094
MAC Address00:1A:2B:3C:4D:5E
Port, ASN, User Agent, Cert HashDetected or chosen from the type dropdown

Lookup resources

For each detected type Monocle lists curated lookup sites under Search. Selecting one opens the indicator on that site in your browser. The Integrations column shows which integrations can return results inline for that type. Monocle does not send the indicator anywhere until you open a site or enable an integration.

TypeSearchIntegrations
IP Address (IPv4 and IPv6)AbuseIPDB, AlienVault OTX, Censys, Cisco Talos, DNSlytics, DShield, Google Safe Browsing, GreyNoise, HackedIP, Hybrid Analysis, IPVoid, Joe Sandbox, MXToolbox Blacklist, Project HoneyPot, RIPEstat, Robtex, Shodan, Spamhaus, ThreatMiner, VirusTotalCensys, VirusTotal
IP Location (IPv4 and IPv6)Geolocation, IPinfo, iplocation—
DomainCisco Talos, DomainTools, DNS Viz, GreyNoise, MXToolbox, nslookup, Shodan, URLscan, URLVoid, VirusTotalDNSdumpster, VirusTotal
Domain CategorizationBluecoat—
File Hash (MD5, SHA-1, SHA-256)CIRCL hashlookup (MD5, SHA-1 and SHA-256 variants), Hybrid Analysis, MalwareBazaar, VirusTotalMalwareBazaar, VirusTotal
SSL/TLS Cert Hash (SHA-1 or SHA-256 hashes also match here)crt.sh, CensysCensys
PortDShield, Shodan, SpeedGuide—
EmailHave I Been PwnedHave I Been Pwned
User AgentGreyNoise, Userstack—
MAC AddressMAC Lookup App—
ASNBGP.he.net, bgp.tools, RIPEstat—
CVENVD, CVE.org, MITRE, Exploit-DB—

Integration results

When an integration is enabled and has credentials, a result card appears under the search field with a summary and a link to the full record. Cards are listed alphabetically: Censys, DNSdumpster, Have I Been Pwned, MalwareBazaar, MISP, OpenCTI and VirusTotal. See Integrations for setup.

Notes

Notes are Markdown documents that autosave as you type. The sidebar lists your notes grouped by recency, with pinned notes at the top. Each row shows the first line of real content as a subtitle.

Templates

An empty note offers templates to begin from, or choose New from Template (⇧⌘N) to open a filterable picker: type to filter, arrow keys to move, Return to create.

TemplateSections
Alert investigationAlert, Scope, Checks performed, Evidence, Disposition, Tuning recommendation
Incident triageSummary, Timeline (UTC), Indicators, Affected assets, Actions
Malware analysisSample, Static analysis, Dynamic analysis, Indicators, Verdict, Actions
Phishing reportMessage, Indicators, Analysis, Verdict, Actions
Threat huntHypothesis, Scope, Queries, Findings, Indicators observed, Outcome, Follow-ups
Shift handoffShift, Open incidents, Alerts being watched, Pending escalations, Changes, For the next shift, Checklist

You can also save your own templates; they appear in the picker, and right-click lets you delete them. Applying a template to a note that already has content asks you to confirm replacing it. Use Next Blank Field (⌘J) to jump through the blank fields of a template, and Insert UTC Timestamp (⌥T) to stamp the current time.

Formatting

SyntaxResult
# Heading to ###### HeadingHeadings (shortcuts for 1–3: ⌥1 ⌥2 ⌥3)
**bold**Bold (⌘B)
*italic*Italic (⌘I)
__underline__, ~~strike~~Underline, strikethrough
`code` and fenced ``` blocksInline and block code
[text](https://…)Link (⌘K)
- item, 1. itemBulleted and numbered lists
- [ ] task, - [x] doneTask checkboxes
> quote, ---Block quote, horizontal rule

Indicators sidebar

Toggle with ⌥⌘I. Monocle scans the open note and lists every indicator it finds, in order of first appearance, as IP, Domain, URL, Hash (labelled MD5, SHA-1 or SHA-256), Email, CVE or MAC. File names like report.pdf are not mistaken for domains.

Find & search notes

Pinning & deleted notes

Pinned notes stay at the top of the list. Deleted notes move to Deleted and are kept for 30 days, so you can restore them. Empty permanently removes everything in Deleted.

Sharing & export

Use the share button or a note's context menu:

To back up everything, use Settings → Notes → Export notes, which writes a single JSON file.

Defanging

Defanging makes indicators safe to share by breaking clickable or resolvable forms. Monocle understands and produces these patterns:

LiveDefanged
http://evil.example/ahxxp://evil[.]example/a
user@example.comthe @ and dots are bracketed
203.0.113.7203[.]0[.]113[.]7

When refanging, Monocle accepts [.], (.), {.}, [dot], [at], (at), [:] and hxxp. Turn on Defang on export in Settings → Notes to defang automatically whenever a note leaves the app.

Connectors

Connectors send a note to another place. Configure them in Settings → Connectors.

ConnectorSetup
SlackEnable, then paste an Incoming Webhook URL (https://hooks.slack.com/services/…). Monocle validates the format.
DiscordEnable, then paste a webhook URL (https://discord.com/api/webhooks/…).
BearEnable to get a Send to Bear action. Requires the Bear app.

Webhooks post the note text as JSON and report the HTTP status if the request fails.

Integrations

Integrations query threat intelligence platforms directly and show results in cards on the Search tab. Enable each one and enter credentials under Settings → Integrations.

IntegrationNeedsNotes
OpenCTIPlatform URL, API tokenSelf-hosted
MISPInstance URL, API keySelf-hosted
VirusTotalAPI keyFiles (hashes), domains and IPs
MalwareBazaarAPI keyFile hashes
DNSdumpsterAPI keyDomains
CensysAPI key; optional Organization IDThe Organization ID is sent as X-Organization-ID and is required for Starter, Search and Core organizations. Certificate lookups use the SHA-256 fingerprint.
Have I Been PwnedAPI keyEmail addresses
Self-signed certificates. For OpenCTI or MISP instances behind a private CA, enable Allow self-signed certificates. It skips certificate validation for the configured endpoint's host only; TLS for everything else is unchanged.

Keyboard shortcuts

All shortcuts below are the defaults and can be changed under Settings → Shortcuts. A shortcut must include ⌘ or ⌃ so it can't interfere with ordinary typing, and Monocle warns you about conflicts.

ActionShortcut
General
New Note⌘N
New from Template⇧⌘N
Settings⌘,
Editing
Find⌘F
Find Next / Previous⌘G / ⇧⌘G
Search All Notes⇧⌘F
Insert UTC Timestamp⌥⌘T
Next Blank Field⌘J
Format
Bold / Italic / Link⌘B / ⌘I / ⌘K
Heading 1 / 2 / 3⌥⌘1 / ⌥⌘2 / ⌥⌘3
View
Show Search / Show Notes⌘1 / ⌘2
Indicators Sidebar⌥⌘I
Toggle Preview⇧⌘P
Show/Hide Sidebar⌥⌘S

Settings

SectionWhat it covers
SetupAppearance (System, Light or Dark), menu bar icon, launch at login, and the Shortcuts editor.
NotesText direction, editor font size, template suggestions on empty notes, defang on export, export all notes, delete all notes, and a storage meter.
ConnectorsSlack, Discord and Bear.
IntegrationsOpenCTI, MISP, VirusTotal, MalwareBazaar, DNSdumpster, Censys, Have I Been Pwned.
AboutVersion and build.

Settings has its own search field to jump straight to an option, and Up/Down arrows move between sections.

Troubleshooting

ProblemTry this
"Couldn't detect type"Pick the type manually from the dropdown, or strip surrounding text.
An integration card doesn't appearConfirm it is enabled and credentials are filled in. Check that the indicator type is one it supports.
Integration fails on a private instanceEnable Allow self-signed certificates if it uses a private CA.
Webhook send failsThe error shows the HTTP status. Re-check the URL; Monocle expects the standard Slack or Discord webhook prefix.
A shortcut does nothingMenu items for notes are disabled outside the Notes tab. Check Settings → Shortcuts for conflicts.
A note is goneLook in Deleted; notes are kept there for 30 days.