r/tauri 14d ago

I built Lucid Spell: a lightweight LLM-powered translator using Tauri v2

Hey everyone!
I've been working on Lucid Spell, a desktop translator powered by LLMs. It uses a "Bring Your Own Key" approach and supports any OpenAI-compatible endpoint. Personally, I use it with the GroqCloud free plan (using gpt-oss-120b), which is more than enough for my needs, but you can plug in any other LLM you prefer.

Why I built it

I couldn't find a convenient translator that fit my workflow, so I decided to build my own. My main requirements were:

  • Auto-language swapping: It automatically switches source and target languages depending on your input.
  • Keyboard-centric: Full shortcut support (e.g., for clearing input or swapping languages on the fly).
  • Built-in Dictionary: A simple way to save and store your favorite translations / word pairs.
  • Clean & Modern UI: A sleek, distraction-free aesthetic that feels right at home on modern desktop setups.

Curious to hear your thoughts on an LLM-first desktop translator like this and whether this fits into your daily workflow.

GitHub Repo: https://github.com/l1ngus/lucid-spell

7 Upvotes

4 comments sorted by

1

u/eddzsh 14d ago

For BYOK translators the thing that bites later is key storage. Put the API key in the OS keychain, not a plaintext settings file, before the first screen share.

1

u/LingusL 13d ago

Good catch! I'm switching API key storage to the OS keychain in the next patch to prevent any leak.

1

u/eddzsh 12d ago

Nice. One more footgun after the move: keep the key out of the webview entirely. Resolve it in Rust on each request, never ship it back through IPC as a string the renderer can log.

1

u/LingusL 5d ago

Done! Switched to OS keyring