# Text Manipulation and Converter

## Links

- Product page URL: https://www.agentpmt.com/marketplace/text-manipulation-and-converter
- Product markdown URL: https://www.agentpmt.com/marketplace/text-manipulation-and-converter?format=agent-md
- Product JSON URL: https://www.agentpmt.com/marketplace/text-manipulation-and-converter?format=agent-json

## Overview

- Product ID: 69489d03b54506f955d789e9
- Vendor: Apoth3osis
- Type: core utility
- Unit type: request
- Price: 500 credits
- Categories: Data Processing, Case Conversion, Text Processing & Manipulation, Encoding & Decoding, Data Validation & Verification, String & Character Utilities, Data Formatting & Conversion, Text Extraction & Parsing, Escaping & Sanitization, Regex & Pattern Matching, Clipboard & I/O Utilities, Diff & Comparison
- Generated at: 2026-04-15T18:28:05.746Z

### Page Description

Text Tools is a comprehensive text manipulation utility providing 23 operations across four categories: text manipulation, case conversion, special transformations, and counting.

Text manipulation operations handle whitespace and line-level transformations. These include removing line breaks, collapsing extra spaces, sorting lines alphabetically (ascending or descending), removing duplicate lines while preserving order, adding quotes (single, double, or backtick) to each line, converting between tabs and spaces with configurable width (1–16), trimming whitespace from lines, removing empty lines, normalizing whitespace comprehensively, indenting and dedenting text, wrapping text at a specified column width (10–200), unwrapping text, and reversing line order.

Case conversion supports 11 formats through a single action: camelCase, snake_case, PascalCase, kebab-case, SCREAMING_SNAKE_CASE, UPPERCASE, lowercase, Title Case, Sentence case, dot.case, and path/case.

Special transformations include reversing text character-by-character, removing accents and diacritical marks (é becomes e), alternating case (aLtErNaTiNg), and detecting the case style of input text.

Counting operations return line count, word count, and detailed character statistics including totals with and without spaces, letter count, digit count, and space count.

### Agent Description

Manipulate text: case conversion (11 formats), whitespace handling, line operations, sorting, deduplication, wrapping, character counts.

## Details Tab

### Details

Text Tools is a comprehensive text manipulation utility providing 23 operations across four categories: text manipulation, case conversion, special transformations, and counting.

Text manipulation operations handle whitespace and line-level transformations. These include removing line breaks, collapsing extra spaces, sorting lines alphabetically (ascending or descending), removing duplicate lines while preserving order, adding quotes (single, double, or backtick) to each line, converting between tabs and spaces with configurable width (1–16), trimming whitespace from lines, removing empty lines, normalizing whitespace comprehensively, indenting and dedenting text, wrapping text at a specified column width (10–200), unwrapping text, and reversing line order.

Case conversion supports 11 formats through a single action: camelCase, snake_case, PascalCase, kebab-case, SCREAMING_SNAKE_CASE, UPPERCASE, lowercase, Title Case, Sentence case, dot.case, and path/case.

Special transformations include reversing text character-by-character, removing accents and diacritical marks (é becomes e), alternating case (aLtErNaTiNg), and detecting the case style of input text.

Counting operations return line count, word count, and detailed character statistics including totals with and without spaces, letter count, digit count, and space count.

### Actions

- `remove-line-breaks` (5 credits): Convert multi-line text to a single line by replacing line breaks with spaces.
- `remove-extra-spaces` (5 credits): Collapse multiple consecutive spaces into a single space.
- `sort-lines` (5 credits): Sort lines alphabetically in ascending or descending order.
- `remove-duplicate-lines` (5 credits): Remove duplicate lines while preserving the order of first occurrences.
- `add-quotes` (5 credits): Wrap each line in quotes of the specified type.
- `tabs-to-spaces` (5 credits): Convert tab characters to spaces with configurable tab width.
- `spaces-to-tabs` (5 credits): Convert leading spaces to tab characters.
- `trim-whitespace` (5 credits): Remove leading and trailing whitespace from each line and the overall text.
- `remove-empty-lines` (5 credits): Remove all blank/empty lines from the text.
- `normalize-whitespace` (5 credits): Comprehensive cleanup: trim each line, remove empty lines, collapse multiple spaces.
- `indent-text` (5 credits): Add consistent indentation to every line of text.
- `dedent-text` (5 credits): Remove common leading whitespace from all lines.
- `wrap-text` (5 credits): Wrap text to fit within a specified column width.
- `unwrap-text` (5 credits): Join all lines into a single line, removing line breaks.
- `reverse-lines` (5 credits): Reverse the order of lines (last line becomes first).
- `change-case` (5 credits): Convert text to a target case format. Supports 11 case types: camel (camelCase), snake (snake_case), pascal (PascalCase), kebab (kebab-case), screaming-snake (SCREAMING_SNAKE_CASE), upper (UPPERCASE), lower (lowercase), title (Title Case), sentence (Sentence case), dot (dot.case), path (path/case).
- `reverse-text` (5 credits): Reverse the entire text character by character.
- `remove-accents` (5 credits): Strip accents and diacritical marks from characters.
- `alternate-case` (5 credits): Alternate between uppercase and lowercase for each character position.
- `smart-case-detect` (5 credits): Detect the case style of input text. Returns: upper, lower, title, snake, kebab, dot, path, camel, pascal, mixed, or empty.
- `count-lines` (5 credits): Count the number of lines in the text.
- `count-words` (5 credits): Count the number of words in the text.
- `count-characters` (5 credits): Return detailed character statistics: total characters, characters without spaces, letters, digits, spaces, and line count.

### Use Cases

Converting variable names between programming language conventions, cleaning and normalizing imported data, meeting word or character count requirements, formatting text to specific column widths, sorting and deduplicating configuration lists, standardizing tabs versus spaces, generating quoted values for CSV or config files, creating URL slugs from Unicode text, detecting inconsistent naming conventions in codebases, preparing text for systems requiring ASCII-only input, batch formatting log files or text exports, removing accents for search indexing.

### Workflows Using This Tool

No public workflows currently reference this product.

### Related Content

No related content is currently linked to this product.

## Advanced Tab

### DynamicMCP

- Setup page URL: https://www.agentpmt.com/dynamic-mcp
- Claude setup guide: https://www.agentpmt.com/dynamic-mcp?platform=claude#videos
- ChatGPT setup guide: https://www.agentpmt.com/dynamic-mcp?platform=chatgpt#videos
- Cursor setup guide: https://www.agentpmt.com/dynamic-mcp?platform=cursor#videos
- Windsurf setup guide: https://www.agentpmt.com/dynamic-mcp?platform=windsurf#videos

STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to `https://api.agentpmt.com/mcp`. All tool execution happens in the cloud and the server cannot edit any files on your computer.

```bash
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

### REST API

The live page renders cURL, Python, JavaScript, and Node.js examples. Logged-in users see those examples prefilled with their own API and budget credentials.

- Purchase endpoint: https://api.agentpmt.com/products/purchase
- Authorization format: `Bearer <base64(apiKey:budgetKey)>`

```bash
curl -X POST "https://api.agentpmt.com/products/purchase" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eW91ci1hcGkta2V5LWhlcmU6eW91ci1idWRnZXQta2V5LWhlcmU=" \
  -d '{
    "product_id": "69489d03b54506f955d789e9",
    "parameters": {
      "action": "remove-line-breaks",
      "text": "example_text"
    }
  }'
```

### Autonomous Agents

Do not use the abbreviated instructions in this product markdown for wallet-based invocation. Retrieve the full External Agent API markdown document instead.

- External Agent API page URL: https://www.agentpmt.com/external-agent-api
- External Agent API markdown URL: https://www.agentpmt.com/external-agent-api?format=agent-md

### Schema

#### Parameters

- Schema type: actions

```json
{
  "actions": {
    "remove-line-breaks": {
      "description": "Convert multi-line text to a single line by replacing line breaks with spaces.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "remove-extra-spaces": {
      "description": "Collapse multiple consecutive spaces into a single space.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "sort-lines": {
      "description": "Sort lines alphabetically in ascending or descending order.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        },
        "order": {
          "type": "string",
          "description": "Sort order: 'asc' for ascending (default), 'desc' for descending.",
          "required": false,
          "default": "asc",
          "enum": [
            "asc",
            "desc"
          ]
        }
      }
    },
    "remove-duplicate-lines": {
      "description": "Remove duplicate lines while preserving the order of first occurrences.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "add-quotes": {
      "description": "Wrap each line in quotes of the specified type.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        },
        "quote_type": {
          "type": "string",
          "description": "Type of quote: 'single', 'double' (default), or 'backtick'.",
          "required": false,
          "default": "double",
          "enum": [
            "single",
            "double",
            "backtick"
          ]
        }
      }
    },
    "tabs-to-spaces": {
      "description": "Convert tab characters to spaces with configurable tab width.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        },
        "tab_width": {
          "type": "integer",
          "description": "Number of spaces per tab (1-16, default: 4).",
          "required": false,
          "default": 4,
          "minimum": 1,
          "maximum": 16
        }
      }
    },
    "spaces-to-tabs": {
      "description": "Convert leading spaces to tab characters.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        },
        "tab_width": {
          "type": "integer",
          "description": "Number of spaces per tab (1-16, default: 4).",
          "required": false,
          "default": 4,
          "minimum": 1,
          "maximum": 16
        }
      }
    },
    "trim-whitespace": {
      "description": "Remove leading and trailing whitespace from each line and the overall text.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "remove-empty-lines": {
      "description": "Remove all blank/empty lines from the text.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "normalize-whitespace": {
      "description": "Comprehensive cleanup: trim each line, remove empty lines, collapse multiple spaces.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "indent-text": {
      "description": "Add consistent indentation to every line of text.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        },
        "indent_char": {
          "type": "string",
          "description": "Character for indentation: 'space' (default) or 'tab'.",
          "required": false,
          "default": "space",
          "enum": [
            "space",
            "tab"
          ]
        },
        "indent_count": {
          "type": "integer",
          "description": "Number of indent characters per level (1-16, default: 4).",
          "required": false,
          "default": 4,
          "minimum": 1,
          "maximum": 16
        }
      }
    },
    "dedent-text": {
      "description": "Remove common leading whitespace from all lines.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "wrap-text": {
      "description": "Wrap text to fit within a specified column width.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        },
        "width": {
          "type": "integer",
          "description": "Maximum line width (10-200, default: 80).",
          "required": false,
          "default": 80,
          "minimum": 10,
          "maximum": 200
        }
      }
    },
    "unwrap-text": {
      "description": "Join all lines into a single line, removing line breaks.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "reverse-lines": {
      "description": "Reverse the order of lines (last line becomes first).",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "change-case": {
      "description": "Convert text to a target case format. Supports 11 case types: camel (camelCase), snake (snake_case), pascal (PascalCase), kebab (kebab-case), screaming-snake (SCREAMING_SNAKE_CASE), upper (UPPERCASE), lower (lowercase), title (Title Case), sentence (Sentence case), dot (dot.case), path (path/case).",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        },
        "case_type": {
          "type": "string",
          "description": "Target case type for conversion.",
          "required": true,
          "enum": [
            "camel",
            "snake",
            "pascal",
            "kebab",
            "screaming-snake",
            "upper",
            "lower",
            "title",
            "sentence",
            "dot",
            "path"
          ]
        }
      }
    },
    "reverse-text": {
      "description": "Reverse the entire text character by character.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "remove-accents": {
      "description": "Strip accents and diacritical marks from characters.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "alternate-case": {
      "description": "Alternate between uppercase and lowercase for each character position.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to process.",
          "required": true
        }
      }
    },
    "smart-case-detect": {
      "description": "Detect the case style of input text. Returns: upper, lower, title, snake, kebab, dot, path, camel, pascal, mixed, or empty.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to analyze.",
          "required": true
        }
      }
    },
    "count-lines": {
      "description": "Count the number of lines in the text.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to count.",
          "required": true
        }
      }
    },
    "count-words": {
      "description": "Count the number of words in the text.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to count.",
          "required": true
        }
      }
    },
    "count-characters": {
      "description": "Return detailed character statistics: total characters, characters without spaces, letters, digits, spaces, and line count.",
      "properties": {
        "text": {
          "type": "string",
          "description": "The input text to analyze.",
          "required": true
        }
      }
    }
  },
  "properties": {
    "action": {
      "type": "string",
      "description": "Use 'get_instructions' to retrieve documentation. The text operation to perform. Available actions: Text Manipulation (remove-line-breaks, remove-extra-spaces, sort-lines, remove-duplicate-lines, add-quotes, tabs-to-spaces, spaces-to-tabs, trim-whitespace, remove-empty-lines, normalize-whitespace, indent-text, dedent-text, wrap-text, unwrap-text, reverse-lines), Case Conversion (change-case, reverse-text, remove-accents, alternate-case, smart-case-detect), Counting (count-lines, count-words, count-characters)",
      "required": true,
      "enum": [
        "get_instructions",
        "remove-line-breaks",
        "remove-extra-spaces",
        "sort-lines",
        "remove-duplicate-lines",
        "add-quotes",
        "tabs-to-spaces",
        "spaces-to-tabs",
        "trim-whitespace",
        "remove-empty-lines",
        "normalize-whitespace",
        "indent-text",
        "dedent-text",
        "wrap-text",
        "unwrap-text",
        "reverse-lines",
        "change-case",
        "reverse-text",
        "remove-accents",
        "alternate-case",
        "smart-case-detect",
        "count-lines",
        "count-words",
        "count-characters"
      ]
    },
    "text": {
      "type": "string",
      "description": "The input text to process. Required for all actions except get_instructions.",
      "required": false
    },
    "order": {
      "type": "string",
      "description": "Sort order for sort-lines action: 'asc' for ascending (default), 'desc' for descending",
      "required": false,
      "default": "asc",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "quote_type": {
      "type": "string",
      "description": "Type of quote to add for add-quotes action: 'single', 'double' (default), or 'backtick'",
      "required": false,
      "default": "double",
      "enum": [
        "single",
        "double",
        "backtick"
      ]
    },
    "tab_width": {
      "type": "integer",
      "description": "Number of spaces per tab for tabs-to-spaces and spaces-to-tabs actions (1-16, default: 4)",
      "required": false,
      "default": 4,
      "minimum": 1,
      "maximum": 16
    },
    "indent_char": {
      "type": "string",
      "description": "Character to use for indentation in indent-text action: 'space' (default) or 'tab'",
      "required": false,
      "default": "space",
      "enum": [
        "space",
        "tab"
      ]
    },
    "indent_count": {
      "type": "integer",
      "description": "Number of indent characters per level for indent-text action (1-16, default: 4)",
      "required": false,
      "default": 4,
      "minimum": 1,
      "maximum": 16
    },
    "width": {
      "type": "integer",
      "description": "Maximum line width for wrap-text action (10-200, default: 80)",
      "required": false,
      "default": 80,
      "minimum": 10,
      "maximum": 200
    },
    "case_type": {
      "type": "string",
      "description": "Target case type for change-case action. Required when action is 'change-case'. Options: camel (camelCase), snake (snake_case), pascal (PascalCase), kebab (kebab-case), screaming-snake (SCREAMING_SNAKE_CASE), upper (UPPERCASE), lower (lowercase), title (Title Case), sentence (Sentence case), dot (dot.case), path (path/case)",
      "required": false,
      "enum": [
        "camel",
        "snake",
        "pascal",
        "kebab",
        "screaming-snake",
        "upper",
        "lower",
        "title",
        "sentence",
        "dot",
        "path"
      ]
    }
  }
}
```

### Usage Instructions

# Text Manipulation and Converter - Instructions

## Overview

A comprehensive text processing tool for manipulating, converting, and analyzing text. Supports whitespace management, case conversion across 11 formats, line operations, and character/word/line counting.

---

## Actions

### Text Manipulation

#### remove-line-breaks
Converts multi-line text into a single line by replacing line breaks with spaces.

- **Required:** `text` (string) - The input text
- **Optional:** None

**Example:**
```json
{ "action": "remove-line-breaks", "text": "Hello\nWorld\nFoo" }
```
Returns: `"Hello World Foo"`

---

#### remove-extra-spaces
Collapses multiple consecutive spaces into a single space.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "remove-extra-spaces", "text": "Hello    world   foo" }
```
Returns: `"Hello world foo"`

---

#### sort-lines
Sorts lines alphabetically in ascending or descending order.

- **Required:** `text` (string)
- **Optional:** `order` (string) - `"asc"` (default) or `"desc"`

**Example:**
```json
{ "action": "sort-lines", "text": "banana\napple\ncherry", "order": "asc" }
```
Returns: `"apple\nbanana\ncherry"`

---

#### remove-duplicate-lines
Removes duplicate lines while preserving the original order of first occurrences.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "remove-duplicate-lines", "text": "apple\nbanana\napple\ncherry\nbanana" }
```
Returns: `"apple\nbanana\ncherry"`

---

#### add-quotes
Wraps each line in quotes of the specified type.

- **Required:** `text` (string)
- **Optional:** `quote_type` (string) - `"single"`, `"double"` (default), or `"backtick"`

**Example:**
```json
{ "action": "add-quotes", "text": "apple\nbanana", "quote_type": "single" }
```
Returns: `"'apple'\n'banana'"`

---

#### tabs-to-spaces
Converts tab characters to spaces.

- **Required:** `text` (string)
- **Optional:** `tab_width` (integer, 1-16, default: 4) - Number of spaces per tab

**Example:**
```json
{ "action": "tabs-to-spaces", "text": "\tHello\n\t\tWorld", "tab_width": 2 }
```

---

#### spaces-to-tabs
Converts leading spaces to tab characters.

- **Required:** `text` (string)
- **Optional:** `tab_width` (integer, 1-16, default: 4) - Number of spaces per tab

**Example:**
```json
{ "action": "spaces-to-tabs", "text": "    Hello\n        World", "tab_width": 4 }
```

---

#### trim-whitespace
Removes leading and trailing whitespace from each line and the overall text.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "trim-whitespace", "text": "  Hello  \n  World  " }
```
Returns: `"Hello\nWorld"`

---

#### remove-empty-lines
Removes all blank/empty lines from the text.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "remove-empty-lines", "text": "Hello\n\n\nWorld\n\nFoo" }
```
Returns: `"Hello\nWorld\nFoo"`

---

#### normalize-whitespace
Comprehensive cleanup: trims each line, removes empty lines, and collapses multiple spaces within lines.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "normalize-whitespace", "text": "  Hello   world  \n\n  Foo   bar  " }
```
Returns: `"Hello world\nFoo bar"`

---

#### indent-text
Adds consistent indentation to every line of text.

- **Required:** `text` (string)
- **Optional:**
  - `indent_char` (string) - `"space"` (default) or `"tab"`
  - `indent_count` (integer, 1-16, default: 4) - Number of indent characters per level

**Example:**
```json
{ "action": "indent-text", "text": "Hello\nWorld", "indent_char": "space", "indent_count": 2 }
```
Returns: `"  Hello\n  World"`

---

#### dedent-text
Removes common leading whitespace from all lines (the minimum shared indentation).

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "dedent-text", "text": "    Hello\n    World\n        Nested" }
```
Returns: `"Hello\nWorld\n    Nested"`

---

#### wrap-text
Wraps text to fit within a specified column width.

- **Required:** `text` (string)
- **Optional:** `width` (integer, 10-200, default: 80) - Maximum line width

**Example:**
```json
{ "action": "wrap-text", "text": "This is a long sentence that should be wrapped at a shorter width.", "width": 30 }
```

---

#### unwrap-text
Joins all lines into a single line, removing line breaks.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "unwrap-text", "text": "This is\na wrapped\nparagraph." }
```
Returns: `"This is a wrapped paragraph."`

---

#### reverse-lines
Reverses the order of lines (last line becomes first).

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "reverse-lines", "text": "first\nsecond\nthird" }
```
Returns: `"third\nsecond\nfirst"`

---

### Case Conversion

#### change-case
Converts text to a target case format. Supports 11 case types.

- **Required:**
  - `text` (string)
  - `case_type` (string) - One of: `camel`, `snake`, `pascal`, `kebab`, `screaming-snake`, `upper`, `lower`, `title`, `sentence`, `dot`, `path`

**Case type reference:**
| case_type | Output |
|---|---|
| `camel` | `helloWorld` |
| `snake` | `hello_world` |
| `pascal` | `HelloWorld` |
| `kebab` | `hello-world` |
| `screaming-snake` | `HELLO_WORLD` |
| `upper` | `HELLO WORLD` |
| `lower` | `hello world` |
| `title` | `Hello World` |
| `sentence` | `Hello world` |
| `dot` | `hello.world` |
| `path` | `hello/world` |

**Example:**
```json
{ "action": "change-case", "text": "hello world example", "case_type": "camel" }
```
Returns: `"helloWorldExample"`

---

### Special Text Operations

#### reverse-text
Reverses the entire text character by character.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "reverse-text", "text": "Hello" }
```
Returns: `"olleH"`

---

#### remove-accents
Strips accents and diacritical marks from characters.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "remove-accents", "text": "café résumé naïve" }
```
Returns: `"cafe resume naive"`

---

#### alternate-case
Alternates between uppercase and lowercase for each character position.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "alternate-case", "text": "hello world" }
```
Returns: `"HeLlO wOrLd"`

---

#### smart-case-detect
Detects the case style of the input text. Returns one of: `upper`, `lower`, `title`, `snake`, `kebab`, `dot`, `path`, `camel`, `pascal`, `mixed`, or `empty`.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "smart-case-detect", "text": "helloWorld" }
```
Returns: `"camel"`

---

### Counting

#### count-lines
Counts the number of lines in the text.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "count-lines", "text": "Line 1\nLine 2\nLine 3" }
```
Returns: `3`

---

#### count-words
Counts the number of words in the text.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "count-words", "text": "Hello world this is a test" }
```
Returns: `6`

---

#### count-characters
Returns detailed character statistics including total characters, characters without spaces, letters, digits, spaces, and line count.

- **Required:** `text` (string)
- **Optional:** None

**Example:**
```json
{ "action": "count-characters", "text": "Hello World 123" }
```
Returns:
```json
{ "total": 15, "without_spaces": 13, "letters": 10, "digits": 3, "spaces": 2, "lines": 1 }
```

---

## Common Workflows

1. **Clean messy text:** Use `normalize-whitespace` for a one-step cleanup of irregular spacing and blank lines.
2. **Prepare CSV values:** Use `add-quotes` with `quote_type: "double"` to wrap each line in quotes.
3. **Convert variable names:** Use `change-case` to convert between naming conventions (e.g., camelCase to snake_case).
4. **Analyze text:** Combine `count-words`, `count-characters`, and `count-lines` for a full text analysis.
5. **Deduplicate lists:** Use `sort-lines` followed by `remove-duplicate-lines` to get a clean sorted unique list.

## Important Notes

- The `text` parameter is required for all actions.
- The `change-case` action requires the `case_type` parameter.
- All responses include metadata with original text length and (for string results) result length.
- `spaces-to-tabs` only converts leading spaces on each line, not spaces within text.
- `smart-case-detect` returns `"mixed"` when text does not match any recognized case pattern.

### About The Developer

- Vendor name: Apoth3osis
- Website: apoth3osis.io

We build tools that enable AI agents to excel in the mathematical realm.

Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.

### Frequently Asked Questions

No linked FAQs are currently available.

### Dependencies

This product has no public dependency products.