The best Hacker News stories from Show from the past day
Latest posts:
Show HN: OpenSCAD configurable calendar 3D model
I created a highly configurable calendar 3D model using OpenSCAD. This project uses Zeller’s Congruence to automatically adjust the calendar layout for any year. Just change the year in the configurator, and the model updates accordingly.<p>The link contains a little more of the backstory and the downloadable model from a 3rd-party site, additionally the full source code is included in the post.<p>Some highlights:<p>- Implemented date calculations entirely in OpenSCAD (with no built-in date support, which was challenging but fun).
- Customizable layout, multi-material printing support, and translation for all text elements.
- Configurable holes for magnets/screws to mount on a fridge or wall.
- Utilizes JustinSDK/dotSCAD and davidson16807/relativity.scad for string manipulation.
- Correctly takes into account leap years.<p>Would love to hear your feedback. Thanks for checking it out!
Show HN: VimLM – A Local, Offline Coding Assistant for Vim
VimLM is a local, offline coding assistant for Vim. It’s like Copilot but runs entirely on your machine—no APIs, no tracking, no cloud.<p>- Deep Context: Understands your codebase (current file, selections, references).
- Conversational: Iterate with follow-ups like "Add error handling".
- Vim-Native: Keybindings like `Ctrl-l` for prompts, `Ctrl-p` to replace code.
- Inline Commands: `!include` files, `!deploy` code, `!continue` long responses.<p>Perfect for privacy-conscious devs or air-gapped environments.<p>Try it:
```
pip install vimlm
vimlm
```<p>[GitHub](<a href="https://github.com/JosefAlbers/VimLM">https://github.com/JosefAlbers/VimLM</a>)
Show HN: VimLM – A Local, Offline Coding Assistant for Vim
VimLM is a local, offline coding assistant for Vim. It’s like Copilot but runs entirely on your machine—no APIs, no tracking, no cloud.<p>- Deep Context: Understands your codebase (current file, selections, references).
- Conversational: Iterate with follow-ups like "Add error handling".
- Vim-Native: Keybindings like `Ctrl-l` for prompts, `Ctrl-p` to replace code.
- Inline Commands: `!include` files, `!deploy` code, `!continue` long responses.<p>Perfect for privacy-conscious devs or air-gapped environments.<p>Try it:
```
pip install vimlm
vimlm
```<p>[GitHub](<a href="https://github.com/JosefAlbers/VimLM">https://github.com/JosefAlbers/VimLM</a>)
Show HN: I Built a Reddit-style Bluesky client – still rough, but open to ideas
I’ve been messing around with Bluesky for a while, and one thing I really missed was a proper way to browse discussions in a structured, Reddit-like way specially myself being daily reddit user. So, I ended up building a Reddit-like client for Bluesky that scratches that itch: Threadsky.app<p>It pulls in trending topics, lets you explore conversations with a threaded view (so no more getting lost in replies), and even allows users to create channels with customizations, basically, like subreddits but on Bluesky.<p>That said, this is still pretty barebones, and there’s a lot to improve. I really need feedback from actual users to shape where this goes next. Some planned features include markdown support, longer posts, and better mod tools for communities.<p>For privacy-conscious folks: Only details about channel customizations are stored on our servers. Everything else remains securely stored on your own PDS (Personal Data Server), just like the rest of Bluesky.<p>Also, I’m planning to open-source the project once I’ve polished things up a bit more.<p>Would love to hear your thoughts on what’s missing and what would make this actually useful?
Show HN: I Built a Reddit-style Bluesky client – still rough, but open to ideas
I’ve been messing around with Bluesky for a while, and one thing I really missed was a proper way to browse discussions in a structured, Reddit-like way specially myself being daily reddit user. So, I ended up building a Reddit-like client for Bluesky that scratches that itch: Threadsky.app<p>It pulls in trending topics, lets you explore conversations with a threaded view (so no more getting lost in replies), and even allows users to create channels with customizations, basically, like subreddits but on Bluesky.<p>That said, this is still pretty barebones, and there’s a lot to improve. I really need feedback from actual users to shape where this goes next. Some planned features include markdown support, longer posts, and better mod tools for communities.<p>For privacy-conscious folks: Only details about channel customizations are stored on our servers. Everything else remains securely stored on your own PDS (Personal Data Server), just like the rest of Bluesky.<p>Also, I’m planning to open-source the project once I’ve polished things up a bit more.<p>Would love to hear your thoughts on what’s missing and what would make this actually useful?
Show HN: Letting LLMs Run a Debugger
Hey HN,<p>I just built an experimental VSCode extension called LLM Debugger. It’s a proof-of-concept that lets a large language model take charge of debugging. Instead of only looking at the static code, the LLM also gets to see the live runtime state—actual variable values, function calls, branch decisions, and more. The idea is to give it enough context to help diagnose issues faster and even generate synthetic data from running programs.<p>Here’s what it does:<p>* Active Debugging: It integrates with Node.js debug sessions to gather runtime info (like variable states and stack traces).<p>* Automated Breakpoints: It automatically sets and manages breakpoints based on both code analysis and LLM suggestions.<p>* LLM Guidance: With live debugging context, the LLM can suggest actions like stepping through code or adjusting breakpoints in real time.<p>I built this out of curiosity to see if combining static code with runtime data could help LLMs solve bugs more effectively. It’s rough around the edges and definitely not production-ready<p>I’m not planning on maintaining it further. But I thought it was a fun experiment and wanted to share it with you all.<p>Check out the attached video demo to see it in action. Would love to hear your thoughts and any feedback you might have!<p>Cheers.
Show HN: Letting LLMs Run a Debugger
Hey HN,<p>I just built an experimental VSCode extension called LLM Debugger. It’s a proof-of-concept that lets a large language model take charge of debugging. Instead of only looking at the static code, the LLM also gets to see the live runtime state—actual variable values, function calls, branch decisions, and more. The idea is to give it enough context to help diagnose issues faster and even generate synthetic data from running programs.<p>Here’s what it does:<p>* Active Debugging: It integrates with Node.js debug sessions to gather runtime info (like variable states and stack traces).<p>* Automated Breakpoints: It automatically sets and manages breakpoints based on both code analysis and LLM suggestions.<p>* LLM Guidance: With live debugging context, the LLM can suggest actions like stepping through code or adjusting breakpoints in real time.<p>I built this out of curiosity to see if combining static code with runtime data could help LLMs solve bugs more effectively. It’s rough around the edges and definitely not production-ready<p>I’m not planning on maintaining it further. But I thought it was a fun experiment and wanted to share it with you all.<p>Check out the attached video demo to see it in action. Would love to hear your thoughts and any feedback you might have!<p>Cheers.
Show HN: Letting LLMs Run a Debugger
Hey HN,<p>I just built an experimental VSCode extension called LLM Debugger. It’s a proof-of-concept that lets a large language model take charge of debugging. Instead of only looking at the static code, the LLM also gets to see the live runtime state—actual variable values, function calls, branch decisions, and more. The idea is to give it enough context to help diagnose issues faster and even generate synthetic data from running programs.<p>Here’s what it does:<p>* Active Debugging: It integrates with Node.js debug sessions to gather runtime info (like variable states and stack traces).<p>* Automated Breakpoints: It automatically sets and manages breakpoints based on both code analysis and LLM suggestions.<p>* LLM Guidance: With live debugging context, the LLM can suggest actions like stepping through code or adjusting breakpoints in real time.<p>I built this out of curiosity to see if combining static code with runtime data could help LLMs solve bugs more effectively. It’s rough around the edges and definitely not production-ready<p>I’m not planning on maintaining it further. But I thought it was a fun experiment and wanted to share it with you all.<p>Check out the attached video demo to see it in action. Would love to hear your thoughts and any feedback you might have!<p>Cheers.
Show HN: Kreuzberg – Modern async Python library for document text extraction
I'm excited to showcase Kreuzberg!<p>Kreuzberg is a modern Python library built from the ground up with async/await, type hints, and optimized I/O handling.<p>It provides a unified interface for extracting text from documents (PDFs, images, office files) without external API dependencies.<p>Key technical features:
- Built with modern Python best practices (async/await, type hints, functional-first)
- Optimized async I/O with anyio for multi-loop compatibility
- Smart worker process pool for CPU-bound tasks (OCR, doc conversion)
- Efficient batch processing with concurrent extractions
- Clean error handling with context-rich exceptions<p>I built this after struggling with existing solutions that were either synchronous-only, required complex deployments, or had poor async support. The goal was to create something that works well in modern async Python applications, can be easily dockerized or used in serverless contexts, and relies only on permissive OSS.<p>Key advantages over alternatives:
- True async support with optimized I/O
- Minimal dependencies (much smaller than alternatives)
- Perfect for serverless and async web apps
- Local processing without API calls
- Built for modern Python codebases with rigorous typing and testing<p>I Would love feedback!<p>The library is MIT licensed and open to contributions.<p>Here is the repo: <a href="https://github.com/Goldziher/kreuzberg">https://github.com/Goldziher/kreuzberg</a><p>Staring is caring
Show HN: Kreuzberg – Modern async Python library for document text extraction
I'm excited to showcase Kreuzberg!<p>Kreuzberg is a modern Python library built from the ground up with async/await, type hints, and optimized I/O handling.<p>It provides a unified interface for extracting text from documents (PDFs, images, office files) without external API dependencies.<p>Key technical features:
- Built with modern Python best practices (async/await, type hints, functional-first)
- Optimized async I/O with anyio for multi-loop compatibility
- Smart worker process pool for CPU-bound tasks (OCR, doc conversion)
- Efficient batch processing with concurrent extractions
- Clean error handling with context-rich exceptions<p>I built this after struggling with existing solutions that were either synchronous-only, required complex deployments, or had poor async support. The goal was to create something that works well in modern async Python applications, can be easily dockerized or used in serverless contexts, and relies only on permissive OSS.<p>Key advantages over alternatives:
- True async support with optimized I/O
- Minimal dependencies (much smaller than alternatives)
- Perfect for serverless and async web apps
- Local processing without API calls
- Built for modern Python codebases with rigorous typing and testing<p>I Would love feedback!<p>The library is MIT licensed and open to contributions.<p>Here is the repo: <a href="https://github.com/Goldziher/kreuzberg">https://github.com/Goldziher/kreuzberg</a><p>Staring is caring
Show HN: Kreuzberg – Modern async Python library for document text extraction
I'm excited to showcase Kreuzberg!<p>Kreuzberg is a modern Python library built from the ground up with async/await, type hints, and optimized I/O handling.<p>It provides a unified interface for extracting text from documents (PDFs, images, office files) without external API dependencies.<p>Key technical features:
- Built with modern Python best practices (async/await, type hints, functional-first)
- Optimized async I/O with anyio for multi-loop compatibility
- Smart worker process pool for CPU-bound tasks (OCR, doc conversion)
- Efficient batch processing with concurrent extractions
- Clean error handling with context-rich exceptions<p>I built this after struggling with existing solutions that were either synchronous-only, required complex deployments, or had poor async support. The goal was to create something that works well in modern async Python applications, can be easily dockerized or used in serverless contexts, and relies only on permissive OSS.<p>Key advantages over alternatives:
- True async support with optimized I/O
- Minimal dependencies (much smaller than alternatives)
- Perfect for serverless and async web apps
- Local processing without API calls
- Built for modern Python codebases with rigorous typing and testing<p>I Would love feedback!<p>The library is MIT licensed and open to contributions.<p>Here is the repo: <a href="https://github.com/Goldziher/kreuzberg">https://github.com/Goldziher/kreuzberg</a><p>Staring is caring
Show HN: A unique generated maze to share with your valentine
An experiment with maze generation, started off in Rust, then ported to js to make it a web-app.<p>The algorithm, code and setup aims to make it simple - and as always, simple turned out hard ;).<p>The "about" dialog has some more information on choices made, tech used, inspiration and backgrounds.<p>Most important, for a tech crowd, I guess is:<p>- it uses p5.js - I generally prefer just vanilla js and canvas for my generative art projects, but here I wanted to focus on the outcome, not the tooling.<p>- uses seedrandom with the name of you and your valentine as seed. So a unique, but reproducible maze for a pair of names. Randomness controls the colors, layout and maze generation.<p>- Yes, the code is a mess still. Refactoring breaks my creative process, so I tend to postpone it (aka forget about it...)<p>- It uses some browser apis (share, copy, download) that don't work for all browsers in all setups (e.g. copy doesn't work on my firefox android, no idea why).<p>The source code can be found here: <a href="https://github.com/berkes/art/tree/main/lost-in-love">https://github.com/berkes/art/tree/main/lost-in-love</a>
Show HN: A unique generated maze to share with your valentine
An experiment with maze generation, started off in Rust, then ported to js to make it a web-app.<p>The algorithm, code and setup aims to make it simple - and as always, simple turned out hard ;).<p>The "about" dialog has some more information on choices made, tech used, inspiration and backgrounds.<p>Most important, for a tech crowd, I guess is:<p>- it uses p5.js - I generally prefer just vanilla js and canvas for my generative art projects, but here I wanted to focus on the outcome, not the tooling.<p>- uses seedrandom with the name of you and your valentine as seed. So a unique, but reproducible maze for a pair of names. Randomness controls the colors, layout and maze generation.<p>- Yes, the code is a mess still. Refactoring breaks my creative process, so I tend to postpone it (aka forget about it...)<p>- It uses some browser apis (share, copy, download) that don't work for all browsers in all setups (e.g. copy doesn't work on my firefox android, no idea why).<p>The source code can be found here: <a href="https://github.com/berkes/art/tree/main/lost-in-love">https://github.com/berkes/art/tree/main/lost-in-love</a>
Show HN: A unique generated maze to share with your valentine
An experiment with maze generation, started off in Rust, then ported to js to make it a web-app.<p>The algorithm, code and setup aims to make it simple - and as always, simple turned out hard ;).<p>The "about" dialog has some more information on choices made, tech used, inspiration and backgrounds.<p>Most important, for a tech crowd, I guess is:<p>- it uses p5.js - I generally prefer just vanilla js and canvas for my generative art projects, but here I wanted to focus on the outcome, not the tooling.<p>- uses seedrandom with the name of you and your valentine as seed. So a unique, but reproducible maze for a pair of names. Randomness controls the colors, layout and maze generation.<p>- Yes, the code is a mess still. Refactoring breaks my creative process, so I tend to postpone it (aka forget about it...)<p>- It uses some browser apis (share, copy, download) that don't work for all browsers in all setups (e.g. copy doesn't work on my firefox android, no idea why).<p>The source code can be found here: <a href="https://github.com/berkes/art/tree/main/lost-in-love">https://github.com/berkes/art/tree/main/lost-in-love</a>
Show HN: A New Way to Learn Languages
Hi HN, I’m Pablo, I built this application to learn languages using podcasts:<p><a href="https://www.langturbo.com" rel="nofollow">https://www.langturbo.com</a> (No signup required)<p>There are a lot of tools to learn languages, but most of them focus on beginners (understandably so, that’s where the money is) but not many exist that target intermediate or advanced learners. The ones that exist make you find content on your own and then import that into their apps, which can be tricky when you don’t know where to look.<p>LangTurbo has a unique curated database of podcasts by language (some even have dialect labels) that you can browse by topic, or search by keyword, so you can discover content and learn in the same place.<p>Having a good language learning method is important, but having the motivation to keep learning is much more important. Some tools like Duolingo try to keep you motivated with “gamification”. I don’t like that, I think it gives you a false sense of accomplishment without real improvement. The way LangTurbo tries to keep you coming back is via the content itself. My goal is that you discover some podcast that interests you enough to keep coming back to listen to new episodes, the same way you listen to podcasts in your native language. I wrote more about the method here [1]<p>The app also lets you learn without looking at the screen, you can listen to a podcast in the background and for each sentence you will first hear the translation in English and the native speaker after. I call it “poor man's Pimsleur mode”.<p>Some things I learned while building the app:<p>* Currently the best SRS algorithm is FSRS, the app uses this algorithm implemented in SQL (thanks to [2])<p>* Working with Expo (React Native) was a great experience, the app has web, iOS and Android (coming soon) clients sharing most of the codebase.<p>* A lot of non-English podcasts have a feed with English as the language. I had to build a “probe” to get the correct language of a podcast, based on the text and audio of the feed.<p>* Podcasts use “Dynamic Ad Insertion”, that means the content of the audio can change according to the request IP or the time of the request.<p>* Still amazed by all the things Postgres can do<p>Let me know what you think, happy to answer any questions.<p>[1] <a href="https://www.langturbo.com/blog/langturbo/getting-started" rel="nofollow">https://www.langturbo.com/blog/langturbo/getting-started</a><p>[2] <a href="https://github.com/sivers/srs">https://github.com/sivers/srs</a>
Show HN: I made a tiny book using a pen-plotter and AI
Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!
Show HN: I made a tiny book using a pen-plotter and AI
Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!
Show HN: I made a tiny book using a pen-plotter and AI
Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!
Show HN: I made a tiny book using a pen-plotter and AI
Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!
Show HN: Transform your codebase into a single Markdown doc for feeding into AI
CodeWeaver is a command-line tool designed to weave your codebase into a single, easy-to-navigate Markdown document. It recursively scans a directory, generating a structured representation of your project's file hierarchy and embedding the content of each file within code blocks. This tool simplifies codebase sharing, documentation, and integration with AI/ML code analysis tools by providing a consolidated and readable Markdown output.