0.9.23 cleaned up where prompts live. 0.9.24 cleans up what they produce.
The headline change is that AI prompts now preserve the original formatting and images when they replace your selection. Lists stay lists, tables stay tables, screenshots stay where you put them. There's also a rich result preview, a new prompt field for custom prompts, more reliable answers, and a fix for a multi-monitor crash that a few of you ran into.
AI prompts now keep your formatting and images
Until this release, prompts worked on plain text and Markdown. Select a bulleted list in Outlook, ask the AI to translate it, and the response would most likely come back as a flat paragraph. Your bullets, bold runs, inline images, and table cells were gone.
That's fixed. The selected rich content is now captured with its structure intact, sent through the prompt, and re-rendered back into the source app. The result is the same shape as what you started with:
- Lists stay lists. Bulleted and numbered lists round-trip cleanly.
- Tables stay tables. Cell boundaries and basic formatting are preserved.
- Images stay in place. Inline screenshots and signature images survive the rewrite.
This is especially noticeable in Outlook, Word and websites, where most real-world prompts are run against content that isn't plain prose.
A rich preview of what will be pasted
The prompt result popup now shows a rich preview instead of a plain-text blob. Images render. Tables render. The preview matches what will actually land in your document when you click Replace or Append, so there are no surprises after you accept.
New {{keep_format}} prompt field
If you write your own prompts, there's a new field you can drop into the template: {{keep_format}}. It tells the model to preserve markup and images in its response.
The built-in Rewrite, Translate, Change tone, and Spell check prompts include it by default, so they just work on rich text out of the box. If you want a custom prompt to stay plain-text, leave the field out.
More reliable answers
Two smaller changes that punch above their weight:
- Selected text is treated strictly as content. The model is told the selection is input, not instructions. This noticeably reduces the case where a question inside your selected text gets answered instead of rewritten.
- Empty responses now show a Retry button. Local LLMs and BYOK providers occasionally return nothing, especially under load. Instead of an empty result with no path forward, you get a clear message and one click to try again.
The Copy button is back
A few of you noticed it disappeared. It didn't completely go away. It is now under the Replace button in order to be more consistent with other extensions like Inline Terminal.
However, I understand that this made it less discoverable, so I've moved it back to the main row of buttons in the prompt result popup. You can use it when you want the AI output on your clipboard without replacing the original selection.
Better Polish and Brazilian Portuguese
Both languages got a substantial translation pass this release. If you previously saw English fallbacks or awkward text in the prompt UI, that should be cleaned up now.
Smaller improvements and fixes
- Fixed a crash that could happen when plugging in a new monitor while WindowSill was open. Hot-plug and dock/undock scenarios are now handled more defensively.
That's 0.9.24. The AI side of WindowSill should feel a lot more at home inside rich-text apps now. If you run into anything, let us know on Discord or GitHub.
