I built a Safari extension for reading web pages with local TTS
▲ 1 r/Safari

I built a Safari extension for reading web pages with local TTS

I built a Safari extension for reading web pages with local TTS

I’ve been using TTS to proofread some of the longer technical articles I’ve been writing, and eventually wanted the same thing for arbitrary web pages.

So I built WebReader. It uses Mozilla Readability to extract the useful content from a page and sends it to my local TTS stack. It can read the whole article, start from where you are on the page, or just read selected text.

It’s open source and still a little rough around the edges, but it’s useful enough that I figured I’d release it and see what other people think.

More details, screenshots, setup and source:

https://unixwzrd.ai/projects/WebReader/2026/09/08/webreader-introduction/

I’d be interested in feedback, particularly websites that manage to break it.

Give it a shot and let me know what you think.

u/Unixwzrd — 1 month ago
▲ 1 r/ChatGPTPro+2 crossposts

I built a Safari extension to export ChatGPT conversations, and now it can preserve the generated and uploaded files too

I’ve seen a number of people here asking about exporting individual ChatGPT conversations, so I thought this might be useful to some Mac/Safari users.

I’m the developer of LogGPT, a Safari extension I originally built because I wanted a simple way to save an individual ChatGPT conversation as structured JSON instead of relying on the account-wide export.

One thing kept bothering me, though: a ChatGPT conversation isn’t necessarily just the text.

I routinely have screenshots, PDFs, spreadsheets, code archives and other files that I’ve uploaded as context, along with images, documents, audio and other artifacts ChatGPT has generated during the conversation. Saving the JSON while losing those files isn’t really a complete archive.

So the new LogGPT Plus upgrade can preserve those as well. You can export generated artifacts, uploaded artifacts, or both. It creates a ZIP containing the conversation JSON, the files, and a manifest describing what was found and what was successfully downloaded.

If one artifact can’t be recovered, it doesn’t throw away the export. It saves everything it can and records the failure in the manifest.

Everything is handled locally. There are no LogGPT accounts, analytics, telemetry, or external processing service. The basic JSON export is still there and works the same way it always has.

It’s a Safari extension for macOS, so obviously this won’t help someone using Chrome or Windows. But if you’re on a Mac and have been looking for a way to keep individual ChatGPT conversations locally, particularly conversations containing files, that’s exactly the problem I built it to solve.

I also built an open-source companion tool called extract-chat that takes either ChatGPT/OpenAI conversation JSON or a LogGPT Plus ZIP and turns it into readable Markdown or HTML. When artifacts are available, it preserves the local references so the resulting document stays connected to the files from the conversation.

So the workflow can be as simple as: export the conversation and its artifacts with LogGPT Plus, then use extract-chat to turn that archive into something you can actually read, search, keep in a project, or browse offline.

If you’ve ever downloaded ChatGPT history, opened the JSON, and thought, “What am I supposed to do with this?”, that’s basically the problem extract-chat solves. It’s open source as well.

The project is open source if you’d rather inspect the code or build it yourself, and extract-chat is open source too.

More information, screenshots, links to the source and Mac App Store: https://unixwzrd.ai/s/39e7b3ae47/

I’d also be interested in hearing about artifact types or weird ChatGPT conversations these tools don’t handle. ChatGPT’s conversation format has changed quite a bit over time, so unusual cases are genuinely useful to me.

u/Unixwzrd — 12 days ago
▲ 0 r/codex

This Slows Down My Workflow and Needs to Go Away.

The content type selection which pops up after ``` is extremely annoying and needs to go. It never "guesses" the correct content type, at least not for me.

This showed up after the recent update. Remove it or make it optional, I know no one from OpenAI will probably read this, but they don't read "bug/enhancements" on their help site and don't have any way of easily filing these sorts of reports, at least not that I have found.

Does anyone know of where I could file this annoyance?

u/Unixwzrd — 2 months ago
▲ 3 r/OpenAI

They changed the voice model in the latest update of the macOS desktop app

Don't know if anyone else noticed it, but after the update of the latest macOS app, I lost my default voice "Sol". The new voice was not particularly to my liking and i couldn't change it in settings or by hacking the .plist file.

I use the voice response to keep me from having to read reams of text with lots of bullets or just lengthy text and it's easier to listen, but the default voice doesn't do it for me now. I'd like the same voice i have in the web apps I have on my phone, but looks like there was voice pipeline change as far as I could tell by looking at the diff of the com.openai.chatgpt plist files - the old and the new.

I restored from Time Machine.

reddit.com
u/Unixwzrd — 4 months ago
▲ 1 r/MacOS

Tahoe 26.5 - Desktop Switching Fade-in/out

I just updated to Tahoe 26.5 (from 26.4.1) and the desktop switching now fades out/in with overlay when switching desktops. Also Mission Control does this to some extent. The look of this fading and out is new and I find it somewhat annoying because I'm so used to swipe right or left and the whole desktop moves right or left. Up-swipes and down-swipes for showing windows on desktop or all instances of an app kinda do this too now, but not nearly as annoying.

Other than eating extra cycles on my GPU, it just doesn't "look" or "feel" right when switching. I've been looking for a way to turn off this effect but haven't found it yet. I'm wondering what else changed in the update as well and what new surprises I might find.

Anyone know how to turn this off?

reddit.com
u/Unixwzrd — 5 months ago
▲ 2 r/hermesagent+1 crossposts

I kept running into .env clear text sprawl and stuff leaking into argv and shell history, so I built a local-first approach using macOS Keychain + exec-time injection (seckit run).

It solved the launchd problem cleanly - no secrets in plists, no .env files, no argv leakage, and nothing ending up in command history from exports or CLI flags.

It's not just for agents either - same pattern works for things like PostgreSQL, where you'd normally end up with .pgpass or PGPASSWORD floating around.

Tradeoff is you need to restart to pick up changes, but that's been manageable so far.

Wrote it up here: https://unixwzrd.ai/projects/Secrets-Kit/2026/05/04/launchd-seckit-run-and-invisible-env-vars/

Curious what others are doing here, especially for long-running processes. I'm sure there are edge cases I haven't run into yet.

u/Unixwzrd — 5 months ago