# Unicode filename collision checker

- Human page: https://happytails.ai/en/developer-tools/unicode-filename-collision-checker/
- Markdown: https://happytails.ai/en/developer-tools/unicode-filename-collision-checker.md
- Structured JSON: https://happytails.ai/agents/en/developer-tools/unicode-filename-collision-checker/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `unicode-filename-collision-checker` |
| Category | developer-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Inspect names, relative paths and file sizes locally. No file contents are read. Empty folders and inaccessible entries are not exposed by the browser folder picker.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

Accepted browser files: `See implementation notes`. Multiple files are supported.

Browser file-input limit: no total size limit. HTTP limits can differ.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `mode` | Comparison rules | select | "NFC + Unicode full case fold" | Allowed: NFC + Unicode full case fold, NFD + Unicode full case fold, NFC only, NFD only |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Up to 2,000 files. Uses Unicode 17 default full case folding and browser NFC/NFD normalization. Locale-specific Turkish mappings are not applied. Potential equivalence is not proof of a collision on every operating system.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "unicode-filename-collision-checker",
  "category": "developer-tools",
  "built": true,
  "requirements": "Up to 2,000 files. Uses Unicode 17 default full case folding and browser NFC/NFD normalization. Locale-specific Turkish mappings are not applied. Potential equivalence is not proof of a collision on every operating system.",
  "implementation": {
    "fields": [
      {
        "key": "mode",
        "label": "Comparison rules",
        "value": "NFC + Unicode full case fold",
        "type": "select",
        "values": [
          "NFC + Unicode full case fold",
          "NFD + Unicode full case fold",
          "NFC only",
          "NFD only"
        ]
      }
    ],
    "files": true,
    "input": false,
    "directory": true,
    "multiple": true,
    "deferImagePreview": true,
    "presentation": "metrics",
    "metadataOnly": true,
    "maxFileBytes": 9007199254740991,
    "uploadHelp": "Choose one folder, up to 2,000 files. File contents are not read.",
    "note": "Inspect names, relative paths and file sizes locally. No file contents are read. Empty folders and inaccessible entries are not exposed by the browser folder picker.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Find filenames and directories that become equivalent after Unicode normalization or case folding.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Unicode filename collision checker

1. Choose the folder you want to inspect.
2. Review the options and run the check.
3. Read the result and download the report.

## Useful next steps

- [Folder tree exporter](https://happytails.ai/en/developer-tools/folder-tree-exporter/) ([Markdown](https://happytails.ai/en/developer-tools/folder-tree-exporter.md))

- [File checksum manifest creator](https://happytails.ai/en/developer-tools/file-checksum-manifest-creator/) ([Markdown](https://happytails.ai/en/developer-tools/file-checksum-manifest-creator.md))

- [File hash](https://happytails.ai/en/developer-tools/file-hash/) ([Markdown](https://happytails.ai/en/developer-tools/file-hash.md))

## Choose one local folder

Use the folder picker and confirm the files you want to inspect. Nested paths are preserved. Choosing another folder replaces the selection.

### Review the result

Find filenames and directories that become equivalent after Unicode normalization or case folding.

### Download your report

Save the report or manifest to keep the results. Your source files are unchanged, and the processing stays in your browser.
