The best Hacker News stories from Show from the past day
Latest posts:
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: 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: 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>
Show HN: DeepSQL – A self-hostable DBA agent for Postgres and MySQL
Hi HN - I'm Venkat, founder of Stayflexi (YC), CMU CS grad and Ex-Oracle Query Engine team (patents in core databases)<p>DeepSQL started as an internal tool to stop our own databases from becoming the bottleneck they were becoming (13,000+ hotels in production). It worked well enough that we're releasing it.<p>DeepSQL is an AI agent that operates a database the way a senior DBA and Data Engineer would<p>1. Fixes slow queries (we cutdown DB spend by 4x)
2. Fixes DB bloat (blocks unnecessary schema changes, in vibecoded setup)
2. BI dashboards(we removed spend on tableau, retool and appsmith)
3. Security (We could redact access to sensitive, PII data to our employees) while engaging everyone in the org to interact with our database<p>How it works
1. Deepsql learns your data and relationships from your code base, rules and query logs
2. Deepsql agent has 20 background jobs that continuously monitor the schema changes, bottlenecks, and come up with solutions before the problem arises. (Schema bloat issues are irreversible)
3. Deepsql Brain has CLI and MCP surfaces that can directly work with Claude / Codex and Cursor.
4. Deepsql digest delivers the daily database health report.
5. Your team can connect to deepsql with their favourate surface areas - Web UI, CLI, MCP or Slack.<p>One line install:
curl -fsSL <a href="https://install.deepsql.ai/install.sh" rel="nofollow">https://install.deepsql.ai/install.sh</a> | bash<p>For community support:
<a href="https://discord.gg/duEJq7AeeG" rel="nofollow">https://discord.gg/duEJq7AeeG</a><p>Or just email me for expert level setup guidance
venkat@deepsql.ai
Show HN: OneCLI – OSS credential gateway that keeps secrets out of AI agents
hey HN, Jonathan and Guy here, creators of OneCLI (<a href="https://onecli.sh/">https://onecli.sh/</a>). OneCLI is an open source vault for AI Agents.<p>Traditional vaults are used to store your secrets and, on demand, provide them to you all in a secure way, trusting the person to keep them safe. We figured that in the agent's world, this is not the case, as you don't know what happens with the secret after it's delivered to the agent, or where it was saved. Or maybe someone even manipulated them to hand them over...<p>From that understanding, we decided to build a network gateway that sits between your AI agents and the services they call. OneCLI matches the request by host/path, verifies the agent should have access, swaps the placeholder for the real credential, and forwards the request.
the secrets set inside the OneCLI vault, encrypted on rest, or could fetch in realtime from your bitwarden / 1password wallets.<p>Demo - <a href="https://www.youtube.com/watch?v=5e5pbPEzZfY" rel="nofollow">https://www.youtube.com/watch?v=5e5pbPEzZfY</a>.<p>We started working on this by accident, even though our careers were in the security space. We were working on a devtool called ChartDB, an open-source DB tool. When OpenClaw took off back in January, we started using it to orchestrate agents on top of ChartDB. We quickly understood there is a big issue around auth. Agents need credentials to do real work, but to give them those secrets would not be the best idea. they keep them in their memory and also write them down to local files and their sessions as plain text. And we knew that agents can easily be fooled into giving up those API keys/secrets. So we needed some way to control the agent and stop prompt injections from tricking it into using its services for an attacker's benefit. Not providing the keys to the agent + adding alerts or human-in-the-loop for sensitive operations, in case someone manipulates the agent, and access logs are being audited.<p>We use it ourselves daily. My OpenClaw runs my day across Attio, Gmail, and my calendar, with human-in-the-loop approval on sensitive actions. The approval is enforced at the network layer, so it holds whether the agent goes through MCP, CLI, curl, or code it wrote on the fly. Guy uses it to review PRs but can't merge without his approval.<p>Companies mostly use it for coding agents currently, which get creative about finding ways to elevate their permissions to reach the goal. With OneCLI, it doesn't matter what the agent finds: if the request isn't in policy, it will not go through.<p>The proxy is written in Rust, the dashboard is Next.js, and secrets are AES-256-GCM encrypted at rest. Everything runs in a Docker container. It works with any agent framework (Claude Code, Codex, Cursor, OpenClaw, Hermes or anything that can set an HTTPS_PROXY).<p>It won't stop an agent from misusing access it legitimately has, so scope policies tightly!<p>happy to answer anything. We believe we can't trust the model to behave and have to set deterministic rules to stay in control. Comments welcome!
Show HN: OneCLI – OSS credential gateway that keeps secrets out of AI agents
hey HN, Jonathan and Guy here, creators of OneCLI (<a href="https://onecli.sh/">https://onecli.sh/</a>). OneCLI is an open source vault for AI Agents.<p>Traditional vaults are used to store your secrets and, on demand, provide them to you all in a secure way, trusting the person to keep them safe. We figured that in the agent's world, this is not the case, as you don't know what happens with the secret after it's delivered to the agent, or where it was saved. Or maybe someone even manipulated them to hand them over...<p>From that understanding, we decided to build a network gateway that sits between your AI agents and the services they call. OneCLI matches the request by host/path, verifies the agent should have access, swaps the placeholder for the real credential, and forwards the request.
the secrets set inside the OneCLI vault, encrypted on rest, or could fetch in realtime from your bitwarden / 1password wallets.<p>Demo - <a href="https://www.youtube.com/watch?v=5e5pbPEzZfY" rel="nofollow">https://www.youtube.com/watch?v=5e5pbPEzZfY</a>.<p>We started working on this by accident, even though our careers were in the security space. We were working on a devtool called ChartDB, an open-source DB tool. When OpenClaw took off back in January, we started using it to orchestrate agents on top of ChartDB. We quickly understood there is a big issue around auth. Agents need credentials to do real work, but to give them those secrets would not be the best idea. they keep them in their memory and also write them down to local files and their sessions as plain text. And we knew that agents can easily be fooled into giving up those API keys/secrets. So we needed some way to control the agent and stop prompt injections from tricking it into using its services for an attacker's benefit. Not providing the keys to the agent + adding alerts or human-in-the-loop for sensitive operations, in case someone manipulates the agent, and access logs are being audited.<p>We use it ourselves daily. My OpenClaw runs my day across Attio, Gmail, and my calendar, with human-in-the-loop approval on sensitive actions. The approval is enforced at the network layer, so it holds whether the agent goes through MCP, CLI, curl, or code it wrote on the fly. Guy uses it to review PRs but can't merge without his approval.<p>Companies mostly use it for coding agents currently, which get creative about finding ways to elevate their permissions to reach the goal. With OneCLI, it doesn't matter what the agent finds: if the request isn't in policy, it will not go through.<p>The proxy is written in Rust, the dashboard is Next.js, and secrets are AES-256-GCM encrypted at rest. Everything runs in a Docker container. It works with any agent framework (Claude Code, Codex, Cursor, OpenClaw, Hermes or anything that can set an HTTPS_PROXY).<p>It won't stop an agent from misusing access it legitimately has, so scope policies tightly!<p>happy to answer anything. We believe we can't trust the model to behave and have to set deterministic rules to stay in control. Comments welcome!
Show HN: OneCLI – OSS credential gateway that keeps secrets out of AI agents
hey HN, Jonathan and Guy here, creators of OneCLI (<a href="https://onecli.sh/">https://onecli.sh/</a>). OneCLI is an open source vault for AI Agents.<p>Traditional vaults are used to store your secrets and, on demand, provide them to you all in a secure way, trusting the person to keep them safe. We figured that in the agent's world, this is not the case, as you don't know what happens with the secret after it's delivered to the agent, or where it was saved. Or maybe someone even manipulated them to hand them over...<p>From that understanding, we decided to build a network gateway that sits between your AI agents and the services they call. OneCLI matches the request by host/path, verifies the agent should have access, swaps the placeholder for the real credential, and forwards the request.
the secrets set inside the OneCLI vault, encrypted on rest, or could fetch in realtime from your bitwarden / 1password wallets.<p>Demo - <a href="https://www.youtube.com/watch?v=5e5pbPEzZfY" rel="nofollow">https://www.youtube.com/watch?v=5e5pbPEzZfY</a>.<p>We started working on this by accident, even though our careers were in the security space. We were working on a devtool called ChartDB, an open-source DB tool. When OpenClaw took off back in January, we started using it to orchestrate agents on top of ChartDB. We quickly understood there is a big issue around auth. Agents need credentials to do real work, but to give them those secrets would not be the best idea. they keep them in their memory and also write them down to local files and their sessions as plain text. And we knew that agents can easily be fooled into giving up those API keys/secrets. So we needed some way to control the agent and stop prompt injections from tricking it into using its services for an attacker's benefit. Not providing the keys to the agent + adding alerts or human-in-the-loop for sensitive operations, in case someone manipulates the agent, and access logs are being audited.<p>We use it ourselves daily. My OpenClaw runs my day across Attio, Gmail, and my calendar, with human-in-the-loop approval on sensitive actions. The approval is enforced at the network layer, so it holds whether the agent goes through MCP, CLI, curl, or code it wrote on the fly. Guy uses it to review PRs but can't merge without his approval.<p>Companies mostly use it for coding agents currently, which get creative about finding ways to elevate their permissions to reach the goal. With OneCLI, it doesn't matter what the agent finds: if the request isn't in policy, it will not go through.<p>The proxy is written in Rust, the dashboard is Next.js, and secrets are AES-256-GCM encrypted at rest. Everything runs in a Docker container. It works with any agent framework (Claude Code, Codex, Cursor, OpenClaw, Hermes or anything that can set an HTTPS_PROXY).<p>It won't stop an agent from misusing access it legitimately has, so scope policies tightly!<p>happy to answer anything. We believe we can't trust the model to behave and have to set deterministic rules to stay in control. Comments welcome!
Show HN: Claude-thermos keeps your Claude session warm for you
Show HN: Claude-thermos keeps your Claude session warm for you
Show HN: Claude-thermos keeps your Claude session warm for you
Show HN: Remux – an open-source tmux workspace designed for iPhone
Show HN: Remux – an open-source tmux workspace designed for iPhone