frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: MacOS Live Screensaver – A screensaver that plays live video streams

https://github.com/hauxir/macos-live-screensaver
56•hauxir•3d ago

Comments

hauxir•3d ago
Or any live stream on youtube for that matter, surprised this didn't exist before!
rollcat•20h ago
AVFoundation is pretty cool. You can whip out a simple audio/video player in a couple dozen lines of code. It was one of my first macOS apps/prototypes.
cnr•20h ago
Does it really save the screen? ;P
hauxir•20h ago
Is that really the point anymore :D?
nothrabannosir•19h ago
With oled it is, yes
MontagFTB•20h ago
How’d they get Claude listed as one of the contributors? Is that due to changes coming in to the repo from a Claude/github integration?
hauxir•20h ago
it's just claude code commiting and pushing for me because i'm lazy
threecheese•18h ago
Not lazy! This should be a requirement, so future “us” can discern authorship - just like any developer.
hrimfaxi•18h ago
It will probably go the opposite way though in the future. People will list when AI wasn't used in the loop, like how "sent from my iphone" was both a status signal and a request for leniency when it comes to spellcheck.
hackernewds•17h ago
if you read the article, it says it is entirely vibecoded
its-kostya•20h ago
> Disclaimer: This project was entirely vibe-coded. I've never written Swift before in my life

Something I've wondered - but not had much empirical evidence for - is if entirely vibe-coded projects are difficult to maintain. I, too, don't know swift so I cannot look over the codebase to gauge this. I am curious if any swift savants out there can weigh in.

Furthermore, I will follow the project and keep an eye out for patches/discussions and try to discern any friction and/or loss in momentum because it is difficult to work with (e.g. more bug/feature tickets than PRs, etc.). I am aware it might fizzle out on its own, irrespective of the quality of the codebase. This will be a curious exercise for me. This may be my first empirical data on this topic - sadly on vibe-coded & maintainability, not the project itself.

hauxir•20h ago
They most definitely are.

However this project is so simple it's more akin to a script. Really not that hard to grasp despite not knowing swift.

Also vibe coded an android tv version and used this codebase as input ;)

https://github.com/hauxir/androidtv-live-screensaver

runjake•18h ago
Indeed I was able to read through it's 555 lines in about 4-5 minutes. Nothing seems too ghastly -- it's a pretty good vibe coding job.
reaperducer•20h ago
I wonder if certain languages are easier to vibe code than others.

My supposition is that the better documented a language, the easier it would be for the LLMs.

Or is it the opposite: The more obtuse a language, the more StackOverflow questions, the easier it is for LLMs to work with.

its-kostya•20h ago
I've had success vibe-coding things that, I would imagine, make up more of the training dataset - more common. When I try to do more specific Linux systems programming it is pretty trash, especially with newer languages.
Someone•19h ago
> is if entirely vibe-coded projects are difficult to maintain

Vibe coding is too “Hail Mary” to me, but if you’re into it, I would think the best way to do that is by giving a LLM the git history of the project with each commit contain the prompt that created it and, if a human tweaked things, requiring that human to provide a good commit comment.

Then, you could give a LLM the git repo, instructions on what change you want to see, and have it create the next commit.

dylan604•17h ago
> requiring that human to provide a good commit comment.

Is this enough? Personally, I have a what very well may be a bad habit of mine that doesn't necessarily check git commit messages. When I'm working in a code base, I just never think about scrolling through those hoping to find where this bit of code was changed. I'd much rather have comments in the code itself. It seems better to me to save the maintainer time and effort. Maybe I've just taken too seriously the idea of "assume the maintainer after you will be a serial killer that knows where you live. don't make them angry by being lazy"

grimgrin•18h ago
this is kinda inline with what you're asking i think?

https://simonwillison.net/2025/Oct/7/vibe-engineering/

for me it's working on a thing, and then linting, type checking, running tests. and even then thoughtfulness still required

diob•17h ago
I think they're just as maintainable as any other legacy app you might encounter. As in, it can be hard. But it's doable. And it depends on the team that made it (AI + the human).
losthobbies•20h ago
I will be streaming a certain watering hole in Namibia.
grimgrin•19h ago
this is cool. i love shit like this

idk if any of y'all ever used https://satelliteeyes.tomtaylor.co.uk/ but I was a big fan. such that i now have my own process of keeping my wallpaper updated w/ various city webcams. throw in some noise/desaturation and you've got an _aesthetic_

anyway, this is about a screensaver not a wallpaper and i think there is cool potential with video streams as screensavers

t1234s•18h ago
Does anyone still use screensavers? I have set my machines to turn off the screen as soon as that was an available option.
grimgrin•18h ago
it's a combination of people seeking aesthetic (imo), and naturally, preventing an oled, plasma, or crt from burn-in
c-hendricks•18h ago
If the screen is off, what's to burn in?
grimgrin•18h ago
nothing because that is a screen saver. but yeah you're right, it's probably mostly people who just want to see a visualization? i'd never argue screensavers are a logical choice lol
ge96•17h ago
I like the newest mac update shore video, Tahoe I think with the liquid glass
macNchz•17h ago
As much as I disliked open plan offices, I did enjoy trolling my coworkers with fake blue screen of death and kernel panic screensavers. Windows 95 "Pipes" also got a lot of nostalgic shoutouts when I used that for a while.
t1234s•16h ago
Pipes and the other direct3D screen savers were legit
dylan604•17h ago
It's still a habit of mine. I have 2 external monitors on my desk connected to my laptop. One of them is a bit older LCD, but still functions well for purpose. It has a fun little quirk where when it first turns on there are a few vertical lines of a solid color until it has "warmed up" and the lines disappear after a few minutes. By using a screen saver when I get up and lock the screen, I don't have to wait for that screen to warm back up. At night, it does eventually turn off the screen saver after my timeout, but at least it's not every time I return to the desk.

Also, from a time long ago in a galaxy far away where we had production CRTs that were color calibrated, we would not turn them off either. They had a saver mode as well by running a not quite black signal to them, but not enough to burn in phosphors. It was even meant to "even" out some of them.

So because I'm that old that has used CRTs for such a long part of my life, screen savers will always be just part of the routine.

dfedbeef•18h ago
Finally, a screen saver with ads
grimgrin•18h ago
bring your own http live stream
aerostable_slug•18h ago
Nice work!

Excellent, advertising-free live streams to choose from here:

https://www.youtube.com/@MontereyBayAquarium/streams

I often turn on the kelp forest (sound muted) as a pleasing backdrop on my living room TV, but they're all pretty neat.

Lammy•11h ago
Getting my daily dose of Kensington Ave, Philadelphia or Skid Row, Los Angeles every time I come back from the restroom:

- https://www.youtube.com/watch?v=V8mIPhfrMug

- https://www.youtube.com/watch?v=PnpcdnZhztI

cwizou•17h ago
That's super cool, congrats on releasing it ! It's a feature that some people periodically ask me to add in Aerial, but I never got to it. Piping from yt-dlp to AVFoundation is definitely the way to go.

I was gonna warn you about a bug in macOS 15+ where your screensaver stays around after you go back to the desktop, but for some reason your code seems to avoid that issue. I'm not quite sure how, as you don't hook stopAnimation or any event apart from the deinit. But it works, so, massive kudos, I'll have to try and understand why !

hauxir•17h ago
interesting you pointed that out because i ran into that exact problem!

look at the animateoneframe function, there's the workaround

cwizou•17h ago
Ha, you do the exit trick too then, I just missed it.

FYI that works 99% of the time, but for some people it sometimes crashes (because we exit our host container - legacyScreenSaver.appex - and sometimes if you do it at a wrong time things just hang).

cwizou•16h ago
So fyi, the way you hook it there is what makes the preview flicker in System Settings.

You check if the screen is locked, and if not, kill the host. But screen is not locked in System Settings. So basically, you're killing the host process every 2 seconds (and macOS, at least in Tahoe, restarts it, it doesn't in previous macOS versions).

That's also what causes your issues with "Options" not working (because you killed the instance that was linked to that button). The way we workaround it usually is to hook a system event.

You can check https://github.com/AerialScreensaver/ScreenSaverMinimal

Look for handleWillStopNotification and com.apple.screensaver.willstop

hackernewds•17h ago
We have become so wasteful with energy. at a mass scale this will consume a lot of electricity but we only think of dollar cost now
billsunshine•14h ago
this is so cool, congrats, im a product manager turned vibe coder so im way into this. nice job, ill be tracking!
Lucian6•11h ago
Interesting approach using AVFoundation for the video playback. I've worked with streaming video on macOS and found that AVPlayer can be quite memory-hungry when handling multiple streams. Have you considered using VLCKit instead? In our testing, VLCKit used about 40% less memory and handled network interruptions more gracefully.

One potential enhancement would be to add support for adaptive bitrate streaming (HLS/DASH). Most live streams nowadays offer multiple quality levels, and automatically switching based on available bandwidth/CPU makes a big difference in reliability. The AVPlayerItem.preferredPeakBitRate property gives you basic control, but implementing a full ABR solution with VLCKit gives much finer-grained control over quality transitions.

Also curious about your strategy for handling screen sleep/wake cycles. We found that AVPlayer instances sometimes get stuck in a bad state after sleep, requiring a full teardown and reinit. Using notification observers for NSWorkspaceDidWakeNotification helped catch and recover from these cases.

Show HN: Building a good habit? Join us:)

https://apps.apple.com/ml/app/habit-tracker-atomic-habit/id6752530866
2•VatanaChhorn•2h ago•0 comments

Show HN: Postnix AI – Helps Indie Hackers Get Their Work Seen

https://postnix.vercel.app
2•Stevinn•3h ago•0 comments

Show HN: A fast, privacy-first image converter that runs in browser

https://imageconverter.dev/
40•wainguo•21h ago•33 comments

Show HN: MacOS Live Screensaver – A screensaver that plays live video streams

https://github.com/hauxir/macos-live-screensaver
56•hauxir•3d ago•40 comments

Show HN: Git for LLMs – A context management interface

https://twigg.ai
92•jborland•1d ago•35 comments

Show HN: Tommy – Turn ESP32 devices into through-wall motion sensors

https://www.tommysense.com
99•mike2872•1d ago•75 comments

Show HN: Deta Surf – An open source and local-first AI notebook

https://github.com/deta/surf
131•mxek•1d ago•39 comments

Show HN: Sqlite3-dump - a fast SQLite to CSV and parquet

https://github.com/i64/sqlite3-dump
13•Gave4655•21h ago•1 comments

Show HN: OpenSnowcat – A fork of Snowplow to keep open analytics alive

https://opensnowcat.io/
74•joaocorreia•1d ago•16 comments

Show HN: Nostr Web – decentralized website hosting on Nostr

https://nweb.shugur.com
100•karihass•1d ago•26 comments

Show HN: Wsgrok – one of many ngrok alternatives

https://wsgrok.com
6•hussachai•10h ago•1 comments

Show HN: LLM Rescuer – Fixing the billion dollar mistake in Ruby

https://github.com/barodeur/llm_rescuer
15•barodeur•21h ago•0 comments

Show HN: I built a tech news aggregator that works the way my brain does

https://deadstack.net/recent
182•dreadsword•1d ago•97 comments

Show HN: Inspec – Specification scheduling software for interior designers

https://inspec.design
10•nick_cook•1d ago•0 comments

Show HN: Pensive – A bookmarking tool with full-text search and LLMs

https://getpensive.com/
2•arashThr•11h ago•0 comments

Show HN: Cuq – Formal Verification of Rust GPU Kernels

https://github.com/neelsomani/cuq
93•nsomani•2d ago•63 comments

Show HN: Check what is hogging your disk zpace

https://github.com/AzisK/Zpace
3•azisk1•14h ago•3 comments

Show HN: Databroom – Clean data with GUI or CLI and generate Python/R script

https://github.com/onlozanoo/databroom
3•onlozanoo•14h ago•0 comments

Show HN: Katakate – Dozens of VMs per node for safe code exec

https://github.com/Katakate/k7
121•gbxk•3d ago•51 comments

Show HN: ScreenAsk – Free Screen Recording Links for Customer Support

https://screenask.com
20•ladybro•1d ago•1 comments

Show HN: Integrating semantic commits directly into Git could unlock a new level

https://github.com/MateusWorkSpace/GitSemantico
3•MateusWorkSpace•16h ago•3 comments

Show HN: Understanding LLM fundamentals without frameworks

https://github.com/jmedia65/learn-ai-right
3•maxtermed•16h ago•0 comments

Show HN: AgentML – Deterministic AI Agents (MIT, Alpha)

https://www.agentml.dev/
17•gwillen85•17h ago•3 comments

Show HN: I might have invented a new style of puzzle

https://puzzle-brothers.boondoggle.studio/puzzles/linchpin
4•DJSnackySnack•17h ago•1 comments

Show HN: A high-performance Rust based MCP server

https://github.com/PSU3D0/spreadsheet-read-mcp
3•ManfredMacx•17h ago•0 comments

Show HN: How to create a perfect white background image effortlessly?

https://whitebg.org
4•stjuan627•18h ago•1 comments

Show HN: Build unique websites with 200 modern components using Tailkits UI

https://tailkits.com/ui/
3•hey-fk•19h ago•1 comments

Show HN: Playwright Skill for Claude Code – Less context than playwright-MCP

https://github.com/lackeyjb/playwright-skill
186•syntax-sherlock•4d ago•44 comments

Show HN: Data engine scraping stats, killing Statista's $490/month model

https://qoery.com/charts/share/sDBYLsv4
4•SamTinnerholm•19h ago•1 comments

Show HN: bbcli – A TUI and CLI to browse BBC News like a hacker

https://github.com/hako/bbcli
79•wesleyhill•5d ago•15 comments