Show HN: AsteroidOS 2.0 – Nobody asked, we shipped anyway
Hi HN, After roughly 8 years of silently rolling 1.1 nightlies, we finally tagged a proper stable 2.0 release. We built this because wrist-sized Linux is genuinely fun to hack on, and because a handful of us think it's worth keeping capable hardware alive long after manufacturers move on. Smartwatches don't really get old — the silicon is basically the same as it was a decade ago. We just keep making it useful for us.
No usage stats, no tracking, no illusions of mass adoption. The only real signal we get is the occasional person who appears in our Matrix chat going "hey, it booted on my watch from 2014 and now it's usable again" — and that's plenty.
Privacy is non-negotiable: zero telemetry, no cloud, full local control. Longevity is the other half: we refuse to let good hardware become e-waste just because support ended. On the learning side, it's been one of the best playgrounds: instant feedback on your wrist makes QML/Qt, JavaScript watchfaces and embedded Linux feel tangible. The community is small and kind — perfect for people who want to learn open-source dev without gatekeeping.
Technically we're still pragmatic: libhybris + older kernels on most devices since it just works, but we've already mainlined rinato (Samsung Gear 2) and sparrow (ASUS ZenWatch 2) — rinato even boots with a usable UI. That's the direction we're pushing toward.
Repo: https://github.com/AsteroidOS Install images & docs: https://asteroidos.org 2.0 demo video : https://www.youtube.com/watch?v=U6FiQz0yACc Announcement post: https://asteroidos.org/news/2-0-release/
Questions, port requests, mentoring offers, criticism, weird ideas — all welcome. We do this because shaping a tiny, open wearable UX and infrastructure is oddly satisfying, and because Linux on the wrist still feels like a playground worth playing in.
Cheers, the AsteroidOS Team
Show HN: LaminarDB – Streaming SQL database in Rust, zero-alloc hot path
LaminarDB is an open-source, in-memory, distributed, and scalable time series database that provides high-performance data storage and querying capabilities for real-time applications and IoT systems.
Show HN: I wrote a technical history book on Lisp
The book page links to a blog post that explains how I got about it (and has a link to sample content), but the TL&DR is that I could not find a lot of books that were on "our" history _and_ were larded with technical details. So I set about writing one, and some five years later I'm happy to share the result. I think it's one of the few "computer history" books that has tons of code, but correct me if I'm wrong (I wrote this both to tell a story and to learn :-)).
My favorite languages are Smalltalk and Lisp, but as an Emacs user, I've been using the latter for much longer and for my current projects, Common Lisp is a better fit, so I call myself "a Lisp-er" these days. If people like what I did, I do have plans to write some more (but probably only after I retire, writing next to a full-time job is heard). Maybe on Smalltalk, maybe on computer networks - two topics close to my heart.
And a shout-out to Dick Gabriel, he contributed some great personal memories about the man who started it all, John McCarthy.
Show HN: Pg-typesafe – Strongly typed queries for PostgreSQL and TypeScript
Throughout my career, I tried many tools to query PostgreSQL, and in the end, concluded that for what I do, the simplest is almost always the best: raw SQL queries.
Until now, I typed the results manually and relied on tests to catch problems. While this is OK in e.g., GoLang, it is quite annoying in TypeScript. First, because of the more powerful type system (it's easier to guess that updated_at is a date than it is to guess whether it's nullable or not), second, because of idiosyncrasies (INT4s are deserialised as JS numbers, but INT8s are deserialised as strings).
So I wrote pg-typesafe, with the goal of it being the less burdensome: you call queries exactly the same way as you would call node-pg, and they are fully typed.
It's very new, but I'm already using it in a large-ish project, where it found several bugs and footguns, and also allowed me to remove many manual type definitions.
Show HN: I taught LLMs to play Magic: The Gathering against each other
I've been teaching LLMs to play Magic: The Gathering recently, via MCP tools hooked up to the open-source XMage codebase. It's still pretty buggy and I think there's significant room for existing models to get better at it via tooling improvements, but it pretty much works today. The ratings for expensive frontier models are artificially low right now because I've been focusing on cheaper models until I work out the bugs, so they don't have a lot of games in the system.
Show HN: Box of Rain - Auto-Layouted ASCII Diagrams
Box of Rain is an open-source project that provides a simple, flexible, and extensible system for managing user settings and configurations across different applications and platforms. It aims to simplify the process of managing user preferences and settings, making it easier for developers to build applications with customizable user experiences.
Show HN: Writing a C++20M:N Scheduler from Scratch (EBR, Work-Stealing)
tiny_coro is a lightweight, educational M:N asynchronous runtime written from scratch using C++20 coroutines. It's designed to strip away the complexity of industrial libraries (like Seastar or Folly) to show the core mechanics clearly.
Key Technical Features:
M:N Scheduling: Maps M coroutines to N kernel threads (Work-Stealing via Chase-Lev deque).
Memory Safety: Implements EBR (Epoch-Based Reclamation) to manage memory safely in lock-free structures without GC.
Visualizations: I used Manim (the engine behind 3Blue1Brown) to create animations showing exactly how tasks are stolen and executed.
Why I built it: To bridge the gap between "using coroutines" and "understanding the runtime." The code is kept minimal (~1k LOC core) so it can be read in a weekend.
Show HN: 6cy – Experimental streaming archive format with per-block codecs
Hi HN,
I’ve been experimenting with archive format design and built 6cy as a research project.
The goal is not to replace zip/7z, but to explore: • block-level codec polymorphism (different compression per block) • streaming-first layout (no global seek required) • better crash recovery characteristics • plugin-based architecture so proprietary codecs can exist without changing the format
Right now this is an experimental v0.x format. The specification may still change and compatibility is not guaranteed yet.
I’m mainly looking for feedback on the format design rather than performance comparisons.
Thanks for taking a look.
Show HN: Glitchy camera – a circuit-bent camera simulator in the browser
Fun little side project I built after learning about circuit bending in cameras for intentional glitch effect. It is browser based camera toy where you "rewire" CCD pin pairs, turn knobs to get different glitch artefacts in real time to capture as photos. I had fun learning to simulate different pin modes - channel split, hue/phase shifts, horizontal clock delays, colour kill etc.
Here are some photos taken: https://glitchycam.com/gallery
I intentionally leaned towards skeuomorphic design for nostalgia. I miss the days where I'd spend hours making a button to look like a physical button. Here I chose to make it look like a "good enough" Teenage Engineering device UI.
I tested/used GPT-5.3-Codex to build this from scratch, since there was a lot of hype around it on X. Maybe I wasn’t using it right, but I found it needed a lot of code cleanup at every step and a lot of hand holding along the way. It missed details/nuances and didn't land the skeuomorphic buttons or the interaction polish. It mostly helped with boilerplate where there wasn't much thinking/detailing. It did give a basic starting point for the effect calculations, but didn't really move the needle on the details.
Please give it a go and let me know what you think - your photos and video never leave your browser (you can download them if you choose to). Everything is processed locally in your browser (works offline), nothing is uploaded or seen by anyone.
Show HN: Continue – Source-controlled AI checks, enforceable in CI
We now write most of our code with agents. For a while, PRs piled up, causing review fatigue, and we had this sinking feeling that standards were slipping. Consistency is tough at this volume. I’m sharing the solution we found, which has become our main product.
Continue (https://docs.continue.dev) runs AI checks on every PR. Each check is a source-controlled markdown file in `.continue/checks/` that shows up as a GitHub status check. They run as full agents, not just reading the diff, but able to read/write files, run bash commands, and use a browser. If it finds something, the check fails with one click to accept a diff. Otherwise, it passes silently.
Here’s one of ours:
.continue/checks/metrics-integrity.md
---
name: Metrics Integrity
description: Detects changes that could inflate, deflate, or corrupt metrics (session counts, event accuracy, etc.)
---
Review this PR for changes that could unintentionally distort metrics.
These bugs are insidious because they corrupt dashboards without triggering errors or test failures.
Check for:
- "Find or create" patterns where the "find" is too narrow, causing entity duplication (e.g. querying only active sessions, missing completed ones, so every new commit creates a duplicate)
- Event tracking calls inside loops or retry paths that fire multiple times per logical action
- Refactors that accidentally remove or move tracking calls to a path that executes with different frequency
Key files: anything containing `posthog.capture` or `trackEvent`
This check passed without noise for weeks, but then caught a PR that would have silently deflated our session counts. We added it in the first place because we’d been burned in the past by bad data, only noticing when a dashboard looked off.---
To get started, paste this into Claude Code or your coding agent of choice:
Help me write checks for this codebase: https://continue.dev/walkthrough
It will:- Explore the codebase and use the `gh` CLI to read past review comments
- Write checks to `.continue/checks/`
- Optionally, show you how to run them locally or in CI
Would love your feedback!
Show HN: How I built Timeframe, our family e-paper dashboard
I'm proud to share the e-paper family dashboard I've been building over the past decade. I think you might find it interesting. It's open source: https://github.com/joelhawksley/timeframe.
Show HN: Jemini – Gemini for the Epstein Files
Related: Show HN: JeffTube - https://news.ycombinator.com/item?id=47030797
Show HN: Scanned 1927-1945 Daily USFS Work Diary
My great-grandfather Reuben P. Box was a US Forest Ranger in Northern California, and I've got his daily work diary from 1927-1945, through the depression, WWII, Conservation Corps, and lots of forest fires. I've scanned the entire thing, had Claude help with transcription, indexing, and web site building, and put the whole thing here:
https://forestrydiary.com/
This is one of those projects I've sat on for years, but with Claude and Mistral helping with the handwriting recognition, and even helping me write a custom scanning app that would auto scan each page and put it into a database as I assembled everything.
As far as I know, this is the only US Forestry Diary that has been fully scanned in and published. I understand that there are other diaries in some collections, but none have been scanned in. I hope this helps somebody. Please let me know if it does.
This is the sort of project Claude and AI can help with - A personal project that sits on the shelf forever, but now a reasonable project that can be published in my spare time. I'm not trying to earn money on this, but just improving our knowledge and history just a little bit.
Show HN: Wildex – Pokémon Go for real wildlife
Dear HN,
My wife and I both love nature and have always wanted a Pokémon go style app, to collect and learn about different species we find.
All the usual species identifying apps were didn’t feel fun enough, so we designed and built one together!
Would love for you guys to give it a try and share any thoughts you have.
Show HN: Cycast – High-performance radio streaming server written in Python
A high-performance internet radio streaming server written in Python with Cython optimizations.
Show HN: OpenBoot – 2 commands to replace a 3-hour Mac setup ritual
OpenBoot is an open-source project that aims to create a secure, customizable, and extensible bootloader for a wide range of devices, providing a foundation for building robust and flexible embedded systems.
Show HN: Maths, CS and AI Compendium
Hey HN, I don’t know who else has the same issue, but:
Textbooks often bury good ideas in dense notation, skip the intuition, assume you already know half the material, and get outdated in fast-moving fields like AI.
Over the past 7 years of my AI/ML experience, I filled notebooks with intuition-first, real-world context, no hand-waving explanations of maths, computing and AI concepts.
In 2024, a few friends used these notes to prep for interviews at DeepMind, OpenAI, Nvidia etc. They all got in and currently perform well in their roles. So I'm sharing.
This is an open & unconventional textbook covering maths, computing, and artificial intelligence from the ground up. For curious practitioners seeking deeper understanding, not just survive an exam/interview.
To ambitious students, an early careers or experts in adjacent fields looking to become cracked AI research engineers or progress to PhD, dig in and let me know your thoughts.
Show HN: Bashtorio – Factorio-Like in the Browser Backed by a Linux VM
I created a free, open-source browser game inspired by Factorio.
You place "Input" machines that produce streams of bytes. You use conveyor belts to feed those bytes through other machines which produce transformations, and then to "Output" machines which produce audio or visual effects.
The game uses v86 to run a real Linux VM in the browser. I use the 9p filesystem to enable IPC via FIFO pipes, so shell commands can stream data continuously rather than just running once.
Features: - 30+ machine types (sources, filters, routers, packers, audio synthesis, displays) - "Command" machines that pipe data through real shell commands - Streaming mode for persistent processes - Shareable factories via URL - Chiptune audio engine (oscillators, Game Boy noise channel) + additional 808 drum machine
Try the presets in the menu bar (top left) to see what's possible. Requires WASM and may take a moment to load on slower connections.
Live: https://bashtorio.xyz Source: https://github.com/EliCunninghamDev/bashtorio
Show HN: Relay – I built a modern web-based IRC/Discord replacement
Relay is a powerful open-source framework for building GraphQL servers on top of Node.js. It provides a modern, efficient, and scalable way to manage data flow and state in web and mobile applications.
Show HN: Free alternative to Wispr Flow, Superwhisper, and Monologue
Freeflow is an open-source, self-hosted, and privacy-focused alternative to popular social media platforms. It aims to provide users with a decentralized and ad-free social networking experience that prioritizes user control and data privacy.
Show HN: VisibleInAI – Check if ChatGPT recommends your brand
Visible in AI is a platform that provides AI-powered visual analysis solutions to businesses. The article highlights the company's mission to democratize AI and make it accessible to organizations of all sizes through its suite of tools and services.
Show HN: 2D Coulomb Gas Simulator
A pretty simple but fun to play with simulator for a concept from mathematical physics called the "2D Coulomb gas". I originally made this for my Bachelor's thesis to create pretty pictures and build intuition but have recently gotten it a fresh coat of paint and better performance curtesy of WebGPU acceleration (ported with liberal help from Codex to get through all of the boilerplate).
Play around with it - hopefully read up more on the 2D Coulomb gas because it is an incredibly deep topic research wise.
Show HN: Simple org-mode web adapter
I like to use org files a lot, but I wanted some way to browse and edit them on my phone when I'm out. Yesterday I used Codex to make this simple one-file web server that just displays all my org files with backlinks. It doesn't have any authentication because I only run it on my wireguard VPN. I've been having fun with it, hopefully it's useful to someone else!
Show HN: Algorithms 1.0.0 – Minimal and clean implementations of algorithms
Minimal, clean, and well-documented implementations of data structures and algorithms in Python 3.
Each file is self-contained with docstrings, type hints, and complexity notes — designed to be read and learned from.
Show HN: Nobody asked for OpenClaw in the cloud. I did it anyway
Contracts, invoices, time tracking, browser automation… all from WhatsApp, Telegram or Slack.
One message, it happens. Thats my vision.
Sonnet 4.6 just dropped.
I swapped it in. 2 min job.
Same agent, noticeably cheaper to run. Agentic tasks that used to cost me $0.15 are closer to $0.04 now. At 79 tools firing across hundreds of users… that’s the difference between a business and a burn rate.
Models are getting cheaper faster than people realize. And the next shift isn’t better chat… it’s MCP. Agents that don’t just talk but actually connect, act, and hand off to each other. That’s where this is going.
I came to realize one thing building this over 2 years and 4 complete rebuilds…
The agent layer is becoming infrastructure.
accordio.ai
Show HN: KrillClaw – 49KB AI agent runtime in Zig for $3 microcontrollers
KrillClaw is an open-source project that provides a flexible, modular, and extensible framework for building and deploying serverless applications. It offers a set of tools and templates to simplify the development, testing, and deployment of serverless functions.
Show HN: Persistent memory for Claude Code with self-hosted Qdrant and Ollama
I built an MCP server that gives Claude Code long-term memory across sessions, backed by infrastructure you control.
Every Claude Code session starts from zero, no memory of previous sessions. This server uses mem0ai as a library and exposes 11 MCP tools for storing, searching, and managing memories. Qdrant handles vector storage, Ollama runs embeddings locally (bge-m3), and Neo4j optionally builds a knowledge graph.
Some engineering details HN might find interesting:
- Zero-config auth: auto-reads Claude Code's OAT token from ~/.claude/.credentials.json, detects token type (OAT vs API key), and configures the SDK accordingly. No separate API key needed. - Graph LLM ops (3 calls per add_memory) can be routed to Ollama (free/local), Gemini 2.5 Flash Lite (near-free), or a split-model where Gemini handles entity extraction (85.4% accuracy) and Claude handles contradiction detection (100% accuracy).
Python, MIT licensed, one-command install via uvx.
https://github.com/elvismdev/mem0-mcp-selfhosted
Show HN: Distillate – Zotero papers → reMarkable highlights → Obsidian notes
I read a lot of research papers for work. My workflow evolved around an ever-growing inbox of bookmarked papers from arXiv et al. Great for exploration, but hard to keep track of what I read.
Distillate bridges the tools I already use: Zotero (literature management), reMarkable (reader + highlighter), and Obsidian (notes). It automates the whole pipeline:
$ distillate
save to Zotero ──> auto-syncs to reMarkable
│
read & highlight on tablet
just move to Read/ when done
│
V
auto-saves notes + highlights
It polls Zotero for new papers, uploads PDFs to the reMarkable via rmapi, then watches for papers you've finished reading in your Read folder. When it finds one, it:- Parses .rm files using rmscene to extract highlighted text (GlyphRange items)
- Searches for that text in the original PDF using PyMuPDF and adds highlight annotations
- Enriches metadata from Semantic Scholar (publication date, venue, citations)
- Creates a structured markdown note with metadata, highlights grouped by page, and the annotated PDF (I keep mine in an Obsidian vault)
The core workflow just needs Zotero and a reMarkable — no paid APIs, no cloud backend, your notes stay on your machine. Optional extras if you plug them in:
- AI summaries via Claude (one-liner + key learnings from your highlights)
- Daily reading suggestions from your queue
- Weekly email digest via Resend
- Obsidian Bases database for tracking your reading
Stack: rmapi for reMarkable Cloud, rmscene for .rm parsing, PyMuPDF for PDF annotation. Python 3.10+, pip installable.
The trickiest part was highlight extraction: reMarkable stores highlighted text as GlyphRange items in a scene tree, and matching that text back to positions in the original PDF required fuzzy search with OCR cleanup, plus special merging logic for e.g. cross-page highlights. Happy to say it works well ~99% of the time now.
Install: pip install distillate && distillate --init
Code: https://github.com/rlacombe/distillate
Site: https://distillate.dev
I built this for myself but would love feedback, especially from other reMarkable + Zotero users. What's missing from your workflow? What else should I add?
Show HN: NBA-API-ts – Zero-dep TypeScript client for 138 NBA stats endpoints
The article introduces a TypeScript-based NBA API that provides easy access to NBA data, including player and team statistics, scores, standings, and more. The API offers a simple and organized way to fetch and utilize NBA data in web applications.
Show HN: Microgpt is a GPT you can visualize in the browser
very much inspired by karpathy's microgpt of the same name. it's (by default) a 4000 param GPT/LLM/NN that learns to generate names. this is sorta an educational tool in that you can visualize the activations as they pass through the network, and click on things to get an explanation of them.