Instant spelling and grammar correction using LanguageTool API. Get real-time suggestions and improve your text quality in multiple languages.
# Clone the repository
git clone https://github.com/raycast/extensions.git
cd extensions/extensions/language-tool
# Install dependencies
npm install
# Development mode
npm run dev
# Build for production
npm run build
Keyboard Shortcuts:
ββ΅ - Apply all corrections and pasteββ§A - Apply all correctionsβR - Reset correctionsβC - Copy corrected textNote: The command prioritizes selected text over clipboard content. If no text is selected, it uses the clipboard.
Perfect for quick corrections while writing emails, documents, or messages.
β΅ to replace the selectionEvery correction starts out applied. To go through them one at a time, press βR
for the corrections list: β΅ switches a correction off and on, the sidebar offers
the other replacements LanguageTool suggests, and ββ΅ replaces the selection from
there.
Keyboard Shortcuts:
β΅ - Replace the selection with the corrected textβR - Review the corrections one by oneβL - Check in a different languageββ§R - Read the selection again and check it afreshββ§C - Copy the corrected textNote: Like Check Text Instant, it falls back to the clipboard when nothing is
selected. Raycast can reopen the command showing the previous run β ββ§R, or the
Check again button in the sidebar, picks up what is selected now.
Open Raycast Settings β Extensions β LanguageTool
No configuration required - works out of the box with free API!
For faster checks and higher limits:
Enable advanced features in settings:
Then configure:
π Read the Advanced Options Guide
30+ languages including:
| Language | Code | Variants |
|---|---|---|
| English | en | US, GB, CA, AU, NZ, ZA |
| Portuguese | pt | BR, PT, AO, MZ |
| Spanish | es | ES, AR, MX, and more |
| German | de | DE, AT, CH |
| French | fr | - |
| Italian | it | - |
| Dutch | nl | - |
| Russian | ru | - |
| Chinese | zh | - |
| Japanese | ja | - |
And many more! Use auto for automatic detection.
Languages you use most frequently automatically appear at the top of the list. No manual sorting needed!
Learn the shortcuts for faster workflow:
ββ΅ to apply all and paste instantlyUse "Check Text Instant" for quick corrections without opening UI. Perfect for:
Enable "Picky" level in advanced options for:
Set your mother tongue to detect common translation mistakes:
Text: "I am embarrassed" (English)
Mother Tongue: Portuguese
β Detects potential confusion with "embaraΓ§ada"
src/
βββ check-text.tsx # Main command (interactive form)
βββ check-text-instant.tsx # Background command (clipboard)
βββ check-selected-text.tsx # Selection command (review, then replace)
βββ components/ # React components
β βββ check-text-result.tsx # Results screen orchestrator
β βββ result-metadata.tsx # Results metadata display
β βββ result-actions.tsx # Action panel with shortcuts
β βββ corrections-list.tsx # Correction-by-correction review
βββ hooks/ # React hooks
β βββ use-text-corrections.ts # Corrections state management
β βββ use-correction-choices.ts # Replacement chosen per correction
β βββ use-selected-text-check.ts # Reads the selection and checks it
βββ services/ # Business logic
β βββ languagetool-api.ts # API client (Premium support)
βββ utils/ # Pure functions
β βββ text-correction.ts # Text correction algorithms
β βββ match-filter.ts # Drops unusable and overlapping matches
β βββ match-display.ts # Marks corrections in the rendered text
β βββ replace-selection.ts # Pastes over the selection
βββ config/ # Configuration
β βββ api.ts # API endpoints and limits
βββ types.ts # TypeScript types
Design Principles:
π‘ Configure your Premium credentials in settings for higher limits!
# Install dependencies
npm install
# Development mode (hot reload)
npm run dev
# Type checking
npm run lint
# Build for production
npm run build
# Publish to Raycast Store
npm run publish
Contributions are welcome! Please:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see LICENSE file for details.
Found a bug or have a suggestion?
Made with β€οΈ by lucastaonline