Skip to main content
Security Audit is a beta feature. Detection coverage and UI are evolving — feedback is welcome.
The Credentials tab on the Security Audit page aggregates every credential or secret exposure Claw Lens has detected, grouped by credential type. Instead of hunting through individual events, you get a single table that tells you which secret types have been seen, how many are still active, and whether any appear to have been sent to an external service.
Audit Credential 1

Inventory columns

ColumnDescription
Credential typeThe type of secret detected (e.g., “Anthropic API key”, “AWS access key”)
ActiveExposures that have not been dismissed — these still need review
DismissedExposures you’ve already reviewed and marked as resolved
SessionsNumber of distinct sessions where this credential type appeared
AgentsWhich agents were involved
Last seenTimestamp of the most recent exposure
StatusSee below

Status values

Each row in the credential inventory shows one of three statuses: Needs Rotation — There are active (non-dismissed) exposures of this credential type. The secret appeared in agent output but has not been confirmed as sent to an external service. Rotate the credential as a precaution and then dismiss the findings. All Dismissed — All exposures of this type have been reviewed and dismissed.
Exfiltrated — The credential appeared in agent output and the agent made an external network call later in the same session. The secret may have been sent to an external service. Rotate the credential immediately, then investigate which external URLs the agent contacted. Do not rely on dismissal alone.

Detected credential patterns

Claw Lens scans all tool outputs against the following patterns. Any match creates a finding and contributes to the credential inventory.

API keys and tokens

TypePattern / prefixLabel
Anthropic API keysk-ant-[a-zA-Z0-9-]{20,}Anthropic API key
OpenAI project keysk-proj-[A-Za-z0-9-_]{32,}OpenAI project key
GitHub PATghp_[A-Za-z0-9]{36}GitHub personal access token
GitHub OAuth tokengho_[A-Za-z0-9]{36}GitHub OAuth token
GitHub fine-grained tokengithub_pat_[a-zA-Z0-9_]{22,}GitHub fine-grained token
GitLab access tokenglpat-[0-9a-zA-Z-_]{20}GitLab access token
AWS access key IDAKIA[0-9A-Z]{16}AWS access key
AWS secret access keyAWS_SECRET_ACCESS_KEY = ...AWS secret access key
PEM private key-----BEGIN ... PRIVATE KEY-----Private key (PEM)
Stripe secret keysk_live_[a-zA-Z0-9]{24,}Stripe secret key
SendGrid API keySG.[0-9A-Za-z-_]{22}.[0-9A-Za-z-_]{43}SendGrid API key
Square access tokensq0atp-[0-9A-Za-z-_]{22}Square access token
Square OAuth secretsq0csp-[0-9A-Za-z-_]{43}Square OAuth secret
Slack bot tokenxoxb-...Slack bot token
Slack app tokenxapp-...Slack app token
Slack tokenxox[pors]-...Slack token
Google API keyAIza[0-9A-Za-z-_]{35}Google API key
NPM access tokennpm_[a-zA-Z0-9]{36}NPM access token
PyPI upload tokenpypi-AgEIcHlwaS5vcmc...PyPI upload token
Shopify access tokenshpat_[a-fA-F0-9]{32}Shopify access token
Shopify shared secretshpss_[a-fA-F0-9]{32}Shopify shared secret
Twilio API keySK[0-9a-fA-F]{32}Twilio API key
Discord bot token[MN][A-Za-z0-9]{23,25}.[A-Za-z0-9]{6}.[A-Za-z0-9_-]{27,}Discord bot token
Telegram bot token[0-9]{8,10}:[0-9A-Za-z_-]{35}Telegram bot token
Facebook access tokenEAACEdEose0cBA...Facebook access token
Azure storage keyDefaultEndpointsProtocol=https;AccountName=...Azure storage key
Discord webhook URLhttps://discord.com/api/webhooks/...Discord webhook URL

Tokens and secrets

TypePatternLabel
JWT tokeneyJ...eyJ... (three-part base64url)JWT token
Database URImysql://user:pass@host / postgres://user:pass@hostDatabase URI with password
Password / secret valuepassword = "...", api_key = "...", secret = "..."Password / secret value
Generic secretsecret = "...", auth_token = "...", apikey = "..."Generic secret/token

PII

TypePatternLabel
Credit card number16-digit card number with optional separatorsCredit card number
Chinese phone number1[3-9]\d{9}Chinese phone number
Chinese ID card number18-digit national IDChinese ID card number

Blockchain

TypePatternLabel
Ethereum address0x[a-fA-F0-9]{40}Ethereum address
Bitcoin Bech32 addressbc1[a-zA-HJ-NP-Z0-9]{25,90}Bitcoin Bech32 address
Blockchain private keyprivate_key = 0x[a-fA-F0-9]{64}Blockchain private key
Bitcoin WIF private key5[HJK][1-9A-HJ-NP-Za-km-z]{49}Bitcoin WIF private key
Mnemonic seed phrasemnemonic = "word word word ..." (12–24 words)Mnemonic seed phrase

Dismissing findings

To mark a finding as reviewed, click Dismiss in the event detail panel on the Timeline tab, or use the dismiss action on an individual finding. Once dismissed:
  • The finding moves from Active to Dismissed in the inventory
  • The agent’s verdict may update if that was the last active finding of a given severity
  • The finding remains in the audit log — it is not deleted
When to dismiss: after you’ve confirmed the exposure was expected, was in a test context, or has already been remediated. When to rotate instead: if the status shows Needs Rotation or Exfiltrated, rotate the credential before dismissing. Dismissal is a record-keeping action, not a security control.
If the same credential type keeps appearing across sessions, check whether the agent has access to a file or environment variable it shouldn’t. Repeated exposure of the same secret type often points to a configuration issue rather than a one-off leak.