2026

Text Linter

A Raycast extension that cleans pasted Markdown and prose before you copy, paste, or save. Clipboard-first workflow, configurable lint rules, local-only settings, and rich and plain paste paths. Public GitHub utility.

Developer toolingProduct designTiny toolsPublic tool
Illustrative project view

Writing markdown every day means pasting text from other sources every day. That text arrives with inconsistent spacing, heading levels, list formatting, quote styles, and footnote placement. Cleaning it by hand is tedious enough that most people skip it and live with messy documents.

Text Linter is a Raycast extension that sits between your clipboard and your destination. You open it, your clipboard content is already there, you clean it with configurable rules, and you copy, paste, or save the result. The whole interaction takes seconds and stays inside Raycast.

Public repository: github.com/1Pio/raycast-text-linter

Clipboard-first by design

The workflow is built around the assumption that you already have text in your clipboard. When you open Lint Text, the clipboard prefills into the editor. Rich HTML and plain-text paste shortcuts are supported, so content from web pages, code editors, or other applications arrives in a workable state. After linting, the Action Panel offers copy, paste, and save-as-file paths.

This is a small detail that changes the feel of the tool. A linter that asks you to open a file, paste manually, configure, then copy again is too much friction for a task that should be instant. Prefilling from clipboard makes the extension feel like part of the paste flow rather than a separate application.

Rules that cover real mess

The lint rules target the problems that actually appear in pasted markdown and prose: spacing normalization, heading consistency, list formatting, footnote placement, quote styles, and paste cleanup artifacts. Configure Rules is a separate command that lets you toggle individual rules, adjust options, and restore defaults. The defaults come from a personal markdown linting setup, so they reflect real daily use rather than theoretical formatting standards.

The release-candidate discipline

Before publishing, I ran a full release-candidate review: README, CHANGELOG, package metadata, command naming, privacy behavior, and store-policy gaps. The review checked official Raycast docs for compliance and constrained edits to release polish rather than feature changes.

One specific detail mattered. Raycast's own lint output corrected generic title-casing instincts. "Paste as..." and "Save as File..." should follow Raycast lint output, not a generic style rule. That kind of platform-specific compliance is easy to miss if you trust your own capitalization habits over the platform's own standards.

The honest assessment was that the extension is ready for public GitHub but not ready for the Raycast Store. Store submission needs screenshots and demo material, author and account alignment, and a decision about whether the separate Configure Rules command conflicts with Raycast guidance that discourages configuration-only commands when Preferences can cover settings. The release pass was checked with tests, Raycast build and lint, and a review of the public diff.

What I take from it

The value of a utility tool is measured in how often you reach for it and how little friction it adds. Text Linter earned its place in my daily Raycast setup because it does one thing, does it fast, and stays out of the way.