Saturday, 10 January 2026

Show HN: Horizon Engine – C++20 3D FPS Game Engine with ECS and Modern Renderer https://bit.ly/49xd8W4

Show HN: Horizon Engine – C++20 3D FPS Game Engine with ECS and Modern Renderer Hi HN, I’m working on an experimental 3D FPS game engine in C++20, aiming to deeply understand engine internals from first principles rather than just using existing frameworks. Currently I'm strictly following LearnOpenGL docs. This project focuses on: Entity-Component-System (ECS) architecture for high performance. OpenGL 4.1 rendering with a PBR pipeline, material system, HDR, SSAO, and shadow mapping. Modular systems: input, physics (Jolt), audio (miniaudio), assets, hot reload. A sample FPS game & debug editor built into the repo. Repo: https://bit.ly/3Ltr5wc This isn’t intended to be a commercial rival to any commercial game engines. it’s a learning and exploration project: understanding why certain engine decisions are made, and how to build low-level engine systems from scratch. I’m especially looking for feedback on: Architecture choices (ECS design, render loop, module separation) Your thoughts on modern C++ engine patterns What you’d build vs stub early in a homemade engine Tips from experienced graphics/engine developers Criticism and suggestions are very welcome — it’s early days and meant to evolve. Thanks for checking it out! https://bit.ly/3Ltr5wc January 10, 2026 at 11:23PM

Show HN: Librario, a book metadata API that aggregates G Books, ISBNDB, and more https://bit.ly/49j7Te0

Show HN: Librario, a book metadata API that aggregates G Books, ISBNDB, and more TLDR: 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]. 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. 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. You can see an example response here[1], or try it yourself: curl -s -H 'Authorization: Bearer librario_ARbmrp1fjBpDywzhvrQcByA4sZ9pn7D5HEk0kmS34eqRcaujyt0enCZ' \ 'https://bit.ly/454p2pd' | jq . 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. 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. 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. For example: - 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. - 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. For most other fields (publisher, language, page count), I just take the first non-empty value by priority. Simple, but it works. Recently added a caching layer[2] which sped things up nicely. I considered migrating from net/http to fiber 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. 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. 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. Code is AGPL and on SourceHut[8]. Feedback and patches[9] are very welcome :) [0]: https://bit.ly/3LtSRsC [1]: https://bit.ly/4btRHI1... [2]: https://bit.ly/4jDyAxp [3]: https://bit.ly/4qgj90J [4]: https://bit.ly/4jyI2lz [5]: https://bit.ly/49ZPPSU [6]: https://bit.ly/4qN49Ho [7]: https://bit.ly/49m1NYM [8]: https://bit.ly/3LtSRsC [9]: https://bit.ly/455EzoN... January 11, 2026 at 12:45AM

Show HN: Symfreq – Analyse symbol frequencies in code (Rust) https://bit.ly/49KkIhr

Show HN: Symfreq – Analyse symbol frequencies in code (Rust) https://bit.ly/3L9Dgyp January 10, 2026 at 11:55PM

Friday, 9 January 2026

Show HN: Yellopages – New tab Chrome extension https://bit.ly/4jys6zC

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. * Groups all tabs from same domain. Makes it simple to kill all your Gmail tabs in one click (or keep just one). * Groups all tabs playing audio. Toggle the sound for each one. * Single text search for open tabs, bookmarks, and browsing history. * Groups all tabs with new notifications (e.g. emails, likes, posts, replies, etc.) * One click to kill all tabs (e.g. you're sharing screen in Zoom). A second click brings them all back. I'm a solo web developer and I'm hoping to build an audience with my work. More at: https://bit.ly/49uCrYK https://bit.ly/4julNgw January 8, 2026 at 11:44PM

Show HN: Senior Developer Playbook https://bit.ly/4jSg4BH

Show HN: Senior Developer Playbook I wrote a short playbook capturing behaviors I’ve seen in consistently effective developers. Posting it here in case it’s useful. Curious what others agree or disagree with. https://bit.ly/4sxBRlX January 10, 2026 at 12:57AM

Thursday, 8 January 2026

Show HN: Layoffstoday – Open database tracking for 10k Companies https://bit.ly/3LDCpGa

Show HN: Layoffstoday – Open database tracking for 10k Companies Hi HN, I built Layoffstoday, an open platform that tracks tech layoffs across ~6,500 companies. What it does: Aggregates layoff events from public news sources Normalizes data by company, date, industry, and affected headcount Shows historical patterns instead of isolated headlines Why I built it: During job transitions, I noticed people had to jump across news articles, spreadsheets, and social posts just to answer simple questions like “Has this company laid people off before?” or “Is this happening across the industry?” This is an attempt to make that information structured, searchable, and accessible. Would love feedback on: Data accuracy / gaps Signals that would actually help job seekers Whether alerts or trend indicators are useful or noisy https://bit.ly/4pzxgNx January 9, 2026 at 04:39AM

Show HN: Claude Code for Django https://bit.ly/3Luogel

Show HN: Claude Code for Django Chris Wiles showcased his setup for Claude Code and I thought it was sick. So I adapted it for Django projects. Several skills have been added to address the pain points in Django development. https://bit.ly/49yGXpp January 9, 2026 at 03:37AM

Show HN: Executable Markdown files with Unix pipes https://bit.ly/4bmpLWv

Show HN: Executable Markdown files with Unix pipes I wanted to run markdown files like shell scripts. So I built an open source tool that lets you use a shebang to pipe them through Claude Code with full stdin/stdout support. task.md: #!/usr/bin/env claude-run Analyze this codebase and summarize the architecture. Then: chmod +x task.md ./task.md These aren't just prompts. Claude Code has tool use, so a markdown file can run shell commands, write scripts, read files, make API calls. The prompt orchestrates everything. A script that runs your tests and reports results (`run_tests.md`): #!/usr/bin/env claude-run --permission-mode bypassPermissions Run ./test/run_tests.sh and summarize what passed and failed. Because stdin/stdout work like any Unix program, you can chain them: cat data.json | ./analyze.md > results.txt git log -10 | ./summarize.md ./generate.md | ./review.md > final.txt Or mix them with traditional shell scripts: for f in logs/\*.txt; do cat "$f" | ./analyze.md >> summary.txt done This replaced a lot of Python glue code for us. Tasks that needed LLM orchestration libraries are now markdown files composed with standard Unix tools. Composable as building blocks, runnable as cron jobs, etc. One thing we didn't expect is that these are more auditable (and shareable) than shell scripts. Install scripts like `curl -fsSL https://bit.ly/49foHT7 | bash` could become: `curl -fsSL https://bit.ly/4ssZWKN | claude-run` Where install.md says something like "Detect my OS and architecture, download the right binary from GitHub releases, extract to ~/.local/bin, update my shell config." A normal human can actually read and verify that. The (really cool) executable markdown idea and auditability examples are from Pete Koomen (@koomen on X). As Pete says: "Markdown feels increasingly important in a way I'm not sure most people have wrapped their heads around yet." We implemented it and added Unix pipe semantics. Currently works with Claude Code - hoping to support other AI coding tools too. You can also route scripts through different cloud providers (AWS Bedrock, etc.) if you want separate billing for automated jobs. GitHub: https://bit.ly/4qP9UEG What workflows would you use this for? January 9, 2026 at 03:29AM

Show HN: Legit, Open source Git-based Version control for AI agents https://bit.ly/45JyluK

Show HN: Legit, Open source Git-based Version control for AI agents Hi HN, Martin, Nils, and Jannes here. We are building Legit, an open source version control and collaboration layer for AI agents and AI native applications. You can find the repo here https://bit.ly/3LacBBw and the website here https://bit.ly/49yaAat Over the last years, we worked on multiple developer tools and AI driven products. As soon as we started letting agents modify real files and business critical data, one problem kept showing up. We could not reliably answer what changed, why it changed, or how to safely undo it. Today, most AI tools either run without real guardrails or store their state in proprietary databases that are hard to inspect, audit, or migrate. Once agents start collaborating on shared data, you are often just crossing your fingers and hoping nothing goes wrong. We noticed something interesting. Developers do not have this problem when collaborating on code, and agent like workflows took off there first. The reason is relatively simple. Git already solves coordination, history, review, and rollback. That insight led us to build Legit. We bring Git style versioning and collaboration to AI applications and to most file formats. Every change an agent makes is tracked. Every action is inspectable, reviewable, and reversible. No hidden state. No black box history. Legit works as a lightweight SDK that AI apps can embed anywhere the filesystem works. It handles versioning, Sync, rollback, and access control for agens. Everything lives in a repository that you can host yourself or on any Git hosting provider you already trust. We believe the right way to scale AI collaboration is not to hide what agents do, but to let developers and users see, review, and control every change. Legit is our attempt to bring the discipline, visibility, and safety of modern developer workflows to write enabled AI applications. Give it a spin: https://bit.ly/3LacBBw and let us know your feedback, criticism, and thoughts. January 9, 2026 at 01:20AM

Wednesday, 7 January 2026

Show HN: MaduroTrials – Tracking the SDNY indictments and court documents https://bit.ly/49clJ1F

Show HN: MaduroTrials – Tracking the SDNY indictments and court documents I built a dashboard to organize the unsealed indictments, court schedules, and filings regarding the United States v. Nicolás Maduro case in the Southern District of New York. https://bit.ly/4bnCZlS January 8, 2026 at 05:29AM

Show HN: I built Mike – AI motion graphics https://bit.ly/49bhsvn

Show HN: I built Mike – AI motion graphics When you think of AI videos, you think of something like Sora or Veo 3 (diffusion). What if the AI could write the code for a video like a website? This thought experiment led me to create Mike. It writes React code which can be rendered into a video. You can ask the AI to use any Node library to render graphs, animations, simulations. https://bit.ly/4qANqqK January 8, 2026 at 04:42AM

Show HN: IceRaidsNearMe – Real-time, crowdsourced map of immigration enforcement https://bit.ly/4qa6HiK

Show HN: IceRaidsNearMe – Real-time, crowdsourced map of immigration enforcement I built this to provide transparency around enforcement activities. It uses [mention tech stack, e.g., Mapbox/Leaflet] and a verification system to prevent false positives. Feedback on the verification logic is welcome. https://bit.ly/4qbKAIR January 8, 2026 at 04:30AM

Show HN: Kerns – A Continuous Research Workspace https://bit.ly/49cYdSc

Show HN: Kerns – A Continuous Research Workspace Most research tools help you collect links. Kerns is built for ongoing research. You define topics and sources once. Kerns continuously tracks them over time, surfaces what changes, and structures the material so understanding compounds instead of resetting each session. The key difference is the interface layer. Beyond feeds and summaries, Kerns organizes research into reasoning-ready views—maps, structured summaries, and synthesized perspectives—so you can actually think through complex areas rather than just store information. We built this for people doing deep, long-running research (researchers, analysts, investors, founders, autodidacts) where the hard part isn’t finding sources, but keeping a coherent mental model as the space evolves. Would love feedback, especially from people who’ve tried to maintain research across weeks or months. https://bit.ly/4p7lPwH January 7, 2026 at 11:51PM

Tuesday, 6 January 2026

Show HN: Funboxie – Free printables and coloring pages for kids https://bit.ly/3YWU52C

Show HN: Funboxie – Free printables and coloring pages for kids https://bit.ly/4szqKsS January 7, 2026 at 03:33AM

Show HN: SMTP Tunnel – A SOCKS5 proxy disguised as email traffic to bypass DPI https://bit.ly/3NhpZEm

Show HN: SMTP Tunnel – A SOCKS5 proxy disguised as email traffic to bypass DPI A fast SOCKS5 proxy that tunnels your traffic through what looks like normal SMTP email, bypassing Deep Packet Inspection firewalls. How it works: - Client runs a local SOCKS5 proxy (127.0.0.1:1080) - Traffic is sent to server disguised as SMTP (EHLO, STARTTLS, AUTH) - DPI sees legitimate email session, not a VPN/proxy Features: - One-liner install on any Linux VPS - Multi-user with per-user secrets and IP whitelists - Auto-generated client packages (just double-click to run) - Auto-reconnect on connection loss - Works with any app that supports SOCKS5 Tech: Python/asyncio, TLS 1.2+, HMAC-SHA256 auth GitHub: https://bit.ly/4aOjAKG https://bit.ly/4aOjAKG January 7, 2026 at 01:30AM

Show HN: GPU Cuckoo Filter – faster queries than Blocked Bloom, with deletion https://bit.ly/4ju1q2Z

Show HN: GPU Cuckoo Filter – faster queries than Blocked Bloom, with deletion https://bit.ly/4jql1kK January 6, 2026 at 11:33PM

Monday, 5 January 2026

Show HN: OSS sustain guard – Sustainability signals for OSS dependencies https://bit.ly/4jthrGG

Show HN: OSS sustain guard – Sustainability signals for OSS dependencies Hi HN, I made OSS Sustain Guard. After every high-profile OSS incident, I wonder about the packages I rely on right now. I can skim issues/PRs and activity on GitHub, but that doesn’t scale when you have tens or hundreds of dependencies. I built this to surface sustainability signals (maintainer redundancy, activity trends, funding links, etc.) and create awareness. It’s meant to start a respectful conversation, not to judge projects. These are signals, not truth; everything is inferred from public data (internal mirrors/private work won’t show up). Quick start: pip install oss-sustain-guard export GITHUB_TOKEN=... os4g check It uses GitHub GraphQL with local caching (no telemetry; token not uploaded/stored), and supports multiple ecosystems (Python/JS/Rust/Go/Java/etc.). Repo: https://bit.ly/3LgfIrC I’d love feedback on metric choices/thresholds and wording that stays respectful. If you have examples where these signals break down, please share. https://bit.ly/4jveR2S January 5, 2026 at 02:58PM

Show HN: RepoReaper – AST-aware, JIT-loading code audit agent (Python/AsyncIO) https://bit.ly/4st8qkP

Show HN: RepoReaper – AST-aware, JIT-loading code audit agent (Python/AsyncIO) OP here. I built RepoReaper to solve code context fragmentation in RAG. Unlike standard chat-with-repo tools, it simulates a senior engineer's workflow: it parses Python AST for logic-aware chunking, uses a ReAct loop to JIT-fetch missing file dependencies from GitHub, and employs hybrid search (BM25+Vector). It also generates Mermaid diagrams for architecture visualization. The backend is fully async and persists state via ChromaDB. Link: https://bit.ly/3NfdxoC https://bit.ly/3NfdxoC January 6, 2026 at 12:55AM

Show HN: Live VNC for web agents – debugging native captcha on Cloud Run https://bit.ly/4blgo9B

Show HN: Live VNC for web agents – debugging native captcha on Cloud Run Hi HN, Bhavani here (rtrvr.ai). We build DOM-native web agents (no screenshot-based vision, no CDP/Playwright debugger-port control). We handle captchas natively including Google reCAPTCHA image challenges by traversing cross-origin iframes and shadow DOM. The latency is high on this one currently. The problem: when debugging image selection captchas ("select all images with traffic lights"), logs don't tell you why the agent clicked the wrong tiles. I found myself staring at execution logs thinking "did it even see the grid correctly?" and realized I just wanted to watch it work. So we built live VNC view + takeover for serverless Chrome workers on Cloud Run. Key learnings: 1. Session affinity is best-effort; "attach later" can hit a different instance 2. A separate relay service that pairs viewer↔runner by short-lived tokens makes attach deterministic 3. Runner stays clean: concurrency=1, one browser per container, no mixed traffic Would love feedback from folks who've shipped similar: 1. What replaced VNC for you (WebRTC etc) and why? 2. Best approach for recording/replay without huge storage? 3. How do you handle "attach later" safely in serverless? https://bit.ly/3YsjOjj January 5, 2026 at 08:08AM

Sunday, 4 January 2026

Show HN: Vho – AST-based analysis for better AI refactoring of large codebases https://bit.ly/3Nuhl5t

Show HN: Vho – AST-based analysis for better AI refactoring of large codebases https://bit.ly/45vWipp January 5, 2026 at 03:24AM

Show HN: CloudSlash – Find AWS waste and generate Terraform state rm commands https://bit.ly/3N3Rr8C

Show HN: CloudSlash – Find AWS waste and generate Terraform state rm commands We've all been there: You find an unused NAT Gateway costing $45/mo. You delete it in the AWS console to stop the billing immediately. But the next time you run terraform plan, it fails because of state drift. Now you have to manually run terraform state rm or import it back to fix the drift. It's tedious, so often we just leave the waste running. I built CloudSlash to automate the cleanup and the state surgery. It’s written in Go (using BubbleTea for the TUI) and solves two engineering problems: 1. Finding "hollow" resources (the graph). Most cost tools just check CloudWatch metrics (CPU < 5%). That creates too much noise. Instead, I build an in-memory graph of the infrastructure to find structural waste. Example: An "Active" ELB. It has healthy targets, so metrics look good. But if you traverse the graph (ELB -> Instance -> Subnet -> Route Table), you might see the Route Table has no path to an Internet Gateway. The ELB is functionally dead, even if AWS reports it as "healthy." 2. The state mapping. Deleting the resource in AWS is easy. The challenge is mapping a physical ID (e.g., nat-0a1b2c) back to its Terraform address (e.g., module.vpc.aws_nat_gateway.public[0]) so you can remove it from the state file programmatically. I wrote a parser that reads your local .tfstate, handles the complex JSON structure (including nested modules and for_each outputs), and generates a remediation script. It outputs a shell script (fix_terraform.sh) that runs the necessary terraform state rm commands for you. It never writes to your .tf files directly—it just hands you the script to review and run. The core logic, scanner, and TUI are open source (AGPLv3). I charge a one-time license for the feature that auto-generates the fix scripts for developers , but the forensic analysis/detection is free. Repo: https://bit.ly/44Ulcig January 5, 2026 at 03:58AM

Show HN: H-1B Salary Data Explorer https://bit.ly/3YXKyZ2

Show HN: H-1B Salary Data Explorer Excited to share my New Year’s project. For a long time, I’ve wanted to build H-1B data directly into Levels.fyi. Every time I went looking for this data elsewhere, it was a frustrating experience to use. Most H-1B sites felt antiquated, unintuitive, cluttered with ads, or just overwhelming to use. The data was there, but it wasn’t usable, and definitely not pleasant to explore. So out of that frustration, I decided to build the H-1B data experience I personally wanted to use. Right into Levels.fyi. https://bit.ly/49kZ3uV Some other pages I'm excited about: Wage Heatmap: https://bit.ly/49uACeK Company H-1B Footprints: https://bit.ly/49lYwsK Highest Paying H-1B Jobs: https://bit.ly/49nM23S Top H-1B Cities: https://bit.ly/3KYVSkz Top Company Sponsors: https://bit.ly/3YoE3OM Would love any feedback, it's definitely still a work in progress. January 4, 2026 at 11:16PM

Saturday, 3 January 2026

Show HN: Lock In – A goal Mac tracker controlled by commands (7 Days Free) https://bit.ly/49fSLN6

Show HN: Lock In – A goal Mac tracker controlled by commands (7 Days Free) I built a task/goal tracker where the entire UI is one input field. The idea: your goals live in four quadrants (daily, weekly, monthly, yearly). Everything happens through commands. The app docks to the side of your screen. Adding a goal: /d 50 pushups Chain them: /d 50 pushups /w 3 gym sessions /m finish project /y learn piano Updating progress: Create an alias with /alias p pushups, then just type 25 p to add 25. Three characters. Review your week with /review 7d. Rename goals, change targets, convert between quadrants—all through commands. Each quadrant auto-resets at the right interval (daily at midnight, weekly on Monday, etc). You don't manage anything. Why I built it this way: I kept bouncing between productivity apps looking for something faster. Nothing stuck because they all wanted me to click through menus and organise things. I just wanted to type and move on. So I made something deliberately constrained. One input. Four quadrants. No settings screen. No integrations. The lack of features is the point. Curious what the HN crowd thinks—especially if the command syntax feels intuitive or too obscure. Still iterating. https://bit.ly/4q2uYHw January 3, 2026 at 10:03PM

Show HN: Auxide- a Real-Time Audio Graph Library for Rust https://bit.ly/3Ncpw6m

Show HN: Auxide- a Real-Time Audio Graph Library for Rust Auxide is a Rust library for building real-time audio processing graphs. It provides a low-level, deterministic kernel for executing directed acyclic graphs (DAGs) of audio nodes, with a focus on real-time safety and correctness. https://bit.ly/4aKaXks January 4, 2026 at 01:23AM

Show HN: Til.re – The URL is your timer, no signup required https://bit.ly/4pqUxRn

Show HN: Til.re – The URL is your timer, no signup required https://bit.ly/4pqiIzD January 4, 2026 at 12:50AM

Friday, 2 January 2026

Show HN: Website that plays the lottery every second https://bit.ly/4jr6sh1

Show HN: Website that plays the lottery every second https://bit.ly/4aDeTTW January 3, 2026 at 01:12AM

Show HN: A Bloomberg terminal for finding fresh powder (DuckDB WASM) https://bit.ly/3MV8tG2

Show HN: A Bloomberg terminal for finding fresh powder (DuckDB WASM) https://bit.ly/4q1AZEh January 3, 2026 at 12:58AM

Show HN: Go-Highway – Portable SIMD for Go https://bit.ly/4sFi5Fl

Show HN: Go-Highway – Portable SIMD for Go Go 1.26 adds native SIMD via GOEXPERIMENT=simd. This library provides a portability layer so the same code runs on AVX2, AVX-512, or falls back to scalar. Inspired by Google's Highway C++ library. Includes vectorized math (exp, log, sin, tanh, sigmoid, erf) since those come up a lot in ML/scientific code and the stdlib doesn't have SIMD versions. algo.SigmoidTransform(input, output) Requires go1.26rc1. Feedback welcome. https://bit.ly/49zNdhI January 2, 2026 at 11:36PM

Thursday, 1 January 2026

Show HN: Turning 100-plus comments HN threads into readable discussions https://bit.ly/49k29zp

Show HN: Turning 100-plus comments HN threads into readable discussions HN has some of the best discussions on the internet, but I don’t love reading 100 comments to find 10 great insights. This site analyzes top HN threads with LLMs and summarizes the key ideas, disagreements, and resources — while preserving links to the original discussion. Useful for revisiting old threads as well. Updated daily, manual-assisted for quality, no spam, fan project only. Would love thoughts from the community. https://bit.ly/3YkvvIU January 2, 2026 at 03:45AM

Show HN: Stealth and Browsers and Solvers in Rust https://bit.ly/4aBCCnx

Show HN: Stealth and Browsers and Solvers in Rust hey guys what's up, happy new year to all of you! so basically the link above is a fork of the chromiumoxide crate but with stealth patches implemented using rebrowser as a reference. it plugs runtime.enable and common automation flags, enforces some hardware consistency through profiles and has some convenience features and it's still early but for starters it can pass most of the common detection tests i prefer writing my applications in compiled languages but recently been needing to go into browser automation more and more and always felt that the space for rust didn't have much of the variety that the node/python counterparts had, so this is my attempt to give some life to it, well to solve my needs at least, but i hope someone else finds it useful too! i needed a stealth browser in rust because my need was mostly around captcha solving, so there's a turnstile solver here too and yeah i know there's a lot of them around but having it in rust allows me to integrate it into my application so much better and avoid the mess of so many external services and yeah my use case required not only cloudflare but geetest too so i ported xkiann's python solver to rust too, with some modifications to make it deobfuscate automatically and added support for multi turn verification and user_info parameters for sites that need it both solvers have C FFI bindings for integration with other languages! https://bit.ly/49nxFfS - chromiumoxide stealth fork https://bit.ly/4aGeccC - cloudflare solver https://bit.ly/49hiipf - geetest solver more details on the github repo, im falling asleep so goodnight HN and happy new year again much love to you all! https://bit.ly/49nxFfS January 2, 2026 at 01:33AM

Show HN: Enroll, a tool to reverse-engineer servers into Ansible config mgmt https://bit.ly/3L7Jz5t

Show HN: Enroll, a tool to reverse-engineer servers into Ansible config mgmt Happy new year folks! This tool was born out of a situation where I had 'inherited' a bunch of servers that were not under any form of config management. Oh, the horror... Enroll 'harvests' system information such as what packages are installed, what services are running, what files have 'differed' from their out-of-the-box defaults, and what other custom snowflake data might exist. The harvest state data can be kept as its own sort of SBOM, but also can be converted in a mere second or two into fully-functional Ansible roles/playbooks/inventory. It can be run remotely over SSH or locally on the machine. Debian and Redhat-like systems are supported. There is also a 'diff' mode to detect drift over time. (Years ago I used Puppet instead of Ansible and miss the agent/server model where it would check in and re-align to the expected state, in case people were being silly and side-stepping the config management altogether). For now, diff mode doesn't 'enforce' but is just capable of notification (webhook, email, stdout) if changes occur. Since making the tool, I've found that it's even useful for systems where you already have in Ansible, in that it can detect stuff you forgot to put into Ansible in the first place. I'm now starting to use it as a 'DR strategy' of sorts: still favoring my normal Ansible roles day-to-day (they are more bespoke and easier to read), but running enroll with '--dangerous --sops' in the background periodically as a 'dragnet' catch-all, just in case I ever need it. Bonus: it also can use my other tool JinjaTurtle, which converts native config files into Jinja2 templates / Ansible vars. That one too was born out of frustration, converting a massive TOML file into Ansible :) Anyway, hope it's useful to someone other than me! The website has some demos and more documentation. Have fun every(any)-one. https://bit.ly/4sBBeIa January 1, 2026 at 01:23AM