The best Hacker News stories from Show from the past day
Latest posts:
Show HN: An LLM-optimized programming language
Show HN: 30k IKEA items in flat text
OP here.<p>I took the unofficial IKEA US dataset (originally scraped by jeffreyszhou) and converted all 30,511 products into a flat, markdown-like protocol called CommerceTXT.<p>The goal: See if a flatter structure is more efficient for LLM context windows.<p>The results:
- Size: 30k products across 632 categories.
- Efficiency: The text version uses ~24% fewer tokens (3.6M saved total) compared to the equivalent minified JSON.
- Structure: Files are organized in folders (e.g. /products/category/), which helps with testing hierarchical retrieval routers.<p>The link goes to the dataset on Hugging Face which has the full benchmarks.<p>Parser code is here: <a href="https://github.com/commercetxt/commercetxt" rel="nofollow">https://github.com/commercetxt/commercetxt</a><p>Happy to answer questions about the conversion logic!
Show HN: Fall asleep by watching JavaScript load
Show HN: Agent-of-empires: OpenCode and Claude Code session manager
Hi! I’m Nathan: an ML Engineer at Mozilla.ai: I built agent-of-empires (aoe): a CLI application to help you manage all of your running Claude Code/Opencode sessions and know when they are waiting for you.<p>- Written in rust and relies on tmux for security and reliability
- Monitors state of cli sessions to tell you when an agent is running vs idle vs waiting for your input
- Manage sessions by naming them, grouping them, configuring profiles for various settings<p>I'm passionate about getting self-hosted open-weight LLMs to be valid options to compete with proprietary closed models. One roadblock for me is that although tools like opencode allow you to connect to Local LLMs (Ollama, lm studio, etc), they generally run muuuuuch slower than models hosted by Anthropic and OpenAI. I would start a coding agent on a task, but then while I was sitting waiting for that task to complete, I would start opening new terminal windows to start multitasking. Pretty soon, I was spending a lot of time toggling between terminal windows to see which one needed me: like help in adding a clarification, approving a new command, or giving it a new task.<p>That’s why I build agent-of-empires (“aoe”). With aoe, I can launch a bunch of opencode and Claude Code sessions and quickly see their status or toggle between them, which helps me avoid having a lot of terminal windows open, or having to manually attach and detach from tmux sessions myself. It’s helping me give local LLMs a fair try, because them being slower is now much less of a bottleneck.<p>You can give it an install with<p>curl -fsSL <a href="https://raw.githubusercontent.com/njbrake/agent-of-empires/main/scripts/install.sh" rel="nofollow">https://raw.githubusercontent.com/njbrake/agent-of-empires/m...</a> | bash<p>Or brew install njbrake/aoe/aoe<p>And then launch by simply entering the command `aoe`.<p>I’m interested in what you think as well as what features you think would be useful to add!<p>I am planning to add some further features around sandboxing (with docker) as well as support for intuitive git worktrees and am curious if there are any opinions about what should or shouldn’t be in it.<p>I decided against MCP management or generic terminal usage, to help keep the tool focused on parts of agentic coding that I haven’t found a usable solution for.<p>I hit the character limit on this post which prevented me from including a view of the output, but the readme on the github link has a screenshot showing what it looks like.<p>Thanks!
Show HN: Yolobox – Run AI coding agents with full sudo without nuking home dir
Show HN: AI in SolidWorks
Hey HN! We’re Will and Jorge, and we’ve built LAD (Language-Aided Design), a SolidWorks add-in that uses LLMs to create sketches, features, assemblies, and macros from conversational inputs (<a href="https://www.trylad.com/" rel="nofollow">https://www.trylad.com/</a>).<p>We come from software engineering backgrounds where tools like Claude Code and Cursor have come to dominate, but when poking around CAD systems a few months back we realized there's no way to go from a text prompt input to a modeling output in any of the major CAD systems. In our testing, the LLMs aren't as good at making 3D objects as they are are writing code, but we think they'll get a lot better in the upcoming months and years.<p>To bridge this gap, we've created LAD, an add-in in SolidWorks to turn conversational input and uploaded documents/images into parts, assemblies, and macros. It includes:<p>- Dozens of tools the LLM can call to create sketches, features, and other objects in parts.<p>- Assembly tools the LLM can call to turn parts into assemblies.<p>- File system tools the LLM can use to create, save, search, and read SolidWorks files and documentation.<p>- Macro writing/running tools plus a SolidWorks API documentation search so the LLM can use macros.<p>- Automatic screenshots and feature tree parsing to provide the LLM context on the current state.<p>- Checkpointing to roll back unwanted edits and permissioning to determine which commands wait for user permission.<p>You can try LAD at <a href="https://www.trylad.com/" rel="nofollow">https://www.trylad.com/</a> and let us know what features would make it more useful for your work. To be honest, the LLMs aren't great at CAD right now, but we're mostly curious to hear if people would want and use this if it worked well.
Show HN: Yellopages – New tab Chrome extension
Hey all- I just released a New tab replacement Chrome extension that makes browsing a lot easier - it also solves many of the annoyances with browser tabs. It's called Yellopages and it's free. Hope you'll give it a try.<p>* Groups all tabs from same domain. Makes it simple to kill all your Gmail tabs in one click (or keep just one).<p>* Groups all tabs playing audio. Toggle the sound for each one.<p>* Single text search for open tabs, bookmarks, and browsing history.<p>* Groups all tabs with new notifications (e.g. emails, likes, posts, replies, etc.)<p>* One click to kill all tabs (e.g. you're sharing screen in Zoom). A second click brings them all back.<p>I'm a solo web developer and I'm hoping to build an audience with my work. More at: <a href="https://buymeacoffee.com/kawaicheung" rel="nofollow">https://buymeacoffee.com/kawaicheung</a>
Show HN: mcpc – Universal command-line client for Model Context Protocol (MCP)
Show HN: VAM Seek – 2D video navigation grid, 15KB, zero server load
Hi HN! I built VAM Seek because I was frustrated with 1D seek bars – you never know where you're going until you get there.<p>VAM Seek renders a 2D thumbnail grid next to your video. Click any cell to jump. All frame extraction happens client-side via canvas – no server processing, no pre-generated thumbnails.<p>- 15KB, zero dependencies
- One-line integration
- Works with any <video> element<p>Live demo: <a href="https://haasiy.main.jp/vam_web/deploy/lolipop/index.html" rel="nofollow">https://haasiy.main.jp/vam_web/deploy/lolipop/index.html</a><p>Would love feedback!
Show HN: GlyphLang – An AI-first programming language
While working on a proof of concept project, I kept hitting Claude's token limit 30-60 minutes into their 5-hour sessions. The accumulating context from the codebase was eating through tokens fast. So I built a language designed to be generated by AI rather than written by humans.<p>GlyphLang<p>GlyphLang replaces verbose keywords with symbols that tokenize more efficiently:<p><pre><code> # Python
@app.route('/users/<id>')
def get_user(id):
user = db.query("SELECT * FROM users WHERE id = ?", id)
return jsonify(user)
# GlyphLang
@ GET /users/:id {
$ user = db.query("SELECT * FROM users WHERE id = ?", id)
> user
}
@ = route, $ = variable, > = return. Initial benchmarks show ~45% fewer tokens than Python, ~63% fewer than Java.
</code></pre>
In practice, that means more logic fits in context, and sessions stretch longer before hitting limits. The AI maintains a broader view of your codebase throughout.<p>Before anyone asks: no, this isn't APL with extra steps. APL, Perl, and Forth are symbol-heavy but optimized for mathematical notation, human terseness, or machine efficiency. GlyphLang is specifically optimized for how modern LLMs tokenize. It's designed to be generated by AI and reviewed by humans, not the other way around. That said, it's still readable enough to be written or tweaked if the occasion requires.<p>It's still a work in progress, but it's a usable language with a bytecode compiler, JIT, LSP, VS Code extension, PostgreSQL, WebSockets, async/await, generics.<p>Docs: <a href="https://glyphlang.dev/docs" rel="nofollow">https://glyphlang.dev/docs</a><p>GitHub: <a href="https://github.com/GlyphLang/GlyphLang" rel="nofollow">https://github.com/GlyphLang/GlyphLang</a>
Show HN: Epstein IM – Talk to Epstein clone in iMessage
Show HN: Engineering Schizophrenia: Trusting yourself through Byzantine faults
Hi HN!<p>My name's Robert Escriva. I got my PhD from Cornell's Computer Science department back in 2017. And three years ago I had a psychotic episode that irreversibly shook up my world.<p>Since then I've been applying a skill I learned in grad school---namely, debugging distributed and complex systems---to my own mind.<p>What I've found I've put into a [book (pdf)](<a href="https://rescrv.net/engineering-schizophrenia.pdf" rel="nofollow">https://rescrv.net/engineering-schizophrenia.pdf</a>) on engineering, my particular schizophrenic delusions, and how people who suffer as I once did can find a way through the fog to the other side.<p>This is not a healing memoir; it is a guide and a warning for all those who never stopped to ask,
"What happens if my brain begins to fail me?"<p>I am writing because what I've found is not a destination, but a process. It is an ongoing process for me and for people like me. I also believe it is automate-able using the same techniques we apply to machine-based systems.<p>I am looking for others who recognize the stakes of the human mind to engage in discussion on the
topic.<p>Happy hacking,
Robert
Show HN: Engineering Schizophrenia: Trusting yourself through Byzantine faults
Hi HN!<p>My name's Robert Escriva. I got my PhD from Cornell's Computer Science department back in 2017. And three years ago I had a psychotic episode that irreversibly shook up my world.<p>Since then I've been applying a skill I learned in grad school---namely, debugging distributed and complex systems---to my own mind.<p>What I've found I've put into a [book (pdf)](<a href="https://rescrv.net/engineering-schizophrenia.pdf" rel="nofollow">https://rescrv.net/engineering-schizophrenia.pdf</a>) on engineering, my particular schizophrenic delusions, and how people who suffer as I once did can find a way through the fog to the other side.<p>This is not a healing memoir; it is a guide and a warning for all those who never stopped to ask,
"What happens if my brain begins to fail me?"<p>I am writing because what I've found is not a destination, but a process. It is an ongoing process for me and for people like me. I also believe it is automate-able using the same techniques we apply to machine-based systems.<p>I am looking for others who recognize the stakes of the human mind to engage in discussion on the
topic.<p>Happy hacking,
Robert
Show HN: Librario, a book metadata API that aggregates G Books, ISBNDB, and more
<i>TLDR:</i> Librario is a book metadata API that aggregates data from Google Books, ISBNDB, and Hardcover into a single response, solving the problem of no single source having complete book information. It's currently pre-alpha, AGPL-licensed, and available to try now[0].<p>My wife and I have a personal library with around 1,800 books. I started working on a library management tool for us, but I quickly realized I needed a source of data for book information, and none of the solutions available provided all the data I needed. One might provide the series, the other might provide genres, and another might provide a good cover, but none provided everything.<p>So I started working on Librario, a book metadata aggregation API written in Go. It fetches information about books from multiple sources (Google Books, ISBNDB, Hardcover. Working on Goodreads and Anna's Archive next.), merges everything, and saves it all to a PostgreSQL database for future lookups. The idea is that the database gets stronger over time as more books are queried.<p>You can see an example response here[1], or try it yourself:<p><pre><code> curl -s -H 'Authorization: Bearer librario_ARbmrp1fjBpDywzhvrQcByA4sZ9pn7D5HEk0kmS34eqRcaujyt0enCZ' \
'https://api.librario.dev/v1/book/9781328879943' | jq .
</code></pre>
This is pre-alpha and runs on a small VPS, so keep that in mind. I never hit the limits in the third-party services, so depending on how this post goes, I’ll or will not find out if the code handles that well.<p>The merger is the heart of the service, and figuring out how to combine conflicting data from different sources was the hardest part. In the end I decided to use field-specific strategies which are quite naive, but work for now.<p>Each extractor has a priority, and results are sorted by that priority before merging. But priority alone isn't enough, so different fields need different treatment.<p>For example:<p>- Titles use a scoring system. I penalize titles containing parentheses or brackets because sources sometimes shove subtitles into the main title field. Overly long titles (80+ chars) also get penalized since they often contain edition information or other metadata that belongs elsewhere.<p>- Covers collect all candidate URLs, then a separate fetcher downloads and scores them by dimensions and quality. The best one gets stored locally and served from the server.<p>For most other fields (publisher, language, page count), I just take the first non-empty value by priority. Simple, but it works.<p>Recently added a caching layer[2] which sped things up nicely. I considered migrating from <i>net/http</i> to <i>fiber</i> at some point[3], but decided against it. Going outside the standard library felt wrong, and the migration didn't provide much in the end.<p>The database layer is being rewritten before v1.0[4]. I'll be honest: the original schema was written by AI, and while I tried to guide it in the right direction with SQLC[5] and good documentation, database design isn't my strong suit and I couldn't confidently vouch for the code. Rather than ship something I don't fully understand, I hired the developers from SourceHut[6] to rewrite it properly.<p>I've got a 5-month-old and we're still adjusting to their schedule, so development is slow. I've mentioned this project in a few HN threads before[7], so I’m pretty happy to finally have something people can try.<p>Code is AGPL and on SourceHut[8].<p>Feedback and patches[9] are very welcome :)<p>[0]: <a href="https://sr.ht/~pagina394/librario/" rel="nofollow">https://sr.ht/~pagina394/librario/</a><p>[1]: <a href="https://paste.sr.ht/~jamesponddotco/a6c3b1130133f384cffd25b33a8ab1bc3392093c" rel="nofollow">https://paste.sr.ht/~jamesponddotco/a6c3b1130133f384cffd25b3...</a><p>[2]: <a href="https://todo.sr.ht/~pagina394/librario/16" rel="nofollow">https://todo.sr.ht/~pagina394/librario/16</a><p>[3]: <a href="https://todo.sr.ht/~pagina394/librario/13" rel="nofollow">https://todo.sr.ht/~pagina394/librario/13</a><p>[4]: <a href="https://todo.sr.ht/~pagina394/librario/14" rel="nofollow">https://todo.sr.ht/~pagina394/librario/14</a><p>[5]: <a href="https://sqlc.dev" rel="nofollow">https://sqlc.dev</a><p>[6]: <a href="https://sourcehut.org/consultancy/" rel="nofollow">https://sourcehut.org/consultancy/</a><p>[7]: <a href="https://news.ycombinator.com/item?id=45419234">https://news.ycombinator.com/item?id=45419234</a><p>[8]: <a href="https://sr.ht/~pagina394/librario/" rel="nofollow">https://sr.ht/~pagina394/librario/</a><p>[9]: <a href="https://git.sr.ht/~pagina394/librario/tree/trunk/item/CONTRIBUTING.md" rel="nofollow">https://git.sr.ht/~pagina394/librario/tree/trunk/item/CONTRI...</a>
Show HN: Ferrite – Markdown editor in Rust with native Mermaid diagram rendering
Ferrite: Fast Markdown/Text/Code editor in Rust with native Mermaid diagrams<p>Built a Markdown editor using Rust + egui. v0.2.1 just dropped with major Mermaid improvements:<p>→ Native Mermaid diagrams - Flowcharts, sequence, state, ER, git graphs - pure Rust, no JS<p>→ Split view - Raw + rendered side-by-side with sync scrolling<p>→ Syntax highlighting - 40+ languages with large file optimization<p>→ JSON/YAML/TOML tree viewer - Structured editing with expand/collapse<p>→ Git integration - File tree shows modified/staged/untracked status<p>Also: minimap, zen mode, auto-save, session restore, code folding indicators.<p>~15MB binary, instant startup. Windows/Linux/macOS.<p>GitHub: <a href="https://github.com/OlaProeis/Ferrite" rel="nofollow">https://github.com/OlaProeis/Ferrite</a><p>v0.2.2 coming soon with performance improvements for large files. Looking for feedback!
Show HN: Ferrite – Markdown editor in Rust with native Mermaid diagram rendering
Ferrite: Fast Markdown/Text/Code editor in Rust with native Mermaid diagrams<p>Built a Markdown editor using Rust + egui. v0.2.1 just dropped with major Mermaid improvements:<p>→ Native Mermaid diagrams - Flowcharts, sequence, state, ER, git graphs - pure Rust, no JS<p>→ Split view - Raw + rendered side-by-side with sync scrolling<p>→ Syntax highlighting - 40+ languages with large file optimization<p>→ JSON/YAML/TOML tree viewer - Structured editing with expand/collapse<p>→ Git integration - File tree shows modified/staged/untracked status<p>Also: minimap, zen mode, auto-save, session restore, code folding indicators.<p>~15MB binary, instant startup. Windows/Linux/macOS.<p>GitHub: <a href="https://github.com/OlaProeis/Ferrite" rel="nofollow">https://github.com/OlaProeis/Ferrite</a><p>v0.2.2 coming soon with performance improvements for large files. Looking for feedback!
Show HN: Miditui – A terminal app/UI for MIDI composing, mixing, and playback
Show HN: Various shape regularization algorithms
I deal with a lot of geometry stuff at work with computer vision and photogrammetry, which usually comes from the real world. It's seldom clean and neat, and I'm often trying to find a way to "make it nice" or "make it pretty". I've always struggled with what that really means formally.<p>That led me to shape regularization (a technique used in computational geometry to clean up geometric data). CGAL had implemented a few methods for that, but there are more ways to do it, which I thought were nice. Also I typically work in Python, so it was nice to have a pure Python library could handle this.<p>I struggled to get the first version working as a QP. At a high level most of these boil down to minimizing a cost A + B where A is the cost associated the geometry and goes up the more you move it, and B is the cost associated "niceness" or rather the constraints you impose, and goes down the more you impose them. Then you try and minimize A + B or rather H<i>A + (1-H)</i>B where H is a hyper-parameter that controls the relative importance of A and B.<p>I needed a Python implementation so started with the examples implemented in CGAL then added a couple more for snap and joint regularization and metric regularization.
Show HN: I built a tool to create AI agents that live in iMessage
Hey everyone, I made this thing:
<a href="https://tryflux.ai/" rel="nofollow">https://tryflux.ai/</a>. Here's a demo video: <a href="https://screen.studio/share/1y2EnC26" rel="nofollow">https://screen.studio/share/1y2EnC26</a><p>Context: I've tried probably 15 different AI apps over the past year. ChatGPT, note-taking apps, productivity apps, all of it. But most of them are just clutter on my iphone.<p>They live in some app I have to deliberately open. And I just... don't. But you know what I open 50 times a day without thinking? iMessage. So out of mild frustration with the "AI app graveyard" on my phone, I built Flux.<p>What it does: - You describe a personality and what you want the agent to do - In about 2 minutes, you have a live AI agent in iMessage - Blue bars. Native. No app download for whoever texts it.<p>The thesis that got us here: AI is already smart enough. The bottleneck is interaction. Dashboards get forgotten. Texts get answered.<p>This was also my first time hitting #1 on Product Hunt, which was surreal.<p>It's still rough and probably broke something. If you try it, feedback is super welcome, weird edge cases, "this doesn't work," or "why would anyone use this" comments all help.<p>That's all. Happy to answer questions.
Show HN: Play poker with LLMs, or watch them play against each other
I was curious to see how some of the latest models behaved and played no limit texas holdem.<p>I built this website which allows you to:<p>Spectate: Watch different models play against each other.<p>Play: Create your own table and play hands against the agents directly.