From canary
Deep-scan the full conversation history for PII. Automatic scanning covers only the most recent message — use this for thorough audits of the entire session. Detects names, addresses, legal IDs, medical records, trade secrets, crypto credentials, API tokens, and 70+ other semantic categories.
How this skill is triggered — by the user, by Claude, or both
Slash command
/canary:scan [full|quick][full|quick]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scan your own conversation history for sensitive data that regex pattern matching cannot catch.
Scan your own conversation history for sensitive data that regex pattern matching cannot catch.
TRANSCRIPT="!`cat /dev/stdin <<< '{}' | jq -r '.transcript_path // empty' 2>/dev/null`"
If transcript path is not available from hook context, find the most recent transcript:
LATEST=$(ls -t ~/.claude/projects/*/sessions/*.jsonl 2>/dev/null | head -1)
jq -r 'select(.type == "human") | .message.content // empty' "$LATEST" 2>/dev/null | tail -c 3000
If that yields nothing, try alternate format:
jq -r 'select(.role == "user") | if (.content | type) == "string" then .content elif (.content | type) == "array" then [.content[] | select(.type == "text") | .text] | join("\n") else empty end' "$LATEST" 2>/dev/null | tail -c 3000
name, entity_name, us_passport, date_of_birth, us_ein_fein, national_id, tin_non_us, nhs_number, sin_canadian, us_itin, passport_non_us, license_plate
us_bank_account, swift_bic
private_key, seed_phrase, wallet_key, xpub_key, monero_address, ripple_address, solana_address, metamask_key, exchange_api_key, txid, private_key_hex
case_number, attorney_number, court_order, litigation_id, contract_number, patent_number, trademark, legal_entity, settlement_ref, subpoena, deposition, evidence_id, witness_id, filing_number
medical_record_mrn, health_plan_id, dea_number, npi_number, diagnosis_code_icd10, procedure_code_cpt
jwt, oauth_token, gcp_key, azure_key, generic_secret, generic_api_key, mac_address, geolocation, uuid, imei, serial_number, android_id, iphone_udid, github_pat, slack_token, stripe_api_key, twilio_credentials, sendgrid_api_key, private_key_hex
street_address, zip_code
bash "${CLAUDE_PLUGIN_ROOT}/scripts/record-llm-hit.sh" "<category>" "<redacted>" "high"
If NO PII is found, say so clearly. That's a good result.
jo••••oe, 12••••89, etc.Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub sonomoshq/canary --plugin canary