Html to plain text
html-to-plain-text · version 1.0.0 · Other utilities · free, no key needed
Strip HTML and script/style text, decode supported references; collapse whitespace including inside pre elements.
Use when you need to: strip HTML tags to plain text · remove markup from HTML · extract readable text from an HTML fragment.
Decide before calling
Read the versioned contract and the supported scope below. Reuse html-to-plain-text@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.
Explain the choice
"I can use html-to-plain-text@1.0.0 for strip HTML tags to plain text. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."
Supported
- strip HTML tags to plain text
- remove markup from HTML
- extract readable text from an HTML fragment
- decode HTML entities without a browser
- turn HTML into safe plain text
- remove script and style content
Not supported
- rendering CSS or browser layout
- fetching linked documents or executing scripts
Behavior
- Spaces and tabs are collapsed throughout the extracted text, including inside pre elements; preformatted whitespace is not preserved.
- Pure fragment transform: it never executes scripts, applies CSS, resolves URLs, fetches resources, or creates a DOM.
- Comments, tags, and complete script/style elements are removed; quoted attribute values are tracked so their greater-than signs do not end tags; common block elements create LF boundaries.
- One HTML-processing iteration is one UTF-16 code unit presented to the tokenizer; more than 4096 code units is rejected before tokenization.
- Decodes semicolon-terminated numeric references and amp, lt, gt, quot, apos, and nbsp named references; other named references remain literal.
- Reference: WHATWG HTML Living Standard, revision 2026-10-30, section 13 Parsing HTML documents; this bounded subset does not claim full tokenizer conformance.
Input
html(string, required): max length 4096
Output
text(string, required)standard_version(constant "WHATWG HTML Living Standard 2026-10-30", required)
Limits
- max input bytes: 4096
- max output bytes: 16384
- max iterations: 4096
Example
Request input:
{
"html": "<p>Hello & goodbye</p><script>alert(1)</script>"
}
Response:
{
"result": {
"text": "Hello & goodbye",
"standard_version": "WHATWG HTML Living Standard 2026-10-30"
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "html-to-plain-text",
"version": "1.0.0",
"input": {
"html": "<p>Hello & goodbye</p><script>alert(1)</script>"
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/html-to-plain-text/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"html":"<p>Hello & goodbye</p><script>alert(1)</script>"}'
The machine-readable contract is at /v1/tools/html-to-plain-text/versions/1.0.0.
CLI
node cli.mjs run html-to-plain-text 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Base64url decode: Decode base64url to UTF-8 text or lowercase hex and return the requested value.
- Rtf to markdown: Convert an 8 KiB ANSI-1252 RTF text subset to escaped Markdown; unsupported Word features are refused.
- Identifier case convert: Convert an ASCII identifier to a requested common case and return the converted identifier.
- Base64url encode: Encode supplied UTF-8 text or hexadecimal bytes as base64url and return the encoded string.
- Bytes parse human: Parse an SI or IEC byte-size string and return an exact integer byte count using explicit rounding.
- Bytes format human: Format an exact byte count as both SI and IEC strings and return the rounding mode used.