Rewrite selected text anywhere on Windows, privately and locally.
Improve writing, adjust its length, summarize it, or change its tone with a local small language model.
No account, API key, or cloud text processing is required.
TextRecast is a lightweight Windows desktop utility that rewrites text inside the applications you already use. Select editable text, click the floating TextRecast button, choose an operation, and apply the result back to the original selection.
Inference runs locally through LLamaSharp's CPU backend. The default model is Qwen2.5-1.5B-Instruct, and the SLM layer is designed so additional local models can be added later.
- Improve grammar, spelling, punctuation, wording, and clarity
- Make text shorter or longer while preserving its meaning
- Summarize long selections
- Change tone to Professional, Casual, Friendly, Formal, or Direct
- Work in browsers, editors, messaging apps, and other Windows applications
- Run formatting locally without an account or API key
- Cancel an active generation and retry a failed replacement
- Revalidate the source window and selected text before replacing anything
- Windows 10 or Windows 11 on x64 hardware
- The current Microsoft Visual C++ v14 Redistributable for x64
- Approximately 1.5 GB of available disk space
- An internet connection when no valid packaged or previously installed model is available
The published Windows x64 application is self-contained. Users running that build do not need to install .NET 10.
- Download the complete Windows x64 archive from the Releases page.
- Extract the entire archive to a folder.
- Run
TextRecast.exe.
Keep every file from the archive together; the application depends on the included .NET runtime and native inference libraries. If a packaged release is not available yet, follow Build from source.
When no valid packaged or previously installed model is available, TextRecast downloads the 1.1 GB Qwen model on first launch. It shows download and verification progress and lets you cancel or retry. The model is written to a temporary file and is installed only after its file size and SHA-256 checksum are verified.
The first formatting request loads the model into memory. Later requests reuse the loaded model and usually start faster.
Where is the downloaded model stored?
TextRecast stores the model for the current Windows user under:
%LOCALAPPDATA%\TextRecast\Models
%LOCALAPPDATA% is a standard Windows environment variable. It expands automatically to the signed-in user's local application-data folder; it is not a path tied to the developer's computer.
For the exact filename, checksum, upstream source, and offline setup instructions, see Models/README.md.
Why does this README contain file paths?
Only portable paths are used:
- Paths such as
src/TextRecast.App/...are relative to the repository and work wherever the project is cloned. The relative icon path at the top lets GitHub display the TextRecast icon. %LOCALAPPDATA%\TextRecast\Modelsis the Windows per-user storage location for the downloaded model.- Project paths in developer commands identify which project .NET should build or run.
There are no author-specific absolute paths in this README.
- Select editable text in another Windows application.
- Click the floating TextRecast icon.
- Choose Improve, Shorter, Longer, Summarize, or Tone.
- Choose a style when using Tone.
- Click Apply to generate the formatted text and replace the selection.
TextRecast returns focus to the source application, confirms that the original selection is still valid, and then replaces it. If replacement cannot be completed safely, the original text remains unchanged and the generated result remains available for Retry replace.
Drag the floating icon to reposition it. Right-click the icon and choose Quit TextRecast to close the application.
- TextRecast itself does not write selected or generated text to logs or files.
- Formatting runs on the local CPU and does not use a text-processing API.
- TextRecast does not maintain a formatting history.
- Selections are limited to 32,000 characters and expire after 15 minutes.
- The source window, process, capture age, and selected text are checked before replacement.
- Empty, oversized, or unsafe generated output is rejected.
- Clipboard restoration is best-effort because other applications can temporarily lock the Windows clipboard.
Capture fallback and replacement temporarily use the Windows clipboard. Windows clipboard history, clipboard sync, or third-party clipboard managers may retain that content, so disable those features when working with sensitive text.
Network access is used to obtain the model only when a valid model is not already packaged or installed. After that download, normal formatting does not require a cloud service.
Select text in another application
|
v
Capture the selection
(UI Automation or clipboard fallback)
|
v
Format with the local SLM
|
v
Revalidate the original selection
|
v
Replace the text and restore the clipboard when possible
The cloned project says that .NET 10 is missing
A source checkout requires the .NET 10 SDK for development. A published self-contained Windows x64 build does not require a separate .NET installation.
The application reports a missing Visual C++ DLL
Install the latest x64 package from Microsoft's supported Visual C++ Redistributable downloads, then restart TextRecast.
The model download or integrity check failed
Check the internet connection and available disk space, then restart TextRecast and retry. A failed or cancelled partial download is not installed. Offline setup details and the expected checksum are in Models/README.md.
No selected text was captured
Keep the source application open and the text selected before clicking TextRecast. The application must support UI Automation text selection or copying with Ctrl+C.
The selection could not be replaced
The window, process, selection, or capture age may have changed. Select the original text again and retry. Windows can also block simulated input when the source application is running as administrator and TextRecast is not.
Formatting is slow
Inference is CPU-only. The first request also verifies and loads the model, and large selections can require multiple inference passes. An active operation can be cancelled from the result window.
Building requires the .NET 10 SDK. From the repository root:
dotnet restore TextRecast.slnx
dotnet build TextRecast.slnx -c Release --no-restore
dotnet test TextRecast.slnx -c Release --no-build
dotnet run --project src/TextRecast.App/TextRecast.App.csprojdotnet publish src/TextRecast.App/TextRecast.App.csproj -c Release -r win-x64 --self-contained true -o artifacts/TextRecast-win-x64Distribute the complete output folder, not only the executable. The exact cataloged GGUF file documented in Models/README.md is packaged when it is placed in the repository's Models directory before publishing; otherwise TextRecast downloads the model for the current user on first launch.
- TextRecast.App contains the WPF presentation layer and application composition.
- TextRecast.Core contains platform-independent workflows, contracts, results, and models.
- TextRecast.Infrastructure contains local SLM inference and Windows integrations.
- tests contains Core and Infrastructure automated tests.
- Models documents the default model and offline packaging.
TextRecast.App ---------> TextRecast.Core
|
+---------------> TextRecast.Infrastructure
|
+---------------> TextRecast.Core
Model profiles are defined in SlmModelCatalog.cs. A new model can reuse installation, verification, storage, inference lifecycle, chunking, and workflow components; models with a different chat format should provide a matching prompt builder.
- WPF on .NET 10
- LLamaSharp with CPU inference
- Qwen2.5-1.5B-Instruct-GGUF
- Windows UI Automation, clipboard, and input APIs
Report security issues using the process in SECURITY.md.
TextRecast source code and documentation are licensed under the Apache License 2.0. Copyright 2026 snss10.
The TextRecast name, icon, and other brand assets identify this project. The Apache License 2.0 does not grant trademark rights beyond the uses permitted by Section 6 of the license.
See NOTICE for project attribution and THIRD-PARTY-NOTICES.md for the separate licenses and notices that apply to dependencies, icon artwork, and the downloaded model.