Tuesday, July 21, 2026

Show HN: Edky, a CLI to convert Ed25519 public keys from one encoding to another https://ift.tt/7TVLscf

Show HN: Edky, a CLI to convert Ed25519 public keys from one encoding to another Everything increasingly runs on Ed25519 keypairs, but Ed25519 public keys can be encoded as text in dozens of surface-incompatible different ways: hexadecimal, Base64 (OpenSSH), Base32z (iroh, pkdns), Base58 (NEAR), and Multibase (IPFS, libp2p), just for starters. Edky is a command-line tool and Rust library that converts between these Ed25519 surface encodings, aiding use of the same underlying keypair across e.g. an iroh endpoint, a libp2p peer, or a NEAR Protocol account. (Surprisingly, a conversion utility like this didn't yet exist!) $ cargo binstall -y edky $ edky convert -f iroh -t libp2p 47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw $ edky convert -f libp2p -t iroh z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw 47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy $ edky convert -f near -t hex ed25519:FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a $ edky convert -f hex -t near d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a ed25519:FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z https://ift.tt/krQSpGa July 21, 2026 at 11:39PM

Monday, July 20, 2026

Show HN: Neuron. Turn a SQL query history into a semantic layer https://ift.tt/EJ6KqhW

Show HN: Neuron. Turn a SQL query history into a semantic layer My cofounder and I previously ran analytics groups in life sciences. That means we led teams of analysts who typed SQL all day long and we ran into common issues of consistency, correctness, and knowledge transfer. We were always one resignation away from losing all of the history on a project or a client. When we left that world we thought we could solve the problem with auto-documentation. Cut to now and we've landed on the modern version of that solution, which is to turn previously executed queries into context for AI. The intuition is roughly this: a smart analyst can read SQL and have a pretty good idea of what's going on, and in fact can infer a lot of institutional knowledge about the domain and how to analyze particular data. LLMs are not great at this (Anthropic and Snowflake have written as much). So we act as the "smart analyst" to pull out institutional knowledge and practices (in the form of SQL) that you can give to an LLM so that it can code like a competent analyst on your team. Right now we're deploying it as a semantic layer population tool. You want to fill up a Genie or Cortex semantic layer? Run our code on your query history, prune it with your experts (delete this, rename that, etc.), and get moving. That can take hours/days instead of weeks. Plus, everything we export is portable to whatever system you choose. FYI we ask for emails on the free trial download so we can monitor our traction and build our network but you don't need to include it if you don't want to. We're hungry for feedback from people who work in the field and are facing these challenges. Major, major thanks in advance for your time. https://ift.tt/tC76ZEl July 20, 2026 at 11:41PM

Sunday, July 19, 2026

Saturday, July 18, 2026

Show HN: Ilya Sutskever's AI reading list into a learning RPG – using kimi k3 https://ift.tt/oS7kIdc

Show HN: Ilya Sutskever's AI reading list into a learning RPG – using kimi k3 I wanted to take kimi k3 for a spin. It turned my simple one sentence prompt to this. Repo here. https://ift.tt/kmT7bNp Well, I'm mindblown. Very humbling for me as a software engineer. Took couple hours for it to build this completely autonomously. And it was all from its mobile app. It couldn't render this though from within the app - it does have a feature to preview any website and publish it on kimi's domain - but it didn't work for this. I had to put it on github pages. It doesn't store anything btw - all progress is tracked in your browser storage. https://ift.tt/29vAF3s July 19, 2026 at 04:24AM

Show HN: RewindCup – explore 23 World Cups on an interactive globe https://ift.tt/DgHjixE

Show HN: RewindCup – explore 23 World Cups on an interactive globe https://rewindcup.com July 19, 2026 at 03:37AM

Show HN: Peek-CLI: Let Claude Code iterate on front end designs https://ift.tt/wD7A6Xy

Show HN: Peek-CLI: Let Claude Code iterate on front end designs https://ift.tt/A6bdolx July 19, 2026 at 12:32AM

Show HN: SDF Pelicans on Bicycle https://ift.tt/187YFOx

Show HN: SDF Pelicans on Bicycle https://ift.tt/liCwALr July 19, 2026 at 12:47AM

Friday, July 17, 2026

Show HN: Tools Berry – client-side calculators with open-source tax engines https://ift.tt/KjuGprP

Show HN: Tools Berry – client-side calculators with open-source tax engines https://ift.tt/J23TfUX July 18, 2026 at 01:08AM

Show HN: Lific: Issue trackers should be simple, right? https://ift.tt/vXMV3gp

Show HN: Lific: Issue trackers should be simple, right? I built Lific because I direct AI coding agents on largish projects and needed somewhere for project state to live that isn't markdown files in the repo. When I was begging to work on long horizon ideas, I started on Linear, but my agent files issues faster than a human does, and I hit their limits and pricing wall almost immediately. Then I self-hosted a popular open source tracker which meant running its 13 containers, and its MCP integration was 30k tokens and I got so fed up that I eventually removed it and went back to .md files for a few weeks. Lific is the opposite shape of most of your self hosted server issue trackers: It's a single Rust binary that uses SQLite, and it has an optimized MCP server built in. Web UI is also included integrated directly into the binary. The simplicity is meant to only apply to the size and the ease of installation. The web UI is fully fleshed out with all of the UX you would expect from an issue tracker like linear. Since I started using lific, my agent flow is that I open the web UI, find a few issues I want to work on, then tell the agent "work on LIF-298, 299 and 301, and if you find bugs, file them as new issues." At the end of the day the project has tracked itself. Issues have statuses, blockers, and comment threads, so "what's workable right now" is a query instead of the agent guessing. Plans are persisted step trees, so a session tomorrow resumes with the same understanding of the goal and the path as the session that made the plan. My largest project has 300+ issues and 100+ docs and agents search it fast. Everything exports to markdown in one click, and the database is just a file on your machine. Setup is ` cargo install ` ` lific init ` ` lific connect ` then pick your harness (OpenCode, Cursor, Claude Code, etc). One honest caveat: on Windows there's no service install yet, so the binary has to be actively running for MCP or Web UI to work on windows. The biggest reason I think Lific is different than a lot of the other options is the lightweight nature of it alongside still having a fully featured web UI. It's meant for self hosters to work on big projects with agents, without sacrificing the other benefits of an issue tracker like a nice management UI or authentication for teams using it. Would genuinely love feedback and bug reports either here or on the discord! https://lific.dev July 17, 2026 at 11:22PM

Thursday, July 16, 2026

Wednesday, July 15, 2026

Show HN: SirixDB 1.0 Beta – Git-Like Versioning, Diffs, Time-Travel Queries https://ift.tt/f7dBJF2

Show HN: SirixDB 1.0 Beta – Git-Like Versioning, Diffs, Time-Travel Queries Hi HN! I've posted SirixDB here before, back in 2019 ( https://ift.tt/sd9Mrvh ) and again in 2023 ( https://ift.tt/M9IjZ0G ). The core idea behind SirixDB is, that history is a first-class citizen. Every commit stores a lightweight, queryable revision. You can query any point in time, even individual nodes (for instance JSON values), diff arbitrary revisions, and efficiently track how data evolved without replaying events. Unlike traditional event stores, historical states do not need to be reconstructed by replaying events nor do we have to think about projections. Revisions are directly queryable. A simple example: Jan 1: Record "Price = $100, valid from Jan 1". Stored on Jan 1 (transaction time). Jan 20: Discover price was actually $95 on Jan 1. Commit correction. After correction, you can ask across both axes: - "What did we THINK the price was on Jan 16?" -> $100 (Transaction time) - "What WAS the price on Jan 1?" -> $95 (Valid time) I've worked on this in my spare time since 2013, following its academic precursor (Idefix/Treetank) at the University of Konstanz. The architecture relies on an append-only physical log and a persistent copy-on-write page trie. A high level view of the architecture: Physical Log (append-only, sequential writes) ┌────────────────────────────────────────────────────────────────────────┐ │ [R1:Root] [R1:P1] [R1:P2] [R2:Root] [R2:P1'] [R3:Root] [R3:P2'] ... │ └────────────────────────────────────────────────────────────────────────┘ t=0 t=1 t=2 t=3 t=4 t=5 t=6 → time Each revision is indexed, and unchanged pages are shared: [Rev 1] [Rev 2] [Rev 3] │ │ │ ▼ ▼ ▼ [Root₁] [Root₂] [Root₃] │ │ │ │ │ │ │ └─────────┐ │ └────────┐ │ └─────────┐ ▼ ▼ ▼ ▼ ▼ ▼ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ P1 │ │ P2 │ │ P1' │ │ P2' │ └──────┘ └──────┘ └──────┘ └──────┘ Rev 1 Rev 1+2 Rev 2+3 Rev 3 (shared) (shared) Beneath the root pages sit node and secondary indexes, using a novel sliding-snapshot algorithm to balance read/write performance. Everything is queryable using JSONiq via the Brackit compiler. Back in 2019, and even in 2023, SirixDB was very slow due to GC pressure. Unlike most other document stores, SirixDB stores fine-grained nodes, and I came to realize that an on-heap (JVM) representation made up of lots of small objects simply didn't make sense. I measured it with async-profiler — with some help from Andrei Pangin himself — and the result was that the poor throughput was due to the sheer amount of allocations which scaled almost linearly with the number of open transactions. Working a full-time software engineering job, I lacked the energy for a massive spare-time rewrite. About a year ago, I started experimenting with AI. It turned out to be ideal for automating the tedious, repetitive parts of migrating the storage layer to Java's Foreign Function & Memory API, storing pages completely off-heap. Looking further ahead, the append-only, immutable-page design maps naturally onto object storage like S3 and distributed logs like Kafka for a cloud version, and initial prototypes already exist. Maybe that becomes a commercial service one day, but for now, I'm just thrilled to see these core design principles finally proven out.There's an interactive demo, documentation, and the code is on GitHub. I'd love feedback and am happy to answer questions! kind regards Johannes [1] https://sirix.io | https://ift.tt/KOCgxSv [2] https://ift.tt/RGJQ0Bn [3] https://demo.sirix.io [4] https://sirix.io/docs/ [5] http://brackit.io https://ift.tt/KOCgxSv July 15, 2026 at 09:16PM

Show HN: Leet Robotics: Learn robotics and ROS2 with hands-on courses https://ift.tt/rAZ5WDq

Show HN: Leet Robotics: Learn robotics and ROS2 with hands-on courses Hi all, I've just launched Leet Robotics: a platform to learn robotics hands-on, with a full ROS2 workspace that runs in the browser (Jazzy, Gazebo Harmonic, Foxglove, VS Code) - no install required. The platform also has room for sharing projects and simulation assets as it grows. Our first course is live now: Intro to ROS2 (free to read). The course teaches skills ranging from building your first node to a capstone project of a robot touring a museum world, with every lesson runnable in the online workspace (free accounts get an hour of workspace time daily - enough to follow the course). Would love feedback from this community: on the course, the workspace experience, and what courses to build next. https://ift.tt/vSqxdnz July 15, 2026 at 05:44PM

Tuesday, July 14, 2026

Show HN: Beautiful Type Erasure with C++26 Reflection https://ift.tt/snjTVE2

Show HN: Beautiful Type Erasure with C++26 Reflection Try it on Compiler Explorer: https://ift.tt/ZVJdl0a Check out the source code: https://ift.tt/wuaLFt4 https://ryanjk5.github.io/posts/rjk-duck/ July 14, 2026 at 06:10PM

Monday, July 13, 2026

Sunday, July 12, 2026

Saturday, July 11, 2026

Show HN: Sqlsure – deterministic semantic checks for AI-generated SQL https://ift.tt/sYeTAKt

Show HN: Sqlsure – deterministic semantic checks for AI-generated SQL https://ift.tt/bKHXwPc July 12, 2026 at 01:33AM

Show HN: Don't let your engineering brain rot in the age of AI https://ift.tt/gqL9JiM

Show HN: Don't let your engineering brain rot in the age of AI https://ift.tt/VfSz0RK July 12, 2026 at 01:27AM

Show HN: Share and explore custom Claude Code status lines https://ift.tt/5sve4uO

Show HN: Share and explore custom Claude Code status lines Hey HN, I made a registry for claude code users to share and explore status lines. I found that my friends/coworkers and I would always share screenshots of our terminal to show off our custom claude lines so I decided to build this registry as a place for others to show off! https://claudelines.com July 12, 2026 at 01:21AM

Friday, July 10, 2026

Show HN: We beat Cloudflare's bot detection (open-source stealth browser) https://ift.tt/YyDUmBQ

Show HN: We beat Cloudflare's bot detection (open-source stealth browser) https://ift.tt/4z3Jcjq July 11, 2026 at 05:56AM

Show HN: SubjectiveZero, an open-source agentic node editor for creative coding https://ift.tt/mr3N0GZ

Show HN: SubjectiveZero, an open-source agentic node editor for creative coding Hey there, My name is Clem, I've been a solo indie dev for a couple years now, exploring frontier tech like XR and agentic workflows in the context of creative / interactive work. I've been building creation tools for a while and some common design challenge is to figure out the right level of abstraction for your tool. You can always make it super advanced and complex with low level concepts (shader composition, actual code etc.) but then you get something with a high complexity / learning curve. On the other hand, if you make your tool too high level, it might be easier to use at first, but people will most likely hit a wall eventually and start fighting with your tool to get their edge case done (you see that on mobile a lot actually). With this prototype (called SubjectiveZero), I'd like to imagine that we can kind of move the "slider" on the abstraction layer, meaning that you can actually start with prompts that describe the goal, and you can go as high level (stay with abstract prompts) or low level as you'd like (more specific prompts, or even edit the generated code directly)! The agent orchestration actually understand your context and work along side with you to figure out what could be the best node graph structure for your project (that and some fun little procedural UI done at the node level). If i had to pitch it in 30 seconds, I'd say "Think TouchDesigner and friends but with agent orchestration". When you use it, it will generate real native code (Swift/Metal for now) that you can actually hot reload and iterate on either manually or through agents. It's still an early prototype and macOS only for now, but I'd love to get genuine feedback that could help me drive where this project should go next (or not). Lastly, I'm absolutely open and upfront on the fact that I used agentic coding for this, but as people say: "kept on a short leash". The architecture and specs were relatively well thought out and I personally prefer to be in the loop and review all the code being written to make sure it's going in the right direction. Oh and it's open source :-) Hope you like it! https://ift.tt/Ks2GPwz https://ift.tt/Ks2GPwz July 10, 2026 at 08:53PM

Show HN: Wyrm – Solve algebra by touch, built on an open-source soundness engine https://ift.tt/c39dMLX

Show HN: Wyrm – Solve algebra by touch, built on an open-source soundness engine There is a mobile game called DragonBox. It sort of tricks you into learning algebra by starting with very abstract manipulations of a puzzle that must follow rules... gradually the game teaches you more and more rules and also strips out the more abstract elements until on the last levels you are finally solving real equations. I loved it, it taught my kids algebra.... and it was just fun. Over the years I often thought that there should be a calculator for Algebra that works this way... something where you can drag terms around and cancel & distribute with gestures, but most importantly enter your own problems. It should also do more kinds of problems than DragonBox allowed. So I finally decided to build it. https://dicroce.github.io/wyrm/home.html Here's a video showing it: https://www.youtube.com/watch?v=_STbS4zvIlU . If you'd rather just play with it: there's a limited in-browser demo (real engine, a few example equations, no download) on the landing page — https://dicroce.github.io/wyrm/home.html . The app can be found on iOS ( https://ift.tt/5CI1tEG ) and as of this week on Google Play ( https://ift.tt/0H7RAm2... ). I also decided to open source the underlying math engine so others could build on it: https://ift.tt/P1iHdqQ . My goal for the engine btw is to build it all the way up to Calculus. Monetization is deliberately boring: the engine is free (MIT), and the polished gesture app is $4.99 once. No subscriptions, ads, accounts, or analytics. I'd love feedback on the engine design — especially from anyone who's worked on CAS or proof-assistant-adjacent problems. And if you played DragonBox as a kid and wished it went further: this is for you! https://ift.tt/P1iHdqQ July 9, 2026 at 04:46PM

Show HN: Real-time n-body tree code in CUDA https://ift.tt/wuI09sD

Show HN: Real-time n-body tree code in CUDA Sharing an old project of mine, on my RTX 500 Ada laptop GPU, it can simulate up to 4 million particles at ~400 ms per step using the Barnes-Hut algorithm, saturating the 4GB of VRAM available. The octree construction is fast, as well as the traversal. The major bottlenecks are the VRAM usage (1 million bodies require ~1GB), which could be probably halved by reusing intermediate buffers, and the particle to leaf evaluation, which would benefit from more fp32 FLOPS. Moreover, I still don't have a good heuristic to predetermine the size of the BFS queue, perhaps some sort of memory paging could solve the issue. https://ift.tt/V5k6CwM July 10, 2026 at 09:17PM

Thursday, July 9, 2026

Show HN: Getting GLM 5.2 running on my slow computer https://ift.tt/wUr2mso

Show HN: Getting GLM 5.2 running on my slow computer The capabilities and security I was getting from this LLM are similar to those I've gotten from models like Claude or GPT, and this really surprised me. But then I thought, "I wonder how it would work on a normal computer like mine," and above all, "I wonder if it would work without going into OOM on a computer like mine." So I started working with the help of agents to test this possibility. I started converting the model to int4, understanding MTP usage, and if possible implementing DSA for long context. How it responds in int4 and whether the quality is maintained or not. Until I got to the point, on my computer with 32GB of RAM, I was able to communicate with GLM 5.2 with times that, of course, aren't high in cold start, but even then, we're talking about 0.1 tok/s, but that wasn't important to me. The important thing was the journey to reach this goal and, above all, changing the perspective on the project. I wanted it to work at all costs, even slowly. So I created Colibrì, which was born from a very simple idea, to be honest, but tested in every way, where a 744B Mixture-of-Experts model activates only ~40B parameters per token—and only ~11 GB of those change from token to token (the routed experts). So: The dense part (attention, shared experts, embeddings—~17B params) stays resident in RAM at int4 (~9.9 GB); The 21,504 routed experts (75 MoE layers × 256 experts + the MTP head, ~19 MB each at int4) live on disk (~370 GB) and are streamed on demand, with a per-layer LRU cache, an optional pinned hot-store, and the OS page cache as a free L2. The engine is a single C file (c/glm.c, ~1,300 lines) plus small headers. No BLAS, no Python at runtime, no GPU.No GPU or serious hardware because I don't have that hardware so I can't test it on hardware that is more powerful than my computer.Colibrì is a one-person project, written and tested entirely on a 12-core laptop with 25 GB of RAM — the numbers above are the ceiling of what I can measure at home. Any feedback is welcome! Repo: https://ift.tt/bQ8Xi2v https://ift.tt/bQ8Xi2v July 9, 2026 at 01:35PM

Show HN: Codex Explorer, a local session manager for Codex CLI https://ift.tt/G6Vp92a

Show HN: Codex Explorer, a local session manager for Codex CLI https://ift.tt/zpRKMbi July 9, 2026 at 11:53PM

Wednesday, July 8, 2026

Show HN: Onboard-CLI, a LLM powered and AST-based tool to visualize codebase https://ift.tt/CNG9Kda

Show HN: Onboard-CLI, a LLM powered and AST-based tool to visualize codebase https://ift.tt/UEXyNsS July 9, 2026 at 01:39AM

Show HN: Skill-extractor turns coding agent transcripts into reusable skills https://ift.tt/JtLaQHI

Show HN: Skill-extractor turns coding agent transcripts into reusable skills https://ift.tt/HK7fx4M July 9, 2026 at 01:33AM

Show HN: REST - Living Without Burnout. A manifesto about sustainable discipline https://ift.tt/lW7iT84

Show HN: REST - Living Without Burnout. A manifesto about sustainable discipline Lately, I’ve been thinking a lot about what gives me energy and what slowly takes it away. Those thoughts eventually turned into a small manifesto I called REST. https://themanifesto.rest/ July 9, 2026 at 01:12AM

Show HN: Hnwork.app – UI for Who is hiring posts https://ift.tt/lALUxfZ

Show HN: Hnwork.app – UI for Who is hiring posts Hey HN, I built a UI on top of the "Who is hiring" posts. Take a look at https://hnwork.app ! One of the downsides of unstructured text posts is the readability due to it being free-form and having little to no format. While there are other tools that have been built over the years to make perusing Who is hiring posts easier, I took a try on making my own (I actually tried to build this at a YC hackathon a few years back, but got around to completing it recently). Features: - Text search and search filters - Original post text with call outs to important information - Removes posts that aren’t on topic (complaints, seeking work, vague or missing contact info) - Analytics - API In addition, job posters can create accounts to submit postings through the app. While I don’t expect posting to move over to this app, it’s what I envisioned what a Who is hiring thread would like as an app: - Structured postings with required fields (e.g., salary range required) - Job posters get notifications about comments on their posts - Job posters get verified through their email before posting (e.g., someone posting a Sony job has a Sony email address) - Companies with multiple job posters can coordinate postings and view past postings - Admins can audit and approve companies and posts Job seekers can also create an account to post comments or get access to a simple API but otherwise browsing doesn’t require any kind of signup/signin. I’m open to feedback: let me know if you’d like me to ingest more data from past months, something is missing or broken, or there’s a new feature you’d like to see. Thanks! https://hnwork.app/ July 9, 2026 at 01:30AM

Tuesday, July 7, 2026

Show HN: Fork – Let users build features on top of existing applications https://ift.tt/Qbe3KUN

Show HN: Fork – Let users build features on top of existing applications Our initial release is a Chrome extension that builds on top of Gmail and Google Calendar. We keep limited trace activity of coding sessions for 30 days to troubleshoot and improve our offering. No data (events, emails) from Google is ever logged or retained. 50 second demo: https://www.youtube.com/watch?v=JQ292bncO_c Chrome extension (free + no login): https://ift.tt/GBlcWA4... We have a lot to learn and build. Would love any and all feedback! Paul & Dalton https://withfork.co/ July 7, 2026 at 11:47PM

Monday, July 6, 2026

Show HN: Record, replay, and improve AI agents in production https://ift.tt/DgRMn3C

Show HN: Record, replay, and improve AI agents in production At the AI Engineering World's Fair a big part of the conversation was to nail the self improvement loop. Our take on this is to record state of the agent execution with a durable runtime, then allow users to replay from state checkpoints and run 'what-if' experiments. It's OSS and free to use. Would love some feedback from the community. https://ift.tt/dKjtxMD July 6, 2026 at 10:56PM

Sunday, July 5, 2026

Show HN: Handoff – a verified context bridge between Claude Code sessions https://ift.tt/5JoXiBI

Show HN: Handoff – a verified context bridge between Claude Code sessions https://ift.tt/ozrv3eP July 5, 2026 at 10:48PM

Saturday, July 4, 2026

Show HN: I built an encrypted BLE dongle for pasting stuff to air-gapped devices https://ift.tt/V8miX0g

Show HN: I built an encrypted BLE dongle for pasting stuff to air-gapped devices Definitely one of those "20 minute adventure gone wrong" projects where all I wanted initially was a quick wireless rubber ducky for bitlocker keys and the like and then I kept adding stuff like AES-256..... Currently working on adding WebAuthn/FIDO support because the hardware is already there and scope creep is a lifestyle at this point. Would love feedback, especially on the security side. Repo and PCB files are fully open source. https://ift.tt/tB3ZcD6 July 5, 2026 at 02:43AM

Show HN: Gemma 3 inference in pure C++ with Metal acceleration https://ift.tt/OLeSf1w

Show HN: Gemma 3 inference in pure C++ with Metal acceleration https://ift.tt/kHWniYq July 4, 2026 at 09:24PM

Friday, July 3, 2026

Show HN: Opbox – CRDT based sync for text files on disk https://ift.tt/TEKAXHI

Show HN: Opbox – CRDT based sync for text files on disk Hi! I’m one of the founders of s2.dev, and recently have been hacking on opbox, which is an open-source daemon that turns directories of text files (code, markdown, etc) into collaborative, multi-player workspaces. This started as a bit of an intellectual curiosity, to see if it was possible to do real-time sync at the filesystem level (i.e., in an editor-agnostic way). The idea is pretty simple: - Opbox workspaces are roughly analogous to git repositories (and can be used alongside existing git repos, to share live changes between commits) - When the opbox daemon is running in a workspace (ob start), it listens for local filesystem events within its directory (writes, deletes, new files), and translates them into operations (the titular “op”) on shadow CRDT documents (Yrs) corresponding to each text file (as well as one doc for the namespace as a whole, which handles paths) - These shadow CRDT docs are maintained in a workspace-local sqlite db (Turso) - The ops, which represent diffs on a corresponding CRDT document, are then appended to a durable stream (S2) that acts as a shared journal for all sync participants - Opbox also reads from that journal, receiving ops from other participants, which are then used to update the local documents, first in the db, then by materializing them into actual files on disk This has worked surprisingly well for sharing things like Obsidian graphs in real-time. It’s most helpful in cases where you want the ability to edit local files from arbitrary editors, but still collaborate live. The experience is best from editors where you can configure an aggressive autosave policy, and where edits to an open file are reflected in the editor in a timely way. To gain confidence in the correctness of the core opbox flows (particularly all the nuances around bidirectional sync) I invested in wiring up deterministic simulation testing using the turmoil library, which has been incredibly helpful (see the opbox-sim crate in the repo). https://www.opbox.dev/ July 4, 2026 at 12:26AM

Show HN: Auto-continue Claude Fable 5 the second your 5-hour limit lifts https://ift.tt/miNvqK6

Show HN: Auto-continue Claude Fable 5 the second your 5-hour limit lifts https://ift.tt/PXD371k July 4, 2026 at 01:05AM

Show HN: Dockside – I turned unused space around the macOS Dock into a workspace https://ift.tt/eUv4Vl8

Show HN: Dockside – I turned unused space around the macOS Dock into a workspace https://ift.tt/nXKj0c4 July 3, 2026 at 11:35PM

Thursday, July 2, 2026

Show HN: Piggy – lazy senior dev mode for AI agents (80–94% less code) https://ift.tt/NnjstZG

Show HN: Piggy – lazy senior dev mode for AI agents (80–94% less code) https://ift.tt/bi3PHOK July 3, 2026 at 12:59AM

Show HN: A provider-agnostic agent loop built on ports and adapters https://ift.tt/SkjxNKF

Show HN: A provider-agnostic agent loop built on ports and adapters I work on agent infra at Featherless. This is MIT and works with any OpenAI-compatible endpoint, not just ours. I kept rebuilding the same loop: call model, run tools, feed results back, stop. Every framework I tried either owned the UI, owned the control flow, or dragged a dependency tree. So I pulled the loop out and put every piece behind an interface: memory, model, tools, stop condition. The loop depends only on the interfaces. It never writes to a screen. It emits one typed event stream, so a trace is just data, and you render it however you want. The landing page scrubs one run and rebuilds a CLI, a DOM timeline, and raw JSONL from the same stream. One dependency (zod). Same build runs in Node, Bun, Deno, and a browser tab. Every seam is tested in isolation with deterministic doubles, no network. Why not the Vercel AI SDK, pi, or LangGraph: AI SDK owns more of the surface and has been awkward with self-hosted tool calling. pi is a great coding-agent toolkit but it's shaped around being a coding agent and ships a TUI. LangGraph is a heavier graph framework. This is the layer under all of those: the bare loop you'd build any of them on. Happy to be told where the seams are wrong. If anyone finds any problems let me know this field moves at break neck speed so let me know if I am missing anything. https://ift.tt/6hECm2k July 3, 2026 at 12:52AM

Show HN: Inkwell – An RSS reader for e-ink devices https://ift.tt/TCNyu5j

Show HN: Inkwell – An RSS reader for e-ink devices https://ift.tt/DHSyVBX July 2, 2026 at 09:08PM

Show HN: ctx – Search the coding agent history already on your machine https://ift.tt/FGkAil5

Show HN: ctx – Search the coding agent history already on your machine Coding agents don't have long-term memory. But you do have months of full-fidelity agent transcripts stored on your machine. A simple solution that goes a long way: ingest those transcripts and logs into a structured SQLite database, then search them with ranked text match. Everything is fully local and doesn't require anything fancy like a graph database or hosted memory service. This is the idea behind ctx, a Rust CLI that handles the ingestion and searching. We give our agents a skill that tells them to reference past sessions before working in an area. Usually we do this through an "Agent History Research Subagent" whose job is just to prepare a short brief covering any relevant history before the task begins. A real example: sometimes our test suite runs would fail because disk was full on the runner. The correct approach was to run the cleanup runbook, but the root cause of the failure was not clear to the agents, so they would think it was a test regression and go down the wrong rabbit hole debugging. When the agent searched history, it realized this failure had been encountered before and found the right workaround immediately. That got the agent onto the right cleanup path, and later we improved the log output so the same failure would be clearer next time. It's a boring story, but it's real agent productivity. Another nice use case is quickly generating session transcripts for sharing. You can exclude the noisy intermediate messages, so the transcript shows the important parts of the session more cleanly. Try attaching a session transcript to your next PR so your teammate and their agent can review the provenance and prompting behind the change. If you're up for an additional challenge, ask your agent to "exhaustively review all agent history in this repo and find where the SDLC is struggling or isn't agent-native". Using past sessions to recursively improve the agentic SDLC is a loop that we're using a lot today. If you try it out, please let us know what you think! https://ift.tt/XrnplYJ July 2, 2026 at 09:28PM

Wednesday, July 1, 2026

Show HN: Searchable directory of 22k+ products from worker-owned co-ops https://ift.tt/61wyXHb

Show HN: Searchable directory of 22k+ products from worker-owned co-ops https://ift.tt/v2Aya0R July 2, 2026 at 02:17AM

Show HN: Z-Jail – A 130 KB Linux sandbox-C99 with 7 defense layers and zero deps https://ift.tt/QZ5n6wC

Show HN: Z-Jail – A 130 KB Linux sandbox-C99 with 7 defense layers and zero deps https://ift.tt/QulTK1E July 2, 2026 at 12:48AM

Show HN: QR code renderer in a TrueType font https://ift.tt/GhjbSnx

Show HN: QR code renderer in a TrueType font In the "Libre Barcode Project" discussion yesterday, 1bpp asked: "Is anyone willing to sacrifice their sanity for the sake of implementing a QR renderer as TTF hinting code?" Yes. I had some tokens to burn and was curious... turns out, it's possible. This was put together by a mix of Gemini, GPT, and Claude (depending on which usage limits kept running out). https://qr.jim.sh/ June 28, 2026 at 06:07AM

Tuesday, June 30, 2026

Show HN: Shot-scraper video tool for recording YAML-defined webapp feature demos https://ift.tt/5Si3Fsp

Show HN: Shot-scraper video tool for recording YAML-defined webapp feature demos https://ift.tt/kDyf7Ic June 30, 2026 at 10:28PM

Monday, June 29, 2026

Show HN: Fleet – a local-first console for managing Dockerized Hermes AI Agents https://ift.tt/oftlOpU

Show HN: Fleet – a local-first console for managing Dockerized Hermes AI Agents https://ift.tt/PEwmhkK June 30, 2026 at 02:01AM

Show HN: The UNESCO Tsunami Warning Emails Are Gone https://ift.tt/drnACw2

Show HN: The UNESCO Tsunami Warning Emails Are Gone This key piece of tsunami warning and safety was discontinued this morning and evidently there's no way to get it back. :/ https://ift.tt/UbNvXEd June 29, 2026 at 11:36PM

Sunday, June 28, 2026

Show HN: Use-zerostack – delegate any task to a lightweight coding agent https://ift.tt/PluCqiK

Show HN: Use-zerostack – delegate any task to a lightweight coding agent https://ift.tt/BerTGPY June 29, 2026 at 01:03AM

Show HN: NanoEuler – GPT-2 scale model in pure C/CUDA from scratch https://ift.tt/HBuk6Yf

Show HN: NanoEuler – GPT-2 scale model in pure C/CUDA from scratch Hi everyone, I started working on nanoeuler after the ban of anthropic's fable because my ambition and dream is to work in the AI field in anthropic. The two interesting reasons that led me to create nanoeuler were (1) interfacing with llm does not mean understanding how they are composed and (2), working on llm with a very low-level layer to understand the correlation between parameters and data and growth of the model and how the GPU works and how some layers can be optimized. So I started working on it with a research aspect by making nanoeuler grow more and more but doing one step after another starting from Shakespeare.txt and understanding what a text generation model understands at 23 million parameters. For example, nanoeuler at that number had understood that Name: started a line and wrote that line with sense. I wrote everything in CUDA because I wanted to not use any intermediary between the model in training and inference and what it had to do. Then the use of SFT and much more, even if in small ways, were really useful to understand the various step to make an llm like a chatbot.Any feedback, help, or suggestions are absolutely welcome! https://ift.tt/aVdXS2O June 29, 2026 at 01:08AM

Show HN: Caliper – pass@k reliability testing for Claude Code and Codex skills https://ift.tt/qgayukA

Show HN: Caliper – pass@k reliability testing for Claude Code and Codex skills Skills for Claude Code and Codex are hard to test. What I mean by hard is that there's no standard way to do it. You evaluate the skill once on something, it looks like it works. You publish it. Then the new super model releases (GLM 5.2 anyone?), it will quietly break for some part, and you won't find out until your users complain. I also faced the same problem, so I tried to build something lightweight to stop doing that. Caliper. It's a local and lightweight harness that runs a skill k times in isolated environments and gives you a pass@k score (How much times it succeeded in these k times). As a non-deterministic technology, you can't just say "it worked once". You need to answer how much it passed in k times. You define success in a YAML spec. I picked YAML to keep a schema and make it still readable for a human. You either use a LLM judge, a Python assertion, or both: Here's an simple evaluation example with a JSON extraction, so you write this in a YAML file: tasks: - name: Extracts action items as clean JSON prompt: "Read /tmp/transcript.txt and write the action items to /tmp/actions.json." expect: "A valid JSON array where every item has owner, task, due. No markdown fences." assert: | import json items = json.load(open("/tmp/actions.json")) assert isinstance(items, list) assert all({"owner","task","due"} <= i.keys() for i in items) Then with the CLI, you'll run it: caliper run extract-actions.eval.yaml --k 5 --baseline What's cool about the --baseline flag is that it will re-runs everything without the skill, so you can see whether the skill is doing the work or the base agent was going to pass anyway: ID Task k(5) pass@k task-1 Extracts action items as JSON 5/5 100% PASS With skill 100% No skill 60% Delta +40% Most models know how to get the JSON right most of the time (JSON extraction was solved by 2 years old already). But that's it, "most of the time" is the bug. That delta shows how the skill actually helped. (It's sometimes 0%, sometimes -100%!) I also created two skills you can get started right away with your favorite harness, e.g. Claude Code, Codex or Pi: - evaluate-skill: run and manage evals without leaving your workflow - grill-skill: reads your SKILL.md, interviews you about what "good" looks like, writes a 3-task spec (happy path, edge case, adversarial), and runs it You can install the skill with the command: npx skills@latest add edonadei/caliper I for now support claude-code, codex, pi, claude-api, openai-api. You can run the agent and the judge as separate backends, so you can run a skill on one and judge with another. GitHub: https://github.com/edonadei/caliper PyPI: https://pypi.org/project/caliper-eval/ Of course, it's a first step. I think the autorater layer can be vastly improved, more handholding to create and iterate on evaluation specs, supporting more harness, why not including this layer into a self-improvement bigger system? If you're also building agentic evaluations, I'm genuinely interested to hear how you are handling that. https://github.com/edonadei/caliper June 28, 2026 at 11:12PM

Saturday, June 27, 2026

Show HN: Starglyphs - A constellation puzzle game based on Euler paths https://ift.tt/9jCuPHo

Show HN: Starglyphs - A constellation puzzle game based on Euler paths I am a big Dragon Age fan and sunk hundreds of hours into Inquisition. It had this minigame called astrariums where you had to solve these shapes based on constellation guides by tracing stars. I'm a hobby game dev and wondered if I could procedurally generate these puzzles so they were always solvable. Turns out you can, so I built a space puzzle game around it with a colorful aesthetic. I released it in web form here but I'm currently working on getting it on Steam and mobile. https://starglyphs.com June 28, 2026 at 03:20AM

Show HN: Adrafinil – keep a lid-closed Mac awake only while agents work https://ift.tt/uYUrhoj

Show HN: Adrafinil – keep a lid-closed Mac awake only while agents work A month ago there was a wave of posts and tweets about engineers walking around cafes and parks with their MacBooks propped half-open, as fully closing the lid forces sleep that stops their AI agents. Some people made snarky comments about using tmux or Amphetamine, and some defended their choice with “but I only need it sometimes, and forgetting to disable Amphetamine and finding my laptop discharged in my bag is worse.” This is a solution to this problem. Unlike caffeinate, it will prevent your MacBook from sleeping even with the lid closed, with no external power or display, using pmset disablesleep 1. Unlike other sleep-preventing apps, Adrafinil only activates when there’s an agent actively doing something. It detects agent activity through hooks it installs into Claude Code, Codex, and others. To reassure you it’s working, the app shows the active status in the menu bar, and it plays a chime when you close the lid. Once the agent is done, Adrafinil detects it and lets the laptop go to sleep by setting pmset disablesleep back to 0. It will also let it sleep in case of overheating. And if you want to manually toggle it, you can install an optional MCP and tell your agent to keep the MacBook awake for a specific time. It has four binaries, one of which is a root helper exposing a single setSleepBlocked call. All the logic and policy live in the unprivileged parts. They’re all notarized, and the app is fully open source (MIT). https://ift.tt/6YeD5Em June 28, 2026 at 02:04AM

Show HN: Wind particles on Mapbox from a single EXIF JPEG https://ift.tt/xidvVYu

Show HN: Wind particles on Mapbox from a single EXIF JPEG https://ift.tt/tqXv0HP June 27, 2026 at 11:46PM

Show HN: A Living Neural Web in HTML5 Canvas https://ift.tt/gTivKnV

Show HN: A Living Neural Web in HTML5 Canvas https://techoreon.github.io/verpad/canvas-playground.html June 27, 2026 at 10:05PM

Friday, June 26, 2026

Show HN: TBD, a Mac-native CLI-forward coding agent multiplexer https://ift.tt/2I3TKB7

Show HN: TBD, a Mac-native CLI-forward coding agent multiplexer Inspired by Conductor, dmux, claude-squad, agent-deck, and Git Tower ## What makes it different: (Aside from GUI) A core tenet is -- everything a user can do manually, must be exposed via CLI for agents/automation Best paired with something that lets agents in different worktrees talk to each other (e.g. https://ift.tt/HTjYahr ) ## Background: I used and loved Conductor for months starting around January, but hit some persistent issues that made me realize that a core tool that I'm actively using for most of my waking hours sits too close to my skin to produce itches that I can't scratch myself After realizing I needed to switch to something hackable, I went through a few week-ish long trials of dmux, claude-squad, and agent-deck. They were all great, but I then realized I really didn't want to memorize keyboard shortcuts, and I've managed to put off learning how to drive tmux for over a decade, didn't want to end that streak XD So TBD happened in March. In the months since, it's gotten stable enough to the point where a few former and current colleagues have switched to using it as their daily drivers as well. It's been kind of like a fun little club house we contribute to The architecture is a daemon that handles the bulk of state management and actual work, and CLI and GUI clients as two interfaces. Users go through GUI, LLMs and scripts go through CLI. It works best for Claude Code (our shared daily drivers) but two of us also use Codex on the side, so there's some basic support there as well The only way to run it is to clone and build from source, partially b/c I imagine the main appeal is for people who need to hack on the thing they're using (but also b/c didn't want to shell out for an Apple dev license) I think it's now a good enough starting point for similarly minded folks to use as a base to fork and build your own variants, tailored to your own workflows https://ift.tt/Pmz4Fkp June 26, 2026 at 10:29PM

Show HN: Mantis, A self-hosted LLM gateway https://ift.tt/9uEkyB0

Show HN: Mantis, A self-hosted LLM gateway Hey HNers - Riz here. I got together with a few guys and we built an LLM gateway. It's designed for small teams working on early-stage products, and can be deployed to AWS using a single command (i.e. `mantis deploy`). It's self-hosted, and is designed to belong to you. https://ift.tt/tLYE9eq June 27, 2026 at 12:45AM

Show HN: Puzzle with Strangers. A free multiplayer jigsaw https://ift.tt/es4avwt

Show HN: Puzzle with Strangers. A free multiplayer jigsaw I built this over the last few days. Me and handful of friends are successfully hooked. I recently went to a — for lack of a better word – social/collaborative performance at an art gallery in Berlin where a group of artists filled a huge industrial hall with wooden 10x10cm cubes for people to build structures with. It was beautiful how universal the concept of playing with wooden blocks is and how ephemeral the structures were, people of all ages were put back into a childlike play. The thought about what kind of games need zero explanation stuck with me and i built an anonymous multiplayer jigsaw. We've already spent hours in there and you're invited now as well. Hope you enjoy. https://ift.tt/okCpys9 June 26, 2026 at 10:17PM

Thursday, June 25, 2026

Show HN: I created a Scrabble-like word game with simple rules and fun combos https://ift.tt/GayFv3W

Show HN: I created a Scrabble-like word game with simple rules and fun combos When I was in school, my teacher used to play this game to our class. You add one letter turnwise and try to make a word. Later, I tried searching for this game but didn't find the exact match anywhere. The closest was Scrabble, but it was too complicated. So, I decided to build my own. I did make some modifications to make the game more challenging and fun. Back then, we would start with a blank board and also score 2 letter words. Here, the game gets prefilled with random letters so the game becomes more different each time. No scoring for two letter words. The best thing that I added was the combos. If your letter makes 2 or more words, you will get a multiplier for each subsequent word, so the challenge becomes finding a way to score more combos. Initially, I wanted to assign values to each letter like Scrabble, but after running multiple AI-to-AI experiments, I concluded that having flat values per letter increases variances in the game and also reduces the first turn advantage to 0. I still added the weighted game mode if you would like to give that a try as well. And I also added daily puzzles where you get 5 boards, and you need to find the best spot and best letter that scores the most. You can share the Wordle-like result to your friends. You can also play directly on the web at https://ift.tt/1RAp0La or free download in the App Store at https://ift.tt/gPnUha1 https://letterphile.com June 26, 2026 at 03:37AM

Show HN:Every Team Is Building the Same Cache https://ift.tt/zr2pVnw

Show HN:Every Team Is Building the Same Cache https://ift.tt/bOijAHJ June 26, 2026 at 03:10AM

Show HN: Full featured language that compiles to binary https://ift.tt/pKmvXM2

Show HN: Full featured language that compiles to binary Features: 1. Self-hosting compiler 2. C99 backend 3. Built-in dependency injection / IoC 4. Typed business-rule features like decision tables 5. Native binaries + WASM 6. Real app built with it: eXstream https://ift.tt/ERkhTPy June 26, 2026 at 12:45AM

Show HN: OpenKnowledge – open source AI-first alternative to Obsidian/Notion https://ift.tt/IBxm5cE

Show HN: OpenKnowledge – open source AI-first alternative to Obsidian/Notion https://ift.tt/8hStksB June 25, 2026 at 09:34PM

Wednesday, June 24, 2026

Show HN: Dspyer – self-correcting, optimizable LLM steps for DSPy and LangGraph https://ift.tt/KpYFV74

Show HN: Dspyer – self-correcting, optimizable LLM steps for DSPy and LangGraph https://ift.tt/jwiQgJO June 25, 2026 at 02:38AM

Show HN: LookAway, a Mac break reminder that knows when not to interrupt https://ift.tt/swgeKXU

Show HN: LookAway, a Mac break reminder that knows when not to interrupt Hello, I'm Kushagra and I am the indie developer behind LookAway (I've posted about it earlier but it has received quite a lot of updates since the last time so I am posting it again). LookAway is a native break reminder for macOS that doesn't interrupt. I built it because I work from home and I spend a lot of time in front of my screens. It's very easy for me to get lost in the flow and I can end up sitting for hours. Due to this, I started facing issues like eye strain and back pain by the end of the day. The solution to this was simply taking enough breaks throughout the day. But remembering to take breaks was difficult, especially when I was in the flow. I tried some reminder apps but the problem with those was that they always interrupted me at the worst moments. So I ended up not using them. LookAway is designed not to interrupt. It gives enough heads up before a break so that you're not caught off-guard. It's also context-aware and it automatically pauses when you go into a meeting, start watching a video, record screen, and much more. It even waits for you to finish typing or dictating when a break is due. One thing worth mentioning is the free iOS counterpart LookAway Mirror. When your Mac goes on a break, your iOS devices can also mirror the same break so you don't end up scrolling your phone screen during the Mac break. I've spent a lot of time in making LookAway the least annoying break reminder app and I would love to know your thoughts. It's a native Swift app so it doesn't take much resources (150MB RAM and <1% CPU when idle). It's available to download from the website (lookaway.com), Setapp, and the App Store. Thank you! https://lookaway.com June 24, 2026 at 06:59PM

Tuesday, June 23, 2026

Show HN: The Cascade Graph – An interactive map of AI and energy constraints https://ift.tt/wJGe0Ed

Show HN: The Cascade Graph – An interactive map of AI and energy constraints Hello, I wanted to share with you all a interactive map of the economics and physics constraints of the AI buildout. It has macro drivers, industrial chokepoints, and where that shows up in markets. I've added 393 nodes and 562 edges to capture other supply / physics constraints as well. There's no sign up, and no pay wall, it's all free. Please let me know what you think! https://ift.tt/4CfYr19 June 23, 2026 at 08:52PM

Show HN: Wordit – Change One Letter, Keep the Chain Going https://ift.tt/hu9sB16

Show HN: Wordit – Change One Letter, Keep the Chain Going Hi everyone, I got this idea for a game where, starting from a four letter word you need to go as deep as you can in your vocabulary, changing only one letter per word. bear -> beer -> peer... Each correct word gives you 1 point Each incorrect word takes one life away from you, you start with 3 https://ift.tt/0qdxLFf June 24, 2026 at 12:27AM

Monday, June 22, 2026

Show HN: I scanned every YC Spring 2026 startup for what AI crawlers see https://ift.tt/XPyvnFL

Show HN: I scanned every YC Spring 2026 startup for what AI crawlers see Used 'potatometer.com' to scan and analyze all All 197 YC Spring 2026 startups on their SEO / GEO / AEO technical setup. I scanned the URL each startup lists in YC's directory. Most are readable by AI crawlers. Most don't tell a crawler what they are. Read more in the blog above. https://ift.tt/U5lhE0q June 23, 2026 at 08:10AM

Show HN: Durable Agent Sessions API (Preview) https://ift.tt/HhVZfFd

Show HN: Durable Agent Sessions API (Preview) https://ift.tt/0hdVuFL June 23, 2026 at 07:07AM

Show HN: Kitcat 2.0 – A Matplotlib back end for terminal plotting https://ift.tt/873ML5y

Show HN: Kitcat 2.0 – A Matplotlib back end for terminal plotting https://ift.tt/OWo1wsm June 22, 2026 at 11:00PM

Sunday, June 21, 2026

Show HN: Pure Effect – Reproduce production bugs on your laptop without a DB https://ift.tt/R3IV6Mz

Show HN: Pure Effect – Reproduce production bugs on your laptop without a DB Hi HN, I think it's safe to say that the majority of developers don't give a second thought to writing code with I/O tangled in business logic. It's all too common to see code like: const user = findUser(email); if (!user) await saveUser(user); Now, you may ask: what's the big deal? When we write code like this, two things happen: 1. It gets harder to debug production bugs. Unless you have the exact same database and remote API services to connect to, you may fail to reproduce the bug. 2. You have to use mocks and fakes in your tests, or use test containers, which only help somewhat, and they are slow! To solve these issues, I built Pure Effect, a tiny TypeScript/JavaScript effect library. The core idea is simple: if a function performs I/O, it isn't pure. But if it returns a description of the I/O it wants to perform, it is. So instead of await findUser(email), you return a Command object that says, "I would like to call this function, and when it finishes, here's what to do next." Your business logic becomes a pure function. Same input, same output, every time. The database never gets touched until the interpreter (runEffect) runs. When I first started the library, I didn't expect just how far that one idea would stretch. Once your pipelines are just data, a lot of wonderful things become possible: - No need for mocking libraries. You walk the tree in tests and assert on its structure: assert.equal(flow.cmd.name, 'cmdFindUser'). Nothing is executed. - Wrap any effect with Retry(effect, { attempts: 3, delay: 200, backoff: 2 }). The configuration is plain data, so you can assert on it in tests. - Every command's input and output flows through the interpreter, so you get a full execution trace for free. You can write a simple timeTravel() function that replays it locally without touching any I/O. Perfect for debugging complex production bugs. - An onBeforeCommand hook sits between your business logic and the interpreter. Since it sees every intended side effect before it fires, it can be used to enforce runtime guardrails. You can quarantine destructive calls before they happen for example. - You can review AI-generated code before it runs. Since Pure Effect pipelines are plain data, you can inspect what the generated code intends to do before it touches anything. There are just six primitives: Success, Failure, Command, Ask, Retry, and Parallel, plus effectPipe and runEffect. Zero dependencies. Under 1 KB minified and gzipped. How it compares to Effect-TS Effect-TS is the full-featured option in this space and has a large ecosystem. Pure Effect offers a different tradeoff. It covers the 80% case: testable pipelines, dependency injection, retry, and OpenTelemetry hooks, all in under 1 KB with zero dependencies and no new vocabulary to learn. Effect-TS is a framework you build around. Pure Effect, on the other hand, is a pattern you drop into existing code. I've been using Pure Effect in production since December. It's at v0.8.0, not 1.0 yet, but stable enough that I wanted to put it out there and hear what people think. GitHub: https://ift.tt/9zJMtsD I wrote five posts that document how Pure Effect evolved. They are tagged at https://ift.tt/YUyn48K if you want the longer story. https://pure-effect.org June 21, 2026 at 11:06PM

Show HN: DebugBrief – turn debugging sessions into reports, no AI https://ift.tt/jkSQhn8

Show HN: DebugBrief – turn debugging sessions into reports, no AI https://ift.tt/QFh1C0x June 22, 2026 at 01:27AM

Show HN: CleverCrow: give tokens to your favorite projects https://ift.tt/9K2XU3a

Show HN: CleverCrow: give tokens to your favorite projects Howdy all. I'm Zack :wave:. I've been thinking about the problem of misguided AI pull requests and figured I'd throw a possible solution out there for feedback. Basically, CleverCrow lets supporters give tokens to a GitHub repo (or set of issues in that repo) for the maintainers to use to build/fix stuff. The fun implementation challenges have been around implementing the pooling dynamics and keeping the maintainers in charge while the backers are motivated to support their work. https://clevercrow.io June 22, 2026 at 12:36AM

Saturday, June 20, 2026

Show HN: We post-trained a model that pen tests instead of refusing https://ift.tt/W4x1YnM

Show HN: We post-trained a model that pen tests instead of refusing Anthropic and OpenAI's publicly available models are explicitly guard-railed so that they refuse offensive tasks. And their cyber-focussed models are gated for enterprises. This leaves SMEs and mid market open to major vulnerabilities. AI can be used as both an adversarial and defensive tool in the world of cyber. A worst case outcome is if only the adversaries have access. Meanwhile, most existing AI cyber tools are just wrappers. The problem is that they still have all the guardrails on from the foundation model where they will inherit its refusals. For this project we've post-trained a specific model on a decade of capture-the-flag contests. This won't be made available to anyone and everyone, but we do believe that responsible SMEs and midmarket companies also need access to these tools in order to identify key vulnerabilities in their systems; not just enterprises. We have developed two modes that run over a CLI: • Security scan: a read-only audit of your local codebase for vulnerabilities. It only reports what it can tie to a specific file and line, so you're not wading through vibes-based findings. • Pen test: an active adversarial mode that will try to break a live system in a sandboxed environment. It proves each vulnerability by running the exploit and showing the request it sent and the response your code gave back, not a confidence score. Currently gated. To show what the scan does, we pointed it at Bank of Anthos and it found an integer overflow in the transfer path: amount is an int, and amount + fee can overflow negative, so the balance check passes and you move funds you don't have. Plus the usual auth and secrets issues. (Bank of Anthos is Google's open-source bank. It's a known app and some of it is intentionally weak, which is the point: you can clone it and re-run the scan yourself instead of trusting a screenshot) The base model is a Kimi K2.6 (open weights). We didn't pretrain from scratch. We post-trained it ourselves, SFT on CTF writeups, then RL with verifiable rewards against actual exploit checks. How the harness works: Along with the model we built the harness to support this. The harness runs on a multi-agent swarm: an orchestrator splits the job across subagents running in parallel, each owning a slice, then synthesising one report. The CLI is a local binary (brew/curl). It reads your code locally, then sends context to our inference API over TLS tcpdump it and you'll see exactly what leaves and where. Install is free; and you can run a scan for free up to 2m tokens, then need to pay for tokens beyond this. For full disclosure this is a product part of Cosine (YC W23) Up for debate: tool safety, e.g. domain verification is one method that proves control but not necessarily permission. How would you gate a pen-test tool given that? https://ift.tt/MbV9LWz June 20, 2026 at 07:19PM

Friday, June 19, 2026

Show HN: Continuous Nvidia CUDA PC Sampling Profiler https://ift.tt/R1rlsmk

Show HN: Continuous Nvidia CUDA PC Sampling Profiler Blog post about how we extended our open source profiler to include support for continuous production PC sampling. https://ift.tt/GyJPTSd June 15, 2026 at 09:19PM

Show HN: PostgreSQL MCP Server with 135 tools for various purpose https://ift.tt/AUzZ3qo

Show HN: PostgreSQL MCP Server with 135 tools for various purpose https://ift.tt/OaSVRgo June 20, 2026 at 12:42AM

Show HN: NanoEuler – GPT-2 scale model in pure C/CUDA from scratch https://ift.tt/qpd4VQU

Show HN: NanoEuler – GPT-2 scale model in pure C/CUDA from scratch https://ift.tt/K1cvMG0 June 19, 2026 at 11:48PM

Thursday, June 18, 2026

Show HN: I built a daily flag quiz in honor of the World Cup https://ift.tt/IGNAcYy

Show HN: I built a daily flag quiz in honor of the World Cup https://orbisearth.web.app/ June 19, 2026 at 01:45AM

Show HN: Run Agent Skills with mistral.rs v0.8.10: /v1/skills support and more https://ift.tt/OFbKrzN

Show HN: Run Agent Skills with mistral.rs v0.8.10: /v1/skills support and more Hey all! I'm the maintainer of mistral.rs. I just landed support for OpenAI-compatible Agent Skills via a /v1/skills endpoint, and it works with local open models. Until now Skills have basically been locked to closed models, and with the ability to have private, local intelligence becoming increasingly important, but this feature allows you to do XYZ with local models. It's fully compatible with OpenAI's /v1/skills API, so you can drop mistral.rs into your existing code with minimal difficulty. We support the accompanying tools too: /v1/files or input_file for attaching files to your prompts, and mistral.rs also allows models to send generated files back using the OpenAI-compatible method. It's also easier than ever to try mistral.rs: we are including prebuilt binaries for NVIDIA CUDA, Apple Silicon, and CPU! # Linux/Mac > curl --proto '=https' --tlsv1.2 -sSf https://ift.tt/L2OIdhJ... | sh # Windows > irm https://ift.tt/L2OIdhJ... | iex Then: mistralrs serve --agent --isq 4 -m google/gemma-4-E4B-it Super excited for you to try this out and any feedback! Do you have any suggestions for what you would like to see in the next releases? Check out the GitHub: https://ift.tt/choOgPQ Docs & Quickstart: https://ericlbuehler.github.io/mistral.rs/ June 18, 2026 at 12:33PM

Show HN: NGB, an open-source .NET platform for document-driven business apps https://ift.tt/wOAsXtz

Show HN: NGB, an open-source .NET platform for document-driven business apps https://ift.tt/hoYmpEy June 18, 2026 at 11:20PM

Wednesday, June 17, 2026

Show HN: Reyn – local-first AI that journals and recalls your work https://ift.tt/8T1CW4Z

Show HN: Reyn – local-first AI that journals and recalls your work Hey HN, I built Reyn - which I like to describe as "granola but for everything". You're probably thinking another screen capture AI tool (which is true). Same as always, the biggest question that comes up is privacy, so I'll talk about that first 1. raw screen data is never stored in the cloud 2. user controlled filters are granular to the point that you're able to configure specific apps, windows, websites, or even keywords to be discarded immediately (once again never leaving your mac) and never captured down the pipeline I personally built it because I find it useful and always had the problem of organizing my day (not note taking or task management), as well as sharing context on things that just happened to go undocumented throughout my day. As I was building it I decided to go even further and see if I could collect useful insights and find room for improvements in my day to day workflow. This led to the current version of Reyn and its differentiating factor being the fact that it has a proactive layer. Most tools in this space are reactive - you ask, they retrieve. Reyn surfaces insights on its own and sends a daily recap of what you worked on, what's still open, and what deserves attention. The journal feature also lets you search across basically anything you've done on your Mac. The proactive insights work by first having you configure what your ideal workday looks like — whether that's hours worked or the type of work being done. We have a few broad categories that tasks fall under, with more customization coming. Current integrations: Obsidian (available now, improvements in progress) Gmail, calendar, web search via a floating window with some agentic functionality Notion (coming soon) BYOK for LLM API requests (on the roadmap) ... and more It's still early, but the journal and insights features are the strongest parts right now. Would love some feedback especially on the privacy model. My personal take - I think with enough safeguards in place, the data aggregated about your work is fully in your control. A lot of these data sources already store your data. If you're using Notion, Claude, or just browsing a website, that data is already being stored somewhere. Reyn is just aggregating it and putting it to work for you. Happy to answer any questions about how it works usereyn.com (public beta) https://ift.tt/0nSvKg7 June 18, 2026 at 04:01AM

Show HN: Vpod – Tiny Linux sandbox running in WASM https://ift.tt/uXc7zsa

Show HN: Vpod – Tiny Linux sandbox running in WASM Hi HN, I spent the last few months reading the RISC‑V specification to build the lightest possible sandboxes. The idea behind a vpod is to quickly spin up a Linux sandbox from snapshots (Alpine by default) without any setup or subsystem required. The trade-off for portability and security is raw CPU speed. So we don't expect it to match native workloads with Python or pip, for example. More info is in the README https://ift.tt/YygiS9H Happy to answer any questions! https://ift.tt/YygiS9H June 17, 2026 at 10:11PM

Tuesday, June 16, 2026

Show HN: Sabela – A Reactive Notebook for Haskell https://ift.tt/J0S1c8N

Show HN: Sabela – A Reactive Notebook for Haskell Sabela is a reactive notebook for Haskell. The name is the Ndebele word for "to respond." Cells respond to each other on change. Initially it was meant as a tool for working with data but it has turned out to have a lot of pedagogical value outside of data analysis work. There is a gallery to read through on the website and a number of examples in the repo showcasing things like: * Python interop * Widgets and animation * Exploratory data analysis If you find any of this interesting please try it out. Any feedback is welcome. https://ift.tt/6QnF0UZ June 14, 2026 at 02:03PM

Show HN: Ctx, save tokens by loading only the relevant tools https://ift.tt/9Wcobtv

Show HN: Ctx, save tokens by loading only the relevant tools Hi HN! Token cost has started to become a high topic of concern to all of us. I tried a few (awesome) tools such as rtk, caveman, and the recent (hillarious but effective) ponytail. What they usually do, is in-line token reduction, e.g. try to compress requests / responses as much as possible. But then it hit me (and I’m sure others had similar ideas) - just like we have routers that pick the right model, why not have something that will also narrow down the amount of available tools, skills and mcps based on repo/context? People usually accumulate skills, agents, MCP servers, harnesses, prompts, repo instructions, and local scripts. I’m not saying we are all hoarders, but we sort of are. When did you remove a skill recently? After a while, the model has way too many options to choose from. ctx tries to fix that by selecting context before the session gets bloated.So no, it doesn’t cleanup your messy garage, but it gives you magic glasses that let you focus only on the tools you need. It does it by watching the repo and task, walks a graph of available tooling, and recommends a small top-scored bundle of skills, agents, MCP servers, and harnesses. How does it know? To make sure results are not hallucinated, and repeatable, I curated a list of 91k+ skills, 467 agents, 10.7k MCP servers, 207 harnesses, and built a graph to help ctx make decisions on what to recommend. While I used AI to generate it of course, I curated it and revised it to make sure the data is up to date. So how this is different from rtk, caveman, ponytail, and similar token-saving tools? As mentioned above those tools mostly reduce tokens after something is already being used. rtk compresses command output. caveman-style tools make the assistant respond with fewer words. ponytail, is, well, awesome, but again it focuses more on reducing code (YAGNI) ctx is upstream. It tries to avoid loading irrelevant skills, agents, MCPs, and harnesses into context at all. So it is not really a replacement. It should work side by side with them! Use ctx to choose the right tools. Use rtk to reduce terminal-output noise. Use terse-output tools if you want shorter responses. The goal is simple: save tokens without forcing the user to manually test and compare thousands of possible skills, agents, MCP servers, and harnesses. Repo: https://ift.tt/zjWi0xF https://ift.tt/zjWi0xF June 16, 2026 at 11:44PM

Monday, June 15, 2026

Show HN: StarScope – Free astronomy dashboard for observers outside the US/UK https://ift.tt/Xpmth4l

Show HN: StarScope – Free astronomy dashboard for observers outside the US/UK https://starscope.live/feed June 16, 2026 at 12:51AM

Show HN: Understand and reduce token usage with ContextSpy context profiler https://ift.tt/Tkxo9Pn

Show HN: Understand and reduce token usage with ContextSpy context profiler https://ift.tt/Qk5ExfP June 16, 2026 at 12:59AM

Show HN: A pure-Ruby X11 terminal https://ift.tt/QURWcHO

Show HN: A pure-Ruby X11 terminal I use this as my regular xterm replacement... Why? Because I can. It's pure-Ruby down to the font-renderer, and the X11-bindings. (I also run a Ruby WM, a Ruby editor, file manager, and more, so this is just par for the course of my descent into madness) It supports double-width and double-height text, unicode (but double-width characters may currently be rescaled down), layering fonts, special rendering of box-drawing characters (to ensure they seamlessly scale and connect, and has reasonably complete vt-100/vt-102 emulation. The whole thing is available as a Rubygem and comes with an ANSI text backend, so you can run your terminal in your terminal. The bulk was written manually, but the last few days I had Claude write a test harness to shake out a bunch of bugs, and start refactoring and cleaning up the code base (it's still full of warts). https://ift.tt/EiGAcSP June 15, 2026 at 11:45PM

Sunday, June 14, 2026

Show HN: Solaris the Thinking Ocean Simulator https://ift.tt/hRDxMIN

Show HN: Solaris the Thinking Ocean Simulator https://ift.tt/sa3XIQg June 15, 2026 at 02:47AM

Show HN: Trace – Offline Mac meeting transcripts you can flag mid-call https://ift.tt/hBWCkLn

Show HN: Trace – Offline Mac meeting transcripts you can flag mid-call I'm the developer of Trace, a non-intrusive, shortcut-driven Mac app that records and transcribes your meetings on-device. I know, another meeting transcription app. Please bear with me though, I'm confident that this is at least a little novel. I primarily built Trace for myself. I'd been using MacWhisper, but there was enough fiddling before each call that I'd forget to start it and walk out of an hour-long meeting with nothing written down. So the things I cared about most were that it's quick to activate and stays out of the way. You activate Trace by pressing a global shortcut (configurable), which reveals a small bar at the bottom of your screen (there's also a keystroke and/or option to hide it entirely if you'd rather not see it at all). As I was building it I wanted to bake in a couple of workflows I'd wished for in other transcription apps. 1. Mid-meeting you can press another global shortcut to mark a "key moment" and type a note. The note shows up in the resulting transcript inline at that timestamp. I wanted to add this because I kept catching myself thinking "wait, that bit matters" in meetings and reaching to jot it down in a separate app like Obsidian, which I then needed to add context to, which took me out of the meeting. I use it all the time. If I paste the transcript into an LLM afterwards (which I find myself doing more and more these days) the important moments are flagged so it doesn't gloss over them. This is more noticeable in longer meetings with lots of topics. 2. With another keyboard shortcut you can summon a rough live recap (subtitles, basically) to quickly recap what's just been said. Trace uses standard macOS microphone and system recording APIs to capture both sides of the conversation as two separate tracks and then runs the system side through on-device diarization to identify speakers. Right now we only label them as "Speaker 1", "Speaker 2", etc but there are plans for speaker labelling in the future. You can also show a "live recap" as the call is happening to review what someone just said. All transcription models run on your machine. To be clear though, Trace doesn't do any of the summarising itself, it just produces a markdown transcript, so if you want summaries then you need to pass the output to an AI. The app is sandboxed and your audio/transcripts are never uploaded anywhere - they just exist as audio files and markdown on disk. The only network call Trace is required to make is on the first run to download the speech and speaker models (around 500MB) from Hugging Face, and after that it can be used fully offline. If enabled, a Google Calendar integration can auto-name sessions but that needs a network connection. The app is £9.99 on the macOS App Store. I've been using it every day for months now and I'm super happy with how it's improved my workflow. Feedback very welcome. https://traceapp.info June 14, 2026 at 02:11AM

Show HN: Philosophy for Kids https://ift.tt/VLfw7X9

Show HN: Philosophy for Kids Sometimes my son asks me 'why' questions that could be answered well by a kid-friendly philosophy article. But I don't know where to find those, so I ask Claude or ChatGPT, and have a specific workflow for getting the type of output I want. I figured other people might find those AI-generated articles helpful, so I put them here: https://ift.tt/ENz5J17 There's a search box at the top. https://ift.tt/ENz5J17 June 14, 2026 at 11:45PM

Saturday, June 13, 2026

Show HN: Slopsome – a VRAM fit calculator and tok/s database for local LLMs https://ift.tt/LD9XYTk

Show HN: Slopsome – a VRAM fit calculator and tok/s database for local LLMs https://slopsome.com June 14, 2026 at 01:14AM

Show HN: Galdor – a Go LLM agent framework with built-in tracing and replay https://ift.tt/QrVPWmE

Show HN: Galdor – a Go LLM agent framework with built-in tracing and replay https://ift.tt/QGUDtoC June 14, 2026 at 12:34AM

Friday, June 12, 2026

Show HN: Turn your name into a tree in an infinite procedural shanshui landscape https://ift.tt/INP1tnb

Show HN: Turn your name into a tree in an infinite procedural shanshui landscape Hi HN! I made this after collecting hundreds of "name → tree" submissions at ITP. Live: https://ift.tt/Lp4ywkJ Source: https://ift.tt/yUf96kL Plant a tree: https://ift.tt/yTQ7r3N Pan and zoom an infinite procedural landscape. Each name is converted to ASCII codes, which grow into a unique tree (breadth-first branching; repeated digits become mathematical roses). Mountains use midpoint displacement + Perlin noise, with SVG radial gradients in the blue/green/gold palette from Wang Ximeng's "A Thousand Li of Rivers and Mountains." Inspired by Lingdong Huang's {Shan, Shui}* ( https://ift.tt/aiAVvMW ). Every tree is someone's name, signed with an APack stamp ( https://ift.tt/BvT8q9a ). Try planting your name, then pan along the ridgeline to find it. "My trees" lets you jump back to ones you planted. Happy to answer questions about the terrain algo, name→tree encoding, or the Riso print we tiled at ITP Winter Show! https://ift.tt/Lp4ywkJ June 10, 2026 at 08:09PM

Show HN: Nenya – A lightweight, highly secure AI API Gateway/Proxy written in Go https://ift.tt/XrDhYeH

Show HN: Nenya – A lightweight, highly secure AI API Gateway/Proxy written in Go https://ift.tt/dvsLHa6 June 12, 2026 at 11:02PM

Show HN: Vilvona AI – Self-Hosted AI Assistant with Tamil and Hindi UI https://ift.tt/cL1v2Nk

Show HN: Vilvona AI – Self-Hosted AI Assistant with Tamil and Hindi UI https://ift.tt/LwmgyB1 June 12, 2026 at 11:56PM

Thursday, June 11, 2026

Show HN: Nuts – pip/NPM for Java with first-class workspaces, JDK provisioning https://ift.tt/Xl7kdOb

Show HN: Nuts – pip/NPM for Java with first-class workspaces, JDK provisioning My frustration with distributing java apps didnt show up recently. I remember having implemented my first network jar downloaded back in the 2000's because i needed applet like feature support with desktop full control. Years after, the problem is the very same. Webstart didnt really took off and the only mean i had in my projects was the ugly fatjars, including the (for me) uglier spring-boot repackaging that changes the application classloading behaviour and hence giving me by time some headackes i was not prepared for. So basically nuts started as a response to this frustration 9 years ago, but from now i think its mature enough (used in production) to be shared, and forecebly i am more keen to need suggestions and help from fellow contributors. https://ift.tt/gsJDKEL June 11, 2026 at 03:53AM

Show HN: AVP – an agent can't leak a secret it never had https://ift.tt/f70qDpY

Show HN: AVP – an agent can't leak a secret it never had A process can't leak a secret it never had. Shai-hulud, prompt-injection - you name it. They cannot steal what your agent (or an process) don't have. I run coding agents (Claude Code, Codex) on my own machines most of the day. Every one of them wants real API keys in env and I was scratching my head for the last few months how to contain it. The usual answer to this is a firewall. I don't buy it. A firewall tries to contain a secret the process is still holding, and the rules are painful to maintain. AVP gives the agent a placeholder and injects the real value at the last moment, on the wire: ``` # the agent's env holds only a placeholder STRIPE_API_KEY=avp-placeholder # agent sends: Authorization: Bearer avp-placeholder # AVP forwards upstream: Authorization: Bearer sk_live_...real... ``` Keep your passwords in your vault where they belong. AVP initially relies on Bitwarden as a secret manager. It's MIT licensed. Appreciate any feedback. https://ift.tt/V5yC7rZ June 12, 2026 at 12:40AM

Show HN: Stillwind – High Resolution Electronic Component Search https://ift.tt/KqO2N3h

Show HN: Stillwind – High Resolution Electronic Component Search We’ve spent the last couple of months building Stillwind Search, a search engine for electronic components that helps users find parts that fit even the most complex set of specifications. After talking to the people that actually build PCBs we found out that finding the exact part you are looking for, is consuming enormous amounts of times, is very tedious and then often doesn’t yield the best results. So we tried to cut down this search time by just requiring a (broad) description of the specifications and we find the correct part in minutes, not hours. This is possible through our own database of parts and their properties. We used LLMs to extract every parameter about a part into >1k schemas, collectively covering more than 130k properties. This depth of properties could no longer be visualized, so the database is queried interactively by an AI agent (Sonnet 4.6) to find the needle in the haystack of parts. Before results are shown, we use another model to verify the data (that’s why it might take a moment before the first results appear). We currently have almost all microcontrollers, sensors, and other advanced ICs on the market, as well as a wide selection of passives and generic parts. We are working on adding more parts and are more than happy to take suggestions. I know that folks on HN like technical details on how this works, so let me give a short overview: Frontend: SvelteKit + Cloudflare Workers + Hyperdrive Backend: PostgreSQL 18 (with io_uring) database, with extensions on NVMe drives hosted on a beefy server. We appreciate all feedback and are happy to answer any questions :) Btw: We are already working on a way that you can search combinations of parts, finding the optimal combination of parts. https://stillwind.ai June 11, 2026 at 11:42PM

Wednesday, June 10, 2026

Show HN: Atlasphere – Live Infrastructure Diagrams https://ift.tt/dMeon5I

Show HN: Atlasphere – Live Infrastructure Diagrams Hi HN. My name is Andrey. On a regular business day, I'm a software engineer working at AWS. Outside of work hours, I spend time on my hobby - writing code. I was once building a pet project that allowed customers to spin up fully synchronized blockchain nodes within just a few minutes. The backend was split into a control plane and a data plane, each with its own AWS account. Later I added two more AWS accounts. One for shared RPC nodes. One for the Analytics Service. Since I love to visualize things, I used drawio to visualize the architecture. With time, I noticed a pattern. I'd write some code, add a few lambda functions, update my drawio diagram, write more code, introduce a few more resources, test things, see that everything works fine and go to sleep with a smile on my face. Next week I'd check my diagram, and shockingly, it's missing some of the resources! This kept happening for a few more weeks until I decided to fully abandon the project until my infrastructure diagrams could stay in sync with my cloud account. That's how Atlasphere.io was born. I've been working on it for the past 6 months and I think the product is ready for some feedback :) A few notes: - Atlasphere uses a ReadOnly IAM role to scan your AWS account (my account reaches your account through a trust relationship). - The number of services is currently limited (WIP) - It's a macOS app - It's NOT an Electron app, i use Rust + Webview What am I looking for? All I really need is for someone to try the app and tell me what they like about it and what they absolutely hate about it, haha! The website is https://atlasphere.io/ June 9, 2026 at 06:05PM

Show HN: Meadow Mind – a 7B diffusion LLM plays Gym games with zero training https://ift.tt/lCaVpw4

Show HN: Meadow Mind – a 7B diffusion LLM plays Gym games with zero training https://ift.tt/ZeW91Mi June 10, 2026 at 11:11PM

Show HN: Keel - A conductor, not an agent loop https://ift.tt/MvcbXo2

Show HN: Keel - A conductor, not an agent loop https://daneb.github.io/keel/ September 1, 2026 at 01:52AM