A complete list of all available text transformation commands.
Rúmil is a text manipulation tool for everyday data wrangling. Paste in database output, log files, API responses, or any raw text and quickly transform it into the format you need — whether that's a spreadsheet-ready CSV, a converted data format like JSON to XML, or just cleaned-up text you can share with colleagues. It is not a code editor or IDE; there is no syntax highlighting or project management. Instead, it focuses on doing one thing well: reshaping text fast.
Named after Rúmil of Tirion, the Elf who invented the first writing system in Tolkien's legendarium.
| Action | Mac | Windows/Linux |
|---|---|---|
| Open Command Palette | ⌘K | Ctrl+K |
| Open Settings | ⌘, | Ctrl+, |
| Open File | ⌘O | Ctrl+O |
| Save / Download | ⌘S | Ctrl+S |
| Find and Replace | ⌘F ⌘H | Ctrl+F Ctrl+H |
| Add Cursor | Option + Click | Alt + Click |
| Select Next Occurrence | Ctrl+G | Alt+J |
| Go to Line | ⌘L | Ctrl+G |
| Select All Occurrences | Ctrl+⌘G | Ctrl+Alt+Shift+J |
| Indent Line(s) | Tab | Tab |
| Unindent Line(s) | Shift+Tab | Shift+Tab |
| Move Line(s) Up | Option+Shift+↑ | Alt+Shift+↑ |
| Move Line(s) Down | Option+Shift+↓ | Alt+Shift+↓ |
| Duplicate Line / Selection | ⌃⌥C | Ctrl+Alt+C |
| Toggle Split Editor | ⌘\ | Ctrl+\ |
| Switch Panel Focus | ⌘←/→ ⌘↑/↓ | Ctrl+←/→ Ctrl+↑/↓ |
| Close Focused Panel | ⌃W | Ctrl+W |
Press ⌘K (Mac) or Ctrl+K (Windows/Linux) to open the command palette. Type to search for commands, use arrow keys to navigate, and press Enter to execute.
Convert all letters to uppercase
Convert all letters to lowercase
Capitalize the first letter of each word
Lowercase the first letter of each word
Convert text to Title Case
Title case following AP style (capitalizes 4+ letter prepositions)
Title case following Chicago style (lowercases all prepositions)
Capitalize only the first letter of the text
Convert text to camelCase format
Convert text to PascalCase (UpperCamelCase)
Convert text to snake_case (underscore-separated lowercase)
Convert text to SCREAMING_SNAKE_CASE (uppercase with underscores)
Convert text to kebab-case (hyphen-separated lowercase)
Convert text to dot.case (dot-separated lowercase)
Swap uppercase and lowercase letters
Alternate case starting with lowercase
Alternate case starting with uppercase
Randomly change the case of each letter
Output varies each time
Convert machine-readable text to human-readable format
Convert text to URL-friendly slug format
Remove extra whitespace, leaving single spaces between words
Remove accents and diacritical marks from characters
Remove spaces and tabs but keep line breaks
Remove all whitespace including line breaks
Reverse the order of characters
Swap single and double quotes
Wrap text with double quotes
Remove surrounding quotes (supports single, double, and smart quotes)
Split text into groups of N characters (comma-separated)
Requires input: number of characters per group
Repeat the text N times
Requires input: number of repetitions (example shows 3)
Truncate text to N characters, adding ellipsis
Requires input: maximum length (example shows 8)
Truncate text at word boundary, adding ellipsis
Requires input: maximum length (example shows 12)
Wrap text with characters (auto-matches pairs like parentheses)
Requires input: opening character (e.g., ( [ { " ' **)
Remove surrounding characters (auto-detects pairs)
Pad text on the left to reach target length
Requires input: target length and optional padding character (e.g., '5, 0')
Pad text on the right to reach target length
Requires input: target length and optional padding character (e.g., '5')
Center text within a target width by padding both sides
Requires input: target width and optional padding character (e.g., '11' or '11, -')
Extract all numbers from text, one per line
Remove all numeric characters from text
Extract all email addresses from text, one per line
Extract all URLs from text, one per line
Keep only letters and numbers, remove everything else
Add text to the beginning
Requires input: the prefix to add (example shows 'Hello ')
Add text to the end
Requires input: the suffix to add (example shows ' world')
Add 1 to all integers in the text
Subtract 1 from all integers in the text
Add 1 to all numbers (including decimals) in the text
Subtract 1 from all numbers (including decimals) in the text
Create a sequence from numbers, starting with the first number found
Sort lines alphabetically ascending (case-insensitive)
Sort lines alphabetically descending (case-insensitive)
Sort lines alphabetically ascending (case-sensitive)
Sort lines alphabetically descending (case-sensitive)
Sort lines by numeric value
Reverse the order of lines (not characters)
Randomly reorder lines
Output varies each time
Keep only unique lines (ignores whitespace differences)
Delete blank lines from text
Remove leading/trailing whitespace from each line
Join multiple lines into one with a separator
Requires input: separator (example shows ', ')
Split text by delimiter into separate lines
Requires input: delimiter (example shows ', ')
Add line numbers as a prefix to each line
Pretty print JSON with indentation
Compact JSON to a single line
Convert JSON to YAML format
Convert JSON to JavaScript object literal by removing quotes from valid identifier keys
Convert JavaScript object literal to valid JSON by adding quotes to keys
Convert JSON to XML format
Convert JavaScript object literal to YAML format
Convert JavaScript object literal to XML format
Convert YAML to JSON format
Convert YAML to JavaScript object literal
Convert YAML to XML format
Convert XML to JSON format
Convert XML to YAML format
Convert CSV data to a JSON array of objects (first row as headers)
Convert a JSON array of objects to CSV (keys become headers)
Pretty print XML with indentation
Compact XML to a single line
Pretty print CSS with indentation
Compact CSS to a single line
Convert CSS-in-JS syntax to plain CSS
Convert plain CSS to CSS-in-JS syntax
Convert hex colour codes (#RGB, #RRGGBB, #RRGGBBAA) to rgb()/rgba()
Convert rgb()/rgba() colour values to hex codes
Convert hex colour codes to hsl()/hsla()
Convert hsl()/hsla() colour values to hex codes
Convert rgb()/rgba() colour values to hsl()/hsla()
Convert hsl()/hsla() colour values to rgb()/rgba()
Escape quotes and special characters for string literals
Convert escape sequences back to characters
Convert ASCII table format (with | separators) to CSV
Convert ASCII table format (with | separators) to TSV (tab-separated)
Generate random placeholder text by words, paragraphs, or bytes
Generate classic Lorem Ipsum text by words, paragraphs, or bytes
Encode text to Base64 format
Decode Base64 back to text
Percent-encode special characters for URLs
Decode percent-encoded URLs
Convert special characters to HTML entities
Convert HTML entities back to characters
Convert non-ASCII characters to \uXXXX format
Convert \uXXXX sequences back to characters
Generate SHA-256 hash of text (replaces selection with hash)
Show detailed character statistics (characters, words, lines, paragraphs, bytes)
Add a cursor at the end of each selected line for simultaneous editing
| represents cursor positions
Add a cursor at the start of each selected line for simultaneous editing
| represents cursor positions
Create a separate selection for each line in the current selection
[] represents selection ranges
Insert the current date in ISO 8601 format at the cursor position
Insert the current time in 24-hour format at the cursor position
Insert the current date and time in ISO 8601 format at the cursor position
Open a format builder to customize the output of Insert Date, Insert Time, and Insert Date-Time. Choose from presets or build your own format with year, month, day, hour, minute, second, AM/PM, and separator pieces.
Generate a random UUID (v4) and insert it at the cursor position
Output varies each time
The themes are named after Elven loremasters and scribes from Tolkien's legendarium: