ads

Friday, March 20, 2026

Show HN: An open-source safety net for home hemodialysis https://ift.tt/y0kftMx

Show HN: An open-source safety net for home hemodialysis https://safehemo.com/ March 17, 2026 at 07:48AM

Show HN: Fossilware – a community archive of retro hardware, software, and games https://ift.tt/MAyFrbS

Show HN: Fossilware – a community archive of retro hardware, software, and games i built a small site to collect memories of the things we grew up with: floppy drives, Game Boys, cassette tapes, forgotten software, classic games. the tech stack is React, Supabase and Vercel. fair warning: the items on there right now were seeded by AI to get things started. the goal is for it to grow through community submission. there's a submit form, no account needed. i'd love to gather some early feedback and get some more ideas. something i was thinking about in the future is having users create accounts to favorite items and comment their own personal experiences with items. right now everything requires manual approval but in the future i'd like to push that towards the community. thanks for looking! https://ift.tt/GoRYJX5 March 21, 2026 at 12:33AM

Show HN: I Built a MTA Subway Display So I'd Stop Checking My Phone https://ift.tt/zQikrFo

Show HN: I Built a MTA Subway Display So I'd Stop Checking My Phone https://twitter.com/pirosb3/status/2034370959977619513 March 20, 2026 at 11:13PM

Thursday, March 19, 2026

Show HN: Mavera – Predict audience response with GANs, not LLM sentiment https://ift.tt/wiceRkB

Show HN: Mavera – Predict audience response with GANs, not LLM sentiment Mavera is an audience intelligence API. Give it a message, product prototype, or creative asset and it returns a predicted distribution of emotional and behavioral responses across your target stakeholder population. This is the best way to test your assumptions before you spend or push anything live. To show this in practice, we ran all 101 Super Bowl LX ads through Mavera on game night: https://ift.tt/BUVGQ7T. We simulated how audiences would emotionally and behaviorally respond by platform and segment. We returned a distribution rather than a single score as part of a full analysis of each ad in under 4 hours. The model is a GAN adapted for language, emotion, and cognition. A generator produces synthetic audience responses and a discriminator validates them against human benchmarks. Scoring follows a feel-think-act framework: emotional activation, cognitive framing, behavioral prediction. We validated scoring against the Harvard/Illinois OASIS benchmark. MAE on emotional response is 0.02-0.15 versus 1.0-2.5+ for GPT and Claude. Every response includes a confidence score and a hallucination risk score. You can also build-in spread of opinion, response stability, and impact of news/market context scores to your outputs. The API is OpenAI-compatible. Change the base URL to app.mavera.io/api/v1, add a persona_id, and you are running against 50+ pre-built personas or you can customize your own. Sub-100ms latency at P99. Free API key and docs at https://ift.tt/IjyuPTR. https://ift.tt/IjyuPTR March 17, 2026 at 03:54AM

Wednesday, March 18, 2026

Show HN: Tmux-IDE, OSS agent-first terminal IDE https://ift.tt/TRx8US2

Show HN: Tmux-IDE, OSS agent-first terminal IDE Hey HN, Small OSS project that i created for myself and want to share with the community. It's a declarative, scriptable, terminal-based IDE focussed on agentic engineering. That's a lot of jargon, but essentially its a multi-agent IDE that you start in your terminal. Why is that relevant? Thanks to tmux and SSH, it means that you have a really simple and efficient way to create your own always-on coding setup. Boot into your IDE through ssh, give a prompt to claude and close off your machine. In tmux-ide claude will keep working. The tool is intentionally really lightweight, because I think the power should come from the harnesses that you are working with. I'm hoping to share this with the community and get feedback and suggestions to shape this project! I think that "remote work" is directionally correct, because we can now have extremely long-running coding tasks. But I also think we should be able to control and orchstrate that experience according to what we need. The project is 100% open-source, and i hope to shape it together with others who like to work in this way too! Github: https://ift.tt/U1tz0Ve Docs: https://ift.tt/5U8Jp7Q https://ift.tt/pxiOY3r March 19, 2026 at 12:46AM

Show HN: Will my flight have Starlink? https://ift.tt/ODoARaE

Show HN: Will my flight have Starlink? Hey HN, If you’ve been lucky enough to be on a flight with Starlink, you understand the hype. It actually works! However, its availability on flights is patchy and hard to predict. So we built a database of all airlines that have rolled out Starlink (beyond just a trial), and a flight search tool to predict it. Plug in a flight number and date, and we'll estimate the likelihood of Starlink on-board based on aircraft type and tail number. If you don’t have any trips coming up, you can also look up specific routes to see what flights offer Starlink. You can find it here: https://ift.tt/CKLPpdl . - I wanted to add a few notes on how this works too. There are three things we check, in order, when we answer a query: - Does this airline have Starlink? - Does this aircraft body have Starlink? - Does this specific aircraft have Starlink? Only a few airlines at all have Starlink right now: United, Hawaiian, Alaskan, Air France, Qatar, JSX, and a handful of others. So if an aircraft is operated by any other airline, we can issue a blanket no immediately. Then, we check the actual body that's flying on the plane. Airlines usually publish equipment assignments in advance, and they're also rolling out Starlink body-by-body. So we know, for instance, that all JSX E145s have Starlink and that none of Air France's A320s have Starlink. (You can see a summary of our data at https://ift.tt/YWQftID , though the live logic has a few rules not encoded there.) If there's a complete match at the body type level, we can confidently tell you your flight will have Starlink. However, in most cases, the airline has only rolled out a partial upgrade to that aircraft type. In that case, we need to drill down a little more and figure out exactly which plane is flying on your route. We can do this by looking up the 'tail number' (think of it as a license plate for the plane). Unfortunately , the tail number is usually only assigned a few days before a flight. So, before that, the best we can do is calculate the probability that your plane will be assigned an aircraft with Starlink enabled. To do this, we had to build a mapping of aircraft tails to Starlink status. Here, I have to thank online airline enthusiasts who maintain meticulous spreadsheets and forum threads to track this data! As I understand it, they usually get this data from airline staff who are enthusiastic about Starlink rollouts, so it's a reliable, frequently updated source. Most of our work was finding each source, normalizing their formats, building a reliable & responsible system to pull them in, and then tying them together with our other data sources. Basically, it's a data normalization problem! I used to work on financial data systems and I was surprised how similar this problem was. - Starlink itself is also a pretty cool technology. I also wrote a blog post ( https://ift.tt/5kOUvhP ) on why it's so much better than all the other aircraft wifi options out there. At a high level, it's only possible because rocket launches are so cheap nowadays, which is incredibly cool. The performance is great, so it's well worth planning your flights around it where possible. Right now, your best bet in the US is on United regional flights and JSX/Hawaiian. Internationally, Qatar is the best option (though obviously not right now), with Air France a distance second. This will change throughout the year as more airlines roll it out though, and we'll keep our database updated! March 19, 2026 at 12:29AM

Show HN: Hanoi-CLI – simulate and optimize pod placement in Kubernetes https://ift.tt/ecx7VfQ

Show HN: Hanoi-CLI – simulate and optimize pod placement in Kubernetes Hi HN, I built hanoi-cli, a small CLI tool that analyzes how pods are distributed across Kubernetes nodes and suggests a better placement. The idea came from a recurring issue: clusters often end up imbalanced even when requests/limits are set properly. Some nodes get overloaded while others stay underutilized. Would love feedback. https://ift.tt/hwMq8ct March 18, 2026 at 11:14PM

Tuesday, March 17, 2026

Show HN: Crust – A CLI framework for TypeScript and Bun https://ift.tt/6ZEhd59

Show HN: Crust – A CLI framework for TypeScript and Bun We've been building Crust ( https://crustjs.com/ ), a TypeScript-first, Bun-native CLI framework with zero dependencies. It's been powering our core product internally for a while, and we're now open-sourcing it. The problem we kept running into: existing CLI frameworks in the JS ecosystem are either minimal arg parsers where you wire everything yourself, or heavyweight frameworks with large dependency trees and Node-era assumptions. We wanted something in between. What Crust does differently: - Full type inference from definitions — args and flags are inferred automatically. No manual type annotations, no generics to wrangle. You define a flag as type: "string" and it flows through to your handler. - Compile-time validation — catches flag alias collisions and variadic arg mistakes before your code runs, not at runtime. - Zero runtime dependencies — @crustjs/core is ~3.6kB gzipped (21kB install). For comparison: yargs is 509kB, oclif is 411kB. - Composable modules — core, plugins, prompts, styling, validation, and build tooling are all separate packages. Install only what you need. - Plugin system — middleware-based with lifecycle hooks (preRun/postRun). Official plugins for help, version, and shell autocompletion. - Built for Bun — no Node compatibility layers, no legacy baggage. Quick example: import { Crust } from "@crustjs/core"; import { helpPlugin, versionPlugin } from "@crustjs/plugins"; const main = new Crust("greet") .args([{ name: "name", type: "string", default: "world" }]) .flags({ shout: { type: "boolean", short: "s" } }) .use(helpPlugin()) .use(versionPlugin("1.0.0")) .run(({ args, flags }) => { const msg = `Hello, ${args.name}!`; console.log(flags.shout ? msg.toUpperCase() : msg); }); await main.execute(); Scaffold a new project: bun create crust my-cli Site: https://crustjs.com GitHub: https://ift.tt/thosJWV Happy to answer any questions about the design decisions or internals. https://ift.tt/s0Wvt3T March 17, 2026 at 11:43AM

Show HN: FireClaw – Open-source proxy defending AI agents from prompt injection https://ift.tt/8W1i5FV

Show HN: FireClaw – Open-source proxy defending AI agents from prompt injection Hey HN, We built FireClaw because we kept watching AI agents get owned by prompt injection through web content. The agent fetches a page, the page says "ignore previous instructions," and suddenly your agent is leaking data or running commands it shouldn't. The existing solutions detect injection after the fact. We wanted to prevent it. FireClaw is a security proxy that sits between your AI agent and the web. Every fetch passes through a 4-stage pipeline: 1. DNS blocklist check (URLhaus, PhishTank, community feed) 2. Structural sanitization (strip hidden CSS, zero-width Unicode, encoding tricks) 3. Isolated LLM summarization (hardened sub-process with no tools or memory) 4. Output scanning with canary tokens (detect if content bypassed summarization) The key insight: even if Stage 3's LLM gets injected, it has no tools, no memory, and no access to your data. It can only return text — which still gets scanned in Stage 4. The attacker hits a dead end. Other design decisions: - No bypass mode. The pipeline is fixed. If your agent gets compromised, it can't disable FireClaw. - Community threat feed — instances anonymously share detection metadata (domain, severity, detection count) to build a shared blocklist. No page content is ever sent. - Runs on a Raspberry Pi as a physical appliance with an OLED display that shows real-time stats and lights up with animated flames when it catches a threat. We searched the literature and open source extensively — no one else is doing proxy-based defense for agent prompt injection. Detection exists, sandboxing exists, but an inline proxy that sanitizes before content reaches the agent's context? We couldn't find it. 200+ detection patterns, JSONL audit logging, domain trust tiers, rate limiting, and cost controls. AGPLv3 licensed. Website: https://fireclaw.app Would love feedback from anyone working on AI agent security. What are we missing? What attack vectors should we add to the pattern database? https://ift.tt/sLEPgdc March 17, 2026 at 11:28PM

Show HN: F0lkl0r3.dev – a searchable, interlinked map of computing history https://ift.tt/g9SKXyI

Show HN: F0lkl0r3.dev – a searchable, interlinked map of computing history I love reading about the early days of computing, but finding the alpha in raw historical archives can be tough. I built f0lkl0r3.dev over the weekend to fix that. It takes nearly 1,000 oral histories from the Computer History Museum and makes them explorable, searchable, interconnected, and multimodal. To build it, I used the Gemini APIs (via ai.dev) to process the massive volume of unstructured interview text, pulling out the timelines, machines, and people so they could be cross-referenced. The app itself was built with Antigravity, next steps will be to add images and videos. You can search by specific mainframes, browse by era in the timeline, or just read the Apocrypha section for weird historical anecdotes. Enjoy the rabbit hole! I hope it distracts and inspires at least a few more people than me today. :) https://f0lkl0r3.dev March 17, 2026 at 11:00PM

Show HN: March Madness Bracket Challenge for AI Agents Only https://ift.tt/r5Zvjcd

Show HN: March Madness Bracket Challenge for AI Agents Only I built a March Madness bracket challenge for AI agents, not humans. The human prompts their agent with the URL, and the agent reads the API docs, registers itself, picks all 63 games, and submits a bracket autonomously. A leaderboard tracks which AI picks the best bracket through the tournament. The interesting design problem was building for an agent-first user. I came up with a solution where Agents who hit the homepage receive plain-text API instructions and Humans get the normal visual site. Early on I found most agents were trying to use Playwright to browse the site instead of just reading the docs. I made some changes to detect HeadlessChrome and serve specific html readable to agents. This forced me to think about agent UX even more - I think there are some really cool ideas to pull on. The timeline introduced an interesting dynamic. I had to launch the challenge shortly after the brackets were announced on Sunday afternoon to start getting users by the Thursday morning deadline. While I could test on the 2025 bracket, I wouldn't be able to get feedback on my MVP. So I used AI to create user personas and agents as test users to run through the signup and management process. It gave me valuable reps to feel confident launching. The stack is Next.js 16, TypeScript, Supabase, Tailwind v4, Vercel, Resend, and finally Claude Code for ~95% of the build. Works with any model that can call an API — Claude, GPT, Gemini, open source, whatever. Brackets are due Thursday morning before the First Round tips off. Bracketmadness.ai https://ift.tt/vxQjCeb March 17, 2026 at 07:56PM

Monday, March 16, 2026

Show HN: Claude Code skills that build complete Godot games https://ift.tt/GDBVMqC

Show HN: Claude Code skills that build complete Godot games I’ve been working on this for about a year through four major rewrites. Godogen is a pipeline that takes a text prompt, designs the architecture, generates 2D/3D assets, writes the GDScript, and tests it visually. The output is a complete, playable Godot 4 project. Getting LLMs to reliably generate functional games required solving three specific engineering bottlenecks: 1. The Training Data Scarcity: LLMs barely know GDScript. It has ~850 classes and a Python-like syntax that will happily let a model hallucinate Python idioms that fail to compile. To fix this, I built a custom reference system: a hand-written language spec, full API docs converted from Godot's XML source, and a quirks database for engine behaviors you can't learn from docs alone. Because 850 classes blow up the context window, the agent lazy-loads only the specific APIs it needs at runtime. 2. The Build-Time vs. Runtime State: Scenes are generated by headless scripts that build the node graph in memory and serialize it to .tscn files. This avoids the fragility of hand-editing Godot's serialization format. But it means certain engine features (like `@onready` or signal connections) aren't available at build time—they only exist when the game actually runs. Teaching the model which APIs are available at which phase — and that every node needs its owner set correctly or it silently vanishes on save — took careful prompting but paid off. 3. The Evaluation Loop: A coding agent is inherently biased toward its own output. To stop it from cheating, a separate Gemini Flash agent acts as visual QA. It sees only the rendered screenshots from the running engine—no code—and compares them against a generated reference image. It catches the visual bugs text analysis misses: z-fighting, floating objects, physics explosions, and grid-like placements that should be organic. Architecturally, it runs as two Claude Code skills: an orchestrator that plans the pipeline, and a task executor that implements each piece in a `context: fork` window so mistakes and state don't accumulate. Everything is open source: https://ift.tt/L94pIta Demo video (real games, not cherry-picked screenshots): https://youtu.be/eUz19GROIpY Blog post with the full story (all the wrong turns) coming soon. Happy to answer questions. https://ift.tt/L94pIta March 16, 2026 at 11:07PM