SmuggleCheck
Find the text you can't see before an AI model reads it. Paste a web page, email, document, tool output or chat message. SmuggleCheck finds Unicode tag characters ("ASCII smuggling") and decodes the hidden instructions, zero-width characters and variation-selector ("emoji smuggling") payloads, bidi controls (Trojan Source), homoglyphs (UTS #39 confusables: mixed-script and look-alike words), chat-template tokens such as <|im_start|>, [INST] or <|start_header_id|>, and markdown image links built to exfiltrate data. Emoji ZWJ sequences (👨👩👧), subdivision flags and emoji variation selectors are left alone. It only analyses what you paste: it never fetches links, and your text is never stored.
Compare two names
Are two strings visually confusable? Uses Unicode UTS #39 skeletons (confusables data 18.0.0), up to 1024 characters each.
JSON API
curl -s -X POST 'https://smugglecheck.mike-tusa.workers.dev/api/scan' \
-H 'content-type: text/plain' --data-binary @page.txt
Or send {"text": "...", "include_cleaned": true} as JSON. POST /api/compare takes {"a": "...", "b": "..."}. No key needed: about 20 checks per minute per IP from a shared daily pool. OpenAPI 3.1 spec
Free API key
No sign-up and no email. A key gives you about 500 checks per month of your own, outside the shared pool. Send it as Authorization: Bearer <key> or X-Api-Key: <key> (MCP clients: add it as a header). The key is shown once; we keep only a hash of it, so it can't be recovered.
For AI agents (MCP)
SmuggleCheck is also a remote Model Context Protocol (MCP) server with two read-only tools, scan_text and compare_strings, so an agent can check untrusted text before acting on it. Useful for agents and assistants that read untrusted text (web pages, emails, documents, tool output), for example Muse, Claude, ChatGPT or Cursor. Most MCP clients accept this config; some use a different format (for example, VS Code uses a servers key). Clients with a settings screen just need the URL https://smugglecheck.mike-tusa.workers.dev/mcp.
{ "mcpServers": { "smugglecheck": { "type": "http", "url": "https://smugglecheck.mike-tusa.workers.dev/mcp" } } }
With a free key, add "headers": { "Authorization": "Bearer <key>" } to the server entry (exact field name depends on the client). Machine-readable docs: llms.txt · OpenAPI 3.1 spec · MCP server card. Homoglyph checks use the Unicode UTS #39 confusables data.
Privacy
Text you submit is analysed in memory and discarded when the response is sent. It is never written to storage, logs or analytics, and SmuggleCheck makes no network requests: it never fetches URLs found in your text. Full privacy notice.