The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: HART OS – an open-source AI OS built so frontier AI needs no datacenter

Show HN: SpinWin – A macOS menu bar app to visually rotate or spin any window

SpinWin is an open source menu bar app to visually rotate any individual window. You can rotate / spin as many as you want one by one.<p>I was scrolling reels when one came on where the content creator suggested "turning the phone upside down" for a portion. I was sitting at my mac, and decided to see if I could find something that did this. To my surprise, nothing exists, so I decided to build it.<p>Turns out macOS doesn't provide any public API to do anything like this, so I wound up using the Accessibility API to move the target window offscreen, where it keeps rendering. Then we capture it's contents with ScreenCaptureKit, and display that on a transparent, borderless overlay window which has a CALayer to rotate it.<p>It's written in Swift, open source, MIT license, and signed/notarized.<p>Have fun - would love to hear your comments.

Show HN: CheapSecurity – Lightweight, Self-Hosted CCTV for Linux SBCs

Show HN: Reverse Minesweeper

Show HN: I mapped every US golf course

I got tired of Googling basic course info, so I made a free directory of every US course<p>Google filters for golf course results are terrible so I built a better way to browse courses using OSM as the backbone.... <a href="https://golfcoursebrowser.com/" rel="nofollow">https://golfcoursebrowser.com/</a><p>It's a work in progress and mostly US for now, but I want to expand to the rest of North America, the EU, and the rest of the world ASAP.<p>It's free, no ads, no login, no bs. If you spot anything wrong (bad info, a missing course, wrong scorecard), you can flag it right on the course page. I actually read those and fix them.<p>Still a lot of missing info, but I'm filling out more and more each day. The goal is the most complete, and current golf course directory in the world, verified and maintained by actual golfers. I think is attainable in the next few months. The base layer is OpenStreetMap, cross-checked against course websites and enriched with scorecards, USGA rating/slope, and public/private status. User corrections from golfers who know their home course have beaten every commercial data source we check against.

Show HN: Writemark, a dependency free web component for inline Markdown editing

I like writing Markdown, but do not like writing it inside a plain textarea.<p>I wanted something I could use anywhere by dropping in a single web component:<p>```<p><writemark-editor name="body"></writemark-editor><p>```<p>That became Writemark.<p>It renders Markdown while you write, but Markdown remains the value you read, store, and submit. It also has source, split, and preview modes, along with slash commands, tables, task lists, code blocks, native form support, and an API for adding your own controls. There are no runtime dependencies and no required framework or built in toolbar.<p>It is fully vibecoded. The process was very iterative. I knocked something out, tried using it, found bugs, fixed them, and repeated that cycle until I had something I liked writing in and that performed reasonably well.<p>It did not begin as an experiment about AI generated software -- just did not want to use textareas anymore. I like Markdown, and I wanted one component that I could use anywhere without bringing along an entire editor framework.<p>It is still very young. The parser is handwritten, the component is essentially one large JavaScript file, and I am certain there are edge cases waiting to be found. If you find one, I am happy to fix it.<p>I have tried to give it a decent safety net. It currently has 951 Playwright checks across Chromium, Firefox, and WebKit, along with hostile input cases, sanitizer fuzzing, and differential tests against CommonMark.<p>I built this because I wanted it for myself, but I think it turned into something kind of cool. I hope some of you enjoy it. I would love hearing what you think, especially if you try it and manage to break something.<p>- Github: <a href="https://github.com/Brostoffed/writemark" rel="nofollow">https://github.com/Brostoffed/writemark</a><p>- NPM: <a href="https://www.npmjs.com/package/writemark-editor" rel="nofollow">https://www.npmjs.com/package/writemark-editor</a>

Show HN: Writemark, a dependency free web component for inline Markdown editing

I like writing Markdown, but do not like writing it inside a plain textarea.<p>I wanted something I could use anywhere by dropping in a single web component:<p>```<p><writemark-editor name="body"></writemark-editor><p>```<p>That became Writemark.<p>It renders Markdown while you write, but Markdown remains the value you read, store, and submit. It also has source, split, and preview modes, along with slash commands, tables, task lists, code blocks, native form support, and an API for adding your own controls. There are no runtime dependencies and no required framework or built in toolbar.<p>It is fully vibecoded. The process was very iterative. I knocked something out, tried using it, found bugs, fixed them, and repeated that cycle until I had something I liked writing in and that performed reasonably well.<p>It did not begin as an experiment about AI generated software -- just did not want to use textareas anymore. I like Markdown, and I wanted one component that I could use anywhere without bringing along an entire editor framework.<p>It is still very young. The parser is handwritten, the component is essentially one large JavaScript file, and I am certain there are edge cases waiting to be found. If you find one, I am happy to fix it.<p>I have tried to give it a decent safety net. It currently has 951 Playwright checks across Chromium, Firefox, and WebKit, along with hostile input cases, sanitizer fuzzing, and differential tests against CommonMark.<p>I built this because I wanted it for myself, but I think it turned into something kind of cool. I hope some of you enjoy it. I would love hearing what you think, especially if you try it and manage to break something.<p>- Github: <a href="https://github.com/Brostoffed/writemark" rel="nofollow">https://github.com/Brostoffed/writemark</a><p>- NPM: <a href="https://www.npmjs.com/package/writemark-editor" rel="nofollow">https://www.npmjs.com/package/writemark-editor</a>

Show HN: Yorishiro – a macOS terminal where AI agents live

Yorishiro is an open source project that gives Claude Code / Codex a body-like anime character. The name “Yorishiro” in Japanese means an object inhabited by spirit.<p>My first idea started comunicating with AI agent long time by terminal is very tired. Because AI agent is no face, no expression, no body, and I don’t see they think. So I provided a 3D body and inhabited environment to AI agent. I call it “Presence Harness”.<p>I devise many idea, for example, reflex function. "Aura" is white light moving instantly. It shows things to focus on before replying by LLM. When AI agent wait for your approve, the room lights flash to notify. “Yori” who is Yorishiro character express sad if AI agent encounter errors. If git push is seccess, Yori is happy face and fireworks are being launched.<p>Then, Yorishiro has a self reference MCP. AI agents in Yorishiro control light, body, scene, UI, effects, and so on. Yorishiro has extention supporting hot reload. Yorishiro builds itself. I love Emacs, so I make it to a self modifiable terminal.<p>If you want to try it,<p><pre><code> brew install --cask sktkkoo/yorishiro/yorishiro </code></pre> I’m Japanese and not good at English. Thank you for your reading.

Show HN: Yorishiro – a macOS terminal where AI agents live

Yorishiro is an open source project that gives Claude Code / Codex a body-like anime character. The name “Yorishiro” in Japanese means an object inhabited by spirit.<p>My first idea started comunicating with AI agent long time by terminal is very tired. Because AI agent is no face, no expression, no body, and I don’t see they think. So I provided a 3D body and inhabited environment to AI agent. I call it “Presence Harness”.<p>I devise many idea, for example, reflex function. "Aura" is white light moving instantly. It shows things to focus on before replying by LLM. When AI agent wait for your approve, the room lights flash to notify. “Yori” who is Yorishiro character express sad if AI agent encounter errors. If git push is seccess, Yori is happy face and fireworks are being launched.<p>Then, Yorishiro has a self reference MCP. AI agents in Yorishiro control light, body, scene, UI, effects, and so on. Yorishiro has extention supporting hot reload. Yorishiro builds itself. I love Emacs, so I make it to a self modifiable terminal.<p>If you want to try it,<p><pre><code> brew install --cask sktkkoo/yorishiro/yorishiro </code></pre> I’m Japanese and not good at English. Thank you for your reading.

Show HN: Bribes.fyi – Know before you go. New feature added

Show HN: I made some transistor animations

Hi HN, I made some animations of the most important kinds of transistors using my semiconductor simulation, details of which are on the page. I tried to make the visuals as realistic as possible while also aiming for clarity. If you want to go beyond the charge carriers and look at, for example, the electric field, you can do so in the simulation software. The desktop software also has less common devices like IBGTs and SCRs that have similar animations.<p>The last thread about my software was posted here about a year ago: <a href="https://news.ycombinator.com/item?id=43942279">https://news.ycombinator.com/item?id=43942279</a>

Show HN: I made some transistor animations

Hi HN, I made some animations of the most important kinds of transistors using my semiconductor simulation, details of which are on the page. I tried to make the visuals as realistic as possible while also aiming for clarity. If you want to go beyond the charge carriers and look at, for example, the electric field, you can do so in the simulation software. The desktop software also has less common devices like IBGTs and SCRs that have similar animations.<p>The last thread about my software was posted here about a year ago: <a href="https://news.ycombinator.com/item?id=43942279">https://news.ycombinator.com/item?id=43942279</a>

Show HN: Brolly, a plain-text weather forecast site

The UK MET office recently redesigned their site, adding a lot of additional whitespace, scrolling, and animations. This significantly reduced its usability for me, and left me wanting an ‘at a glance’ weather site.<p>I made <a href="https://brolly.sh" rel="nofollow">https://brolly.sh</a>, a minimalist, plain text weather forecasting site. You can use it to view weather from around the world, with: 7 day forecast; Previous day log (so you can confirm it definitely was cooler / hotter / wetter / drier yesterday!); Hourly rain, wind, temperature, conditions; Hourly UV, air quality and pollen, including pollen type specific forecasts within the EU / UK; Location search and last 5 locations; Location specific units.<p>I mostly made the site for myself, if anyone else also benefits from it that’s an added advantage.<p>You can check out the weather in York, UK at <a href="https://brolly.sh/forecast/RWFP2qW8" rel="nofollow">https://brolly.sh/forecast/RWFP2qW8</a>, or search for a location at <a href="https://brolly.sh" rel="nofollow">https://brolly.sh</a><p>The site is deliberately styled as a single long scrollable column, to work on mobile phones. You can view it on desktop too, there's just a lot of horizontal padding. I naturally took a lot of inspiration from plaintextsports.com. Despite not being a sports fan, I love its aesthetic. But, you'll hopefully see that this site isn't a rip off, and has its own deliberate look and feel.<p>Visualisations are really important to showing information at a glance. I spent a lot of time designing the different visualisations and making them work with only characters. My favourite is the hourly heat map used for pollen count.<p>It's also frustrating to have an interactive site, where you can't share a page with a friend and have them see what you're seeing. To solve this, all page state (i.e. location, selected day, expanded / collapsed sections), is stored in the URL. You can share or bookmark the specific view, and know that you'll always be able to come back to it.<p>The site uses PocketBase. It’s written in Go and plain HTML/JavaScript/CSS. All pages are backend rendered, with light JavaScript to handle re-loading content without page jumps when using interactive features like next / previous day navigation. Weather forecasts are fetched from open-meteo.com, which has a very generous free tier. However, I also built a custom LRU cache on top of PocketBase’s SQLite DB to cache forecasts for 5 minutes, and avoid putting unnecessary pressure on the open-meteo API.

Show HN: Brolly, a plain-text weather forecast site

The UK MET office recently redesigned their site, adding a lot of additional whitespace, scrolling, and animations. This significantly reduced its usability for me, and left me wanting an ‘at a glance’ weather site.<p>I made <a href="https://brolly.sh" rel="nofollow">https://brolly.sh</a>, a minimalist, plain text weather forecasting site. You can use it to view weather from around the world, with: 7 day forecast; Previous day log (so you can confirm it definitely was cooler / hotter / wetter / drier yesterday!); Hourly rain, wind, temperature, conditions; Hourly UV, air quality and pollen, including pollen type specific forecasts within the EU / UK; Location search and last 5 locations; Location specific units.<p>I mostly made the site for myself, if anyone else also benefits from it that’s an added advantage.<p>You can check out the weather in York, UK at <a href="https://brolly.sh/forecast/RWFP2qW8" rel="nofollow">https://brolly.sh/forecast/RWFP2qW8</a>, or search for a location at <a href="https://brolly.sh" rel="nofollow">https://brolly.sh</a><p>The site is deliberately styled as a single long scrollable column, to work on mobile phones. You can view it on desktop too, there's just a lot of horizontal padding. I naturally took a lot of inspiration from plaintextsports.com. Despite not being a sports fan, I love its aesthetic. But, you'll hopefully see that this site isn't a rip off, and has its own deliberate look and feel.<p>Visualisations are really important to showing information at a glance. I spent a lot of time designing the different visualisations and making them work with only characters. My favourite is the hourly heat map used for pollen count.<p>It's also frustrating to have an interactive site, where you can't share a page with a friend and have them see what you're seeing. To solve this, all page state (i.e. location, selected day, expanded / collapsed sections), is stored in the URL. You can share or bookmark the specific view, and know that you'll always be able to come back to it.<p>The site uses PocketBase. It’s written in Go and plain HTML/JavaScript/CSS. All pages are backend rendered, with light JavaScript to handle re-loading content without page jumps when using interactive features like next / previous day navigation. Weather forecasts are fetched from open-meteo.com, which has a very generous free tier. However, I also built a custom LRU cache on top of PocketBase’s SQLite DB to cache forecasts for 5 minutes, and avoid putting unnecessary pressure on the open-meteo API.

Show HN: Audio Player with "Binaural Beats" tuned to the same key as your music

Hi HN, Gabriel here.<p>This is a standalone binaural beat generator, combined with a two-deck local audio player built with the Web Audio API.<p>It includes ten harmonic carrier pairs, seven brainwave-state presets, per-harmonic mixing (so the binaural tones aren't out-of-tune with the music), adjustable beat and carrier frequencies, two oscillator shapes, offline key/BPM analysis, automatic carrier matching, adaptive impulse noise, playlist support, and output recording.<p>The main problem I've had with existing "binaural beat" generators is that the tone generated does not remain in-tune with what I'm listening to.<p>This becomes highly noticeable, kind of ruining both the binaural beat <i>and</i> the music ("wrong, Marge, two perfectly good jackets!").<p>That's the issue this solves, and then I added a bunch of nice-to-haves on top.<p>It's open-source, free, etc - I'm just sharing because it's something I wanted to exist, and maybe others want it to exist too. Some of you might remember <i>i-Doser</i>, and have - like me - been looking for that same high ever since.<p>That (urban-legend-coded, totally-trippy-if-you're-fifteen-years-old) app introduced me to "Binaural Beats" - where you play two different tones in each of a person's ears, and the brain scrambles the different frequencies into a single frequency.<p>As I understand it, this is meant to induce specific brainwaves in the listener, which replicate states like "deep focus" or "half-asleep" or "meditating".<p>I've not decided personally if this is real science, or new-age pseudoscientific nonsense. It's probably somewhere between the two.<p>I intentionally haven't looked that hard into studies on the actual effects, because I think placebo is very powerful, and binaural beats work great on me. I find them genuinely useful for focus, meditation, and dream-state creativity. I figure: If it ain't broke, don't learn that it's a placebo. YMMV.<p>I really love ambient music, and I think that audiobooks could be a much more interesting form if they borrowed more from ideas found in ambient music. That's why I put a second deck on it for spoken-word files. There's some ASMR-y stuff like impulse noise available, also, for those good-good tingles.<p>I'd like to build it out into a more fully-featured "ambient spoken word" DJ software UI, for making stuff inspired by and adjacent to Glenn Gould's <i>The Idea of North</i>, and I guess this is currently about halfway to that thus far. The playlist function allows you to predefine the binaural tone against tracks playing in the future, so you can set up some pieces of music, and define the brain frequency you are trying to induce (or placebo) in yourself.<p>I've had a lot of fun putting albums into this, and taking journeys from - for example - "focus" to "deep sleep". I strongly recommend Sea Power's <i>Disco Elysium</i> OST for that, which I've revisited a few times in this software already.<p>I can't attest to whether the opposite directional journey works, because the "deep sleep" tone has reliably rendered me unconscious.<p>I hope some of you get some of the same enjoyment (or placebo of enjoyment) I'm getting from it. Feedback, ideas of music that might work well in it, and feature-requests appreciated, especially features in the 'this would make me enjoy using it, but I can't be bothered to add it myself' category.<p>Edit: I just realised I could have deployed this as a GH Pages page, so you can use it without any setup at all. Doh!<p>Link to that here - should all work fine in-browser:<p><a href="https://henrygabriels.github.io/binaural-studio/" rel="nofollow">https://henrygabriels.github.io/binaural-studio/</a>

Show HN: macOS menu-bar manager for SSH port forwards

is a tiny native macOS menu-bar app for local SSH port forwards. It has no external dependencies and runs natively.

Show HN: Trifle – Open-source analytics that stores answers, not events

Trifle is an open-source time-series analytics library that aggregates nested counters instead of storing raw events. All in the database you already have. After rebuilding it twice over 10 years, it now tracks ~1B events a day at my day job.<p>It started in 2015 as my own Rails APM. I plugged into ActiveSupport::Notifications, got a few small users, and one bigger one whose scraping app broke everything. That sparked the core idea: aggregate counters into pre-defined time buckets, so a single write increments multiple buckets at once. The APM eventually faded away without much traction.<p>Later in 2021 I needed analytics at my day job. Instead of going for something out there I revised the idea of Trifle as a more generic analytics library, borrowing some data warehouse ideas. First used Redis, then Postgres, eventually MongoDB. Hence why Trifle::Stats comes with multiple drivers that keep the DSL unified while storage layer changes with your needs. In our case (huge write volume, some reads) PG read faster but slowed on large writes.<p>The nested values are the whole trick here. Single:<p><pre><code> Trifle::Stats.track( key: 'requests::aws::s3_uploads', values: { count: 1, status: { request.response_code => 1 }, size: payload.bytes, duration: { sum: request.duration, count: 1 } } ) </code></pre> builds up counts for requests, success rate, result status codes, duration for multiple time buckets at once. Single bucket from 2am then looks like:<p><pre><code> { count: 14, status: { 200: 12, 500: 2 }, size: 5628341, duration: { sum: 43, count: 14 } } </code></pre> If request.duration is in seconds, then sum stored under duration would be in seconds as well.<p>Success rate is never stored, but it is calculated by dividing 200s over total number of requests. Same with average duration: sum over count. You ask for a metrics key, granularity and timeframe and you get back aggregated values at each point. Ready for charts or to answer "Average response time over last 30 days".<p>There's a Series wrapper for aggregating and formatting values for charts in a simple call. And as building dashboards is not as much fun for other devs as I thought, I built Trifle App - a visual layer with dashboards, scheduled digests and alerts. It's written in Elixir, so I ported the library to Elixir too. And later to Go for a CLI. All three are compatible, write in one and read in another.<p>Today we track activity from over 100M background jobs a day which turns into about 1B events. It runs surprisingly cheap when you're willing to trade some safety away (turn off journaling and write concerns in Mongo). 3-node Hetzner MongoDB cluster where the primary does 20% utilization costs us around $1k/month.<p>It has its limitations. Payloads can't hold tens of thousands of keys. Documents becomes too large to update efficiently. Some planning ahead is needed. And then there are no dimensions. Sometimes you can nest them (country - there are only so many countries), sometimes it's better to have dedicated metrics key per dimension (customer - growing forever). That multiplies tracked events, hence 1B events from 100M jobs.<p>The libraries are MIT. The App is source-available under ELv2 - free to self-host and paid cloud if you want it managed. I build this on the side with no investor money to burn on a free service.<p>Happy to answer anything about architecture, storage models, my failures or why I didn't give up on this yet.

Show HN: Whetuu – a zero-config cross-shell prompt written in Zig

Show HN: I simulated closing the Strait of Hormuz on real oil trade data

OP here: I created this visualization tool as the byproduct of a supply chain class I taught at Columbia. The pedagogical exercise grew into a full blown visualization and paper about global oil trade.<p>The model: The mechanics are the same as the financial network Eisenberg-Noe: Instead of banks, every country consumes oil interconnected via bilateral trading. Shocks propagate throughout the network, depleting oil reserves when bottleneck nodes (such as the Strait of Hormuz) are blocked.<p>Insights: The interesting part is the mechanics of how the crisis unfolds: for example, France receives 0 oil from Hormuz directly, yet their reserves are depleted faster because other countries reactively increase their safety oil stock, increasing oil price, making stockouts more expensive for everyone.<p>The model also gives price dynamics which are interesting on their own: the price increase is not immediate, it follows sequentially as countries reserves deplete.<p>Some caveats: 1. For producer nodes, depletion means their export slack is reduced/exhausted. 2. No sanctioned trade (UN Comtrade data)<p>Technical Details: The visualization is 600 lines of flask plus js frontend (LLM assisted visualization with ground-truth matching the original numerical exercise of the paper)<p>Paper with proofs/theory: <a href="https://arxiv.org/abs/2607.17491" rel="nofollow">https://arxiv.org/abs/2607.17491</a>

Show HN: I simulated closing the Strait of Hormuz on real oil trade data

OP here: I created this visualization tool as the byproduct of a supply chain class I taught at Columbia. The pedagogical exercise grew into a full blown visualization and paper about global oil trade.<p>The model: The mechanics are the same as the financial network Eisenberg-Noe: Instead of banks, every country consumes oil interconnected via bilateral trading. Shocks propagate throughout the network, depleting oil reserves when bottleneck nodes (such as the Strait of Hormuz) are blocked.<p>Insights: The interesting part is the mechanics of how the crisis unfolds: for example, France receives 0 oil from Hormuz directly, yet their reserves are depleted faster because other countries reactively increase their safety oil stock, increasing oil price, making stockouts more expensive for everyone.<p>The model also gives price dynamics which are interesting on their own: the price increase is not immediate, it follows sequentially as countries reserves deplete.<p>Some caveats: 1. For producer nodes, depletion means their export slack is reduced/exhausted. 2. No sanctioned trade (UN Comtrade data)<p>Technical Details: The visualization is 600 lines of flask plus js frontend (LLM assisted visualization with ground-truth matching the original numerical exercise of the paper)<p>Paper with proofs/theory: <a href="https://arxiv.org/abs/2607.17491" rel="nofollow">https://arxiv.org/abs/2607.17491</a>

1 2 3 ... 1016 1017 1018 >