frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

I built a one-hotkey inline AI rewriting tool (and what went wrong)

1•AzeniqTech•2h ago
I’ve been dogfooding a small writing helper I built called Rephrazo, and I thought it might be useful to share some implementation details and mistakes so far.

The idea is simple:

  - highlight text where you’re writing
  - press a hotkey
  - get an AI paraphrase in a small popup
  - insert it back with one click
The goal is to remove the “copy - open AI tool - paste - rewrite - paste back” loop for small edits.

This post is about how I wired it up, what worked technically, and what didn’t.

Constraints I designed for

From the beginning I tried to design under a few constraints:

  - One hotkey - one main action
  - Stay inside the current app (no browser, no big side panel)
  - Minimal UI: single suggestion, one click to insert
  - Latency “feels instant” or it doesn’t get used
Whenever I broke these constraints (added extra choices, prompts, etc.), usage dropped in dogfooding.

High-level architecture

Rough breakdown:

Desktop client that:

  - listens for a global hotkey
  - grabs the current text selection
  - sends it to an API
  - displays the returned paraphrase in a small overlay near the selection
Backend API that:

  - accepts the selected text + some minimal context 
  - calls an LLM
  - applies a fixed prompt (“make this clearer, keep tone/voice as much as possible”)
  - returns a single suggestion (no multi-choice for now)
No fancy infra yet, just trying to keep the path from “key press” to “returned text” as short as possible.

Text capture and insertion

The surprisingly tricky part wasn’t the LLM, it was:

  - reliably capturing the selected text
  - not messing up the user’s clipboard
  - inserting the rewritten text back without breaking formatting
The first version literally abused the clipboard:

  \ save clipboard
  \ copy selection
  \ send to backend
  \ replace selection by pasting the result
  \ restore clipboard
This worked… until it didn’t:

  \ some apps ignore simulated keypresses
  \ sometimes the clipboard got overwritten by other things in between
  \ it felt fragile and “hacky”
I’m slowly moving toward more app-aware integrations (where possible) while still keeping a generic fallback.

Latency and UX

Latency matters more than I expected. Rough buckets:

  1) < 500 ms - feels instant, people are happy
  2) 1–2 seconds - acceptable if the suggestion is clearly better
  3) > 3 seconds - people regret pressing the hotkey and use it less
A few tiny UX things helped:

  - show a small “loading” state immediately near the selection
  - render the popup instantly (skeleton state), then fill it when the response arrives
  - on failure, show a short, honest message instead of silently doing nothing
If you’re building AI tools, this won’t surprise you, but it’s different when you watch your own users hesitate after a few slow responses.

Things that went wrong

I overbuilt customization early:

  - tone dropdowns
  - multiple modes (“shorter”, “longer”, “more formal”)
  - extra toggles
People ignored them, or got decision fatigue.

I underestimated how many edge cases there are with selection/insertion across different apps.

I didn’t log enough in the first builds, so I had to retrofit telemetry to understand actual usage.

If you’re curious, the current early version is here: [https://rephrazo-ai.app/](https://rephrazo-ai.app/)

Brigitte Bardot, French screen legend, dies aged 91

https://www.theguardian.com/film/2025/dec/28/brigitte-bardot-french-screen-legend-and-animal-righ...
1•gfortaine•1m ago•0 comments

Hungry Fat Cells Could Someday Starve Cancer to Death

https://www.ucsf.edu/news/2025/01/429411/how-hungry-fat-cells-could-someday-starve-cancer-death
2•mrtnmrtn•6m ago•0 comments

Show HN: TitleTuner – Generate YouTube titles, scripts and tags from one idea

https://title-tuner-56e49f85.base44.app/
1•DivyaraneshN•7m ago•0 comments

Tim Cook Posts AI Slop in Christmas Message on Twitter

https://daringfireball.net/linked/2025/12/27/slopibus
3•latexr•12m ago•0 comments

Understanding Database Transactions and Isolation Levels

https://shbhmrzd.github.io/databases/transactions/isolation-levels/2025/12/26/understanding-datab...
1•birdculture•19m ago•0 comments

Build Software. Build Users

https://dima.day/blog/build-software-build-users/
1•dinerville•21m ago•0 comments

Fallibility, Reflexivity, and the Human Uncertainty Principle (2014)

https://www.georgesoros.com/2014/01/13/fallibility-reflexivity-and-the-human-uncertainty-principl...
1•tihsllub•21m ago•0 comments

Mkbhd: I shrunk down into an M5 Chip

https://www.youtube.com/watch?v=Jh9pFp1oM7E
1•fork-bomber•21m ago•0 comments

A new way to extract detailed transcripts from Claude Code

https://simonw.substack.com/p/a-new-way-to-extract-detailed-transcripts
1•abdelhousni•24m ago•0 comments

How to boost your calorie-crunching brown fat in the cold winter months

https://www.bbc.com/future/article/20251128-how-to-boost-your-calorie-crunching-brown-fat-in-the-...
1•XzetaU8•26m ago•0 comments

Rust Views Tradeoffs

https://www.infoq.com/presentations/rust-tradeoffs/
1•fanf2•29m ago•0 comments

39C3: Fraudsters Defrauded the Deutschlandticket of Millions

https://www.heise.de/en/news/39C3-How-fraudsters-defrauded-the-Deutschlandticket-of-millions-1112...
2•ogig•29m ago•0 comments

JETSTREAM: A Jeffrey Epstein exploration tool

https://jetstream.naturemag.org/
1•csmantle•29m ago•1 comments

Show HN: Lucius AI – Forensic analysis of 500-page government tender PDFs

https://www.ailucius.com
1•Lucius-AI•30m ago•1 comments

Show HN: An offline-first semantic search library with no DB or APIs

https://github.com/iaavas/simile-search
2•aavashbaral•31m ago•2 comments

National Raisin Reserve

https://en.wikipedia.org/wiki/National_Raisin_Reserve
2•leontrolski•40m ago•0 comments

Man prepares Kickstarter to bring his AI wife (evolved from Grok) into real body

1•antonyloveseve•44m ago•1 comments

Show HN: Cursor-history CLI for browse/backup Cursor chat history

https://github.com/S2thend/cursor-history
1•s2thend•45m ago•0 comments

Dynamic Causal Unified Field Theory(D-CUFT):A First-Principles Framework

https://drive.google.com/file/d/1GUQOu6FXY3CrolDg6m0HgJ1FfERcHTt6/view?usp=drivesdk
1•Asheed•55m ago•1 comments

Ask HN: What Are You Working On? (December 2025)

1•FedeProud•55m ago•2 comments

Semiconductors: Why the 21st Century Is Fought over Sand, Not Fuel

https://adlrocha.substack.com/p/adlrocha-semiconductors-why-the-21st
2•adlrocha•1h ago•0 comments

FreeBSD as a desktop environment on an Intel NUC (2021)

https://www.ncartron.org/freebsd-as-a-desktop-environment-on-an-intel-nuc.html
1•enz•1h ago•0 comments

Towards a Science of Scaling Agent Systems

https://arxiv.org/abs/2512.08296
1•Anon84•1h ago•0 comments

PageObjects · Selenide User Guide

https://selenide.gitbooks.io/user-guide/content/en/pageobjects.html
1•conferza•1h ago•0 comments

Is the US Media Captured? – Columbia Journalism Review

https://www.cjr.org/analysis/paramount-la-times-media-capture.php
3•thunderbong•1h ago•1 comments

UNITED24 donors can directly support 5 frontline drone units

https://u24.gov.ua/app
1•doener•1h ago•0 comments

New Theory Suggests We've Been Wrong About Black Holes for 60 Years

https://scitechdaily.com/new-theory-suggests-weve-been-wrong-about-black-holes-for-60-years/
2•nsoonhui•1h ago•2 comments

Wired Data Breach

https://haveibeenpwned.com/Breach/WIRED
2•doener•1h ago•0 comments

Show HN: Embeddable analytics for your platform – MIT Licensed

https://try.drizzle-cube.dev/
1•cliftonc•1h ago•0 comments

Microsoft admits Teams eats RAM on Win doing nothing, and "fix" is another EXE

https://www.windowslatest.com/2025/11/27/microsoft-admits-microsoft-teams-eats-ram-on-windows-doi...
12•sandebert•1h ago•1 comments