# Remove invisible characters

- Human page: https://happytails.ai/en/text-tools/remove-invisible-characters/
- Markdown: https://happytails.ai/en/text-tools/remove-invisible-characters.md
- Structured JSON: https://happytails.ai/agents/en/text-tools/remove-invisible-characters/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `remove-invisible-characters` |
| Category | text-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Automatic updates after valid input or file selection. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Removes common invisible formatting controls while keeping spaces and line breaks. Joiners are preserved by default because they affect emoji and scripts. Removing bidirectional controls can change displayed text order.

### Inputs and settings

Text input: Your text.

Example or placeholder shown in the interface (not a validated fixture):

```text
Type or paste your input…
```

Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `joiners` | Also remove zero-width joiners and non-joiners | checkbox | false |  |

### 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

Removes common invisible formatting controls while keeping spaces and line breaks. Joiners are preserved by default because they affect emoji and scripts. Removing bidirectional controls can change displayed text order.

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

### Complete machine-readable capability record

```json
{
  "id": "remove-invisible-characters",
  "category": "text-tools",
  "built": true,
  "requirements": "Removes common invisible formatting controls while keeping spaces and line breaks. Joiners are preserved by default because they affect emoji and scripts. Removing bidirectional controls can change displayed text order.",
  "implementation": {
    "fields": [
      {
        "key": "joiners",
        "label": "Also remove zero-width joiners and non-joiners",
        "value": false,
        "type": "checkbox"
      }
    ],
    "live": true,
    "note": "Removes common invisible formatting controls while keeping spaces and line breaks. Joiners are preserved by default because they affect emoji and scripts. Removing bidirectional controls can change displayed text order.",
    "experience": {
      "automatic": true,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.",
      "action": null
    },
    "mode": "automatic",
    "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 and remove hidden formatting characters that get in the way.

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 Remove invisible characters

1. Paste the affected text. Common zero-width and directional formatting controls are removed automatically. Only enable the joiner option if you want to break joined emoji and script forms.
2. The hidden zero-width space between hello and the visible space is removed; the visible space remains.

## Useful next steps

- [Unicode normalizer](https://happytails.ai/en/text-tools/normalize-unicode/) ([Markdown](https://happytails.ai/en/text-tools/normalize-unicode.md))

- [Remove extra spaces](https://happytails.ai/en/text-tools/remove-extra-spaces/) ([Markdown](https://happytails.ai/en/text-tools/remove-extra-spaces.md))

- [Character counter](https://happytails.ai/en/text-tools/character-counter/) ([Markdown](https://happytails.ai/en/text-tools/character-counter.md))

## How to use it

Paste the affected text. Common zero-width and directional formatting controls are removed automatically. Only enable the joiner option if you want to break joined emoji and script forms.

### Try a small example

The hidden zero-width space between hello and the visible space is removed; the visible space remains.

### What to know

Removes common invisible formatting controls while keeping spaces and line breaks. Joiners are preserved by default because they affect emoji and scripts. Removing bidirectional controls can change displayed text order.
