Show HN: Ghidra MCP Server – 110 tools for AI-assisted reverse engineering
The article describes the development of a plugin for the Ghidra software reverse engineering framework that adds support for the Minecraft Protocol (MCP), allowing for the analysis and understanding of Minecraft server software and communication protocols.
Show HN: Craftplan – I built my wife a production management tool for her bakery
My wife was planning to open a micro-bakery. We looked at production management software and it was all either expensive or way too generic. The actual workflows for a small-batch manufacturer aren't that complex, so I built one and open-sourced it.
Craftplan handles recipes (versioned BOMs with cost rollups), inventory (lot traceability, demand forecasting, allergen tracking), orders, production batch planning, and purchasing. Built with Elixir, Ash Framework, Phoenix LiveView, and PostgreSQL.
Live demo: https://craftplan.fly.dev (test@test.com / Aa123123123123)
GitHub: https://github.com/puemos/craftplan
Show HN: SlitherPong, a hybrid of the Snake and Pong video games
Show HN: Nocterm – Flutter-inspired TUI framework with hot reload (Dart)
Over the past couple of months I've been working on a TUI framework heavily inspired by Flutter, written in Dart.
The API is modeled after Flutter. StatefulComponent, setState(), Row, Column, Expanded, ListView.
There have been some discussions about performance of TUIs recently, and I think Dart is actually a great language for writing TUIs in. It compiles down to fast native code, is cross-platform, and has great developer ergonomics. JIT compilation for development (which enables hot reload) and AOT compilation for production binaries.
What's really cool is stateful hot reload. If you save your file with some modification, Nocterm will pick it up and update the TUI in real time without restarting.
Under the hood:
- Differential rendering: virtual terminal buffer, only redraws changed cells - Declarative component model (same as Flutter): Component → Element → RenderObject pipeline - 45+ components: layout, scrolling, text input, markdown, animations, mouse support - Built-in test framework: pump a component, send keys, assert on terminal state - Theming: 6 built-in themes, auto-detects terminal dark/light mode
Example:
void main() async { await runApp(Counter()); }
class Counter extends StatefulComponent { int _count = 0;
Component build(BuildContext context) {
return Focusable(
onKeyEvent: (event) {
if (event.logicalKey == LogicalKey.space) {
setState(() => _count++);
return true;
}
return false;
},
child: Center(child: Text('Count: $_count')),
);
}
}I tried a couple of existing TUI frameworks but missed the Flutter DX I've learned to love, so I built my own (for better or worse...).
I've been using Nocterm to build vide_cli (https://github.com/Norbert515/vide_cli), a coding agent in the terminal.
There's some cool stuff coming up too, like virtual text selection in alternate screen mode. Since TUI apps take over the terminal, normal text selection breaks. This reimplements it at the framework level so users can select and copy text naturally.
Repository: https://github.com/Norbert515/nocterm
Happy to answer questions about the architecture, hot reload implementation, or anything else.
Show HN: Two-week creative lab for developers building with real-time AI video
The Daydream team is kicking off a new cohort of the Daydream AI Video Program, a hands-on, two-week program for developers and creative technologists working with real-time AI video.
The program runs February 9–20. You'll get 1:1 support and access to cloud infrastructure, and you’ll get a chance to work alongside others building in this space. We'll give out more than $5K in prizes during the two weeks. It's free to participate. Applications close Feb 6.
Apply here: https://daydream.live/interactive-ai-video-program?utm_sourc...
Happy to answer questions about the program or the tech.
Show HN: Mmdr – 1000x faster Mermaid rendering in pure Rust (no browser)
I was building a Rust-based agentic coding TUI and needed to render Mermaid diagrams. Noticed the official mermaid-cli spawns a full browser instance (Puppeteer/Chrome) just to render diagrams. Decided to fix this.
mmdr is a native Rust renderer. No browser, no Node.js.
mermaid-cli: ~3000ms per diagram
mmdr: ~3ms per diagram
Supports 13 diagram types: flowchart, sequence, class, state, ER, pie, gantt, timeline, journey, mindmap, git graph, XY chart, and quadrant.
Show HN: Teaching AI agents to write better GraphQL
We’ve been seeing more and more developers use AI coding agents directly in their GraphQL workflows. The problem is the agents tend to fall back to generic or outdated GraphQL patterns.
After correcting the same issues over and over, we ended up packaging the GraphQL best practices and conventions we actually want agents to follow as reusable “Skills,” and open-sourced them here: https://github.com/apollographql/skills
Install with `npx skills add apollographql/skills` and the agent starts producing named operations with variables, `[Post!]!` list patterns, and more consistent client-side behavior without having to restate those rules in every prompt.
We’re hopeful agents can now write GraphQL the way we'd write it ourselves. Try out the repo and let us know what you think.
Show HN: Instantly surface the assumptions behind a UI screenshot
Many UI issues I’ve seen aren’t visual problems but unchecked assumptions about users.
I built a small tool that takes a UI screenshot and makes those assumptions explicit, along with the risk of being wrong.
It’s meant as a quick design pre-mortem or critique before shipping.
Would love feedback on whether this way of critiquing UI is actually useful.
Show HN: Crnd – Cron daemon built for scripts and AI agents
Been using cron forever but every modern alternative wants me to click through dashboards or write 50 lines of yaml. So I built crnd (pronounced "crowned") - just a CLI that does what you tell it.
Main thing: no prompts, no interactive wizards. Just commands that work in scripts.
`crnd schedule -n backup -s "0 2 * * *" -- rsync -a ~/docs ~/backup`
Thats it. Jobs live in a toml file that hot-reloads. Daemon runs as a real OS process, not some container abstraction.
Also supports one-time scheduled jobs which cron cant do: `crnd schedule -n reminder -i 5m -- say "stretch break"`
Built it mainly because I'm using AI coding agents and they kept choking on interactive prompts. Now they can just parse --json output and schedule stuff.
No cloud, no docker, no account. Just a single binary.
https://github.com/ysm-dev/crnd
Would love feedback - especially if youre automating things with scripts or agents.
Show HN: Webhook Skills – Agent skills for webhook providers and best practices
I built a collection of webhook skills because AI coding agents are surprisingly bad at webhook integrations. The generated code looks reasonable until you run it, then signature verification fails, raw body handling is wrong, or the middleware order breaks everything.
PostHog's research on LLM code generation (https://posthog.com/blog/correct-llm-code-generation) found that agents produce more reliable code when referencing known-working examples rather than reconstructing from training data. That's the approach here.
`webhook-skills` is a collection of provider-specific webhook implementations and best practices guides built on the Agent Skills spec (agentskills.io):
- Runnable examples (currently Express, Next.js, FastAPI, with more frameworks coming)
- Signature verification with provider-specific gotchas documented
- Best-practice patterns: idempotency, error handling, retry logic
- 11 providers at launch (Stripe, Shopify, GitHub, OpenAI, Clerk, Paddle, others), expanding based on my needs or requests.
Example: # list skills
npx skills add hookdeck/webhook-skills --list
# install skills
npx skills add hookdeck/webhook-skills --skill stripe-webhooks --skill webhook-handler-patterns
Works with Claude Code, Cursor, Copilot. The examples are useful even without an agent: minimal, tested handlers you can copy directly.PRs welcome for new providers and frameworks. I also built an AI-powered generator that automatically creates new provider skills. Point it at webhook docs, and it researches the signature scheme, generates verification code for each framework, writes tests, and opens a PR.
Show HN: Zerobrew – Alternative to Homebrew
Zerobrew is an open-source project that aims to create a non-alcoholic beer with the taste and mouthfeel of traditional beer, using innovative brewing techniques and novel ingredients to achieve a similar flavor profile without the alcohol content.
Show HN: GitHub Browser Plugin for AI Contribution Blame in Pull Requests
The article discusses a new feature in GitHub that allows users to see which AI model was used to contribute to a pull request, providing transparency and accountability around the use of AI in software development.
Show HN: OpenShears – I built an uninstaller because OpenClaw refuses to die
Hey HN, I've been using OpenClaw for a few months as my local LLM gateway. It was genuinely fun — the convenience of routing multiple models through a single endpoint is hard to beat. But along the way, I stumbled upon a few surprises that made me uncomfortable:
- Config files scattered in unexpected places (~/.openclaw, ~/.clawdbot, and more) - Background processes that respawn after termination - Logs that quietly accumulate without rotation - Cached data persisting long after I thought I'd removed it
None of this is necessarily malicious, but when I decided to move on, I wanted a clean break — not leftover artifacts haunting my system.
So I built OpenShears: a CLI tool that scans, detects, and removes all traces of OpenClaw. It's intentionally aggressive but always asks for confirmation before deleting anything.
This is fully open source (MIT). If you've found other hidden files or processes that OpenShears missed, PRs are very welcome. Let's make this the definitive cleanup tool.
Show HN: Octosphere, a tool to decentralise scientific publishing
Hey HN! I went to an ATProto meetup last week, and as a burnt-out semi-academic who hates academic publishing, I thought there might be a cool opportunity to build on Octopus (https://www.octopus.ac/), so I got a bit excited over the weekend and built Octosphere.
Hopefully some of you find it interesting! Blog post here: https://andreasthinks.me/posts/octosphere/octosphere.html
Show HN: Safe-now.live – Ultra-light emergency info site (<10KB)
After reading "During Helene, I Just Wanted a Plain Text Website" on Sparkbox (https://news.ycombinator.com/item?id=46494734) , I built safe-now.live – a text-first emergency info site for USA and Canada. No JavaScript, no images, under 10KB. Pulls live FEMA disasters, NWS alerts, weather, and local resources. This is my first live website ever so looking for critical feedback on the website. Please feel free to look around.
https://safe-now.live
Show HN: Sandboxing untrusted code using WebAssembly
Hi everyone,
I built a runtime to isolate untrusted code using wasm sandboxes.
Basically, it protects your host system from problems that untrusted code can cause. We’ve had a great discussion about sandboxing in Python lately that elaborates a bit more on the problem [1]. In TypeScript, wasm integration is even more natural thanks to the close proximity between both ecosystems.
The core is built in Rust. On top of that, I use WASI 0.2 via wasmtime and the component model, along with custom SDKs that keep things as idiomatic as possible.
For example, in Python we have a simple decorator:
from capsule import task
@task(
name="analyze_data",
compute="MEDIUM",
ram="512mb",
allowed_files=["./authorized-folder/"],
timeout="30s",
max_retries=1
)
def analyze_data(dataset: list) -> dict:
"""Process data in an isolated, resource-controlled environment."""
# Your code runs safely in a Wasm sandbox
return {"processed": len(dataset), "status": "complete"}
And in TypeScript we have a wrapper: import { task } from "@capsule-run/sdk"
export const analyze = task({
name: "analyzeData",
compute: "MEDIUM",
ram: "512mb",
allowedFiles: ["./authorized-folder/"],
timeout: 30000,
maxRetries: 1
}, (dataset: number[]) => {
return {processed: dataset.length, status: "complete"}
});
You can set CPU (with compute), memory, filesystem access, and retries to keep precise control over your tasks.It's still quite early, but I'd love feedback. I’ll be around to answer questions.
GitHub: https://github.com/mavdol/capsule
[1] https://news.ycombinator.com/item?id=46500510
Show HN: Ask your AI what your devs shipped this week
If you're a non-technical founder, you probably have no idea what your developers did last week. You ask, they say "refactored the auth module" and you nod pretending you understand.
Gitmore reads your GitHub activity and turns it into a simple report: what was built, what was fixed, what's stuck. Written for humans, not engineers.
It shows up in your inbox. You read it in 2 minutes. Done.
Here's what a report looks like: https://www.gitmore.io/example.html
Quick demo: https://demo.arcade.software/5tZyFDhp1myCosw6e1po
Free tier available. Happy to hear what you'd want from something like this.
Show HN: C discrete event SIM w stackful coroutines runs 45x faster than SimPy
Hi all,
I have built Cimba, a multithreaded discrete event simulation library in C.
Cimba uses POSIX pthread multithreading for parallel execution of multiple simulation trials, while coroutines provide concurrency inside each simulated trial universe. The simulated processes are based on asymmetric stackful coroutines with the context switching hand-coded in assembly.
The stackful coroutines make it natural to express agentic behavior by conceptually placing oneself "inside" that process and describing what it does. A process can run in an infinite loop or just act as a one-shot customer passing through the system, yielding and resuming execution from any level of its call stack, acting both as an active agent and a passive object as needed. This is inspired by my own experience programming in Simula67, many moons ago, where I found the coroutines more important than the deservedly famous object-orientation.
Cimba turned out to run really fast. In a simple benchmark, 100 trials of an M/M/1 queue run for one million time units each, it ran 45 times faster than an equivalent model built in SimPy + Python multiprocessing. The running time was reduced by 97.8 % vs the SimPy model. Cimba even processed more simulated events per second on a single CPU core than SimPy could do on all 64 cores.
The speed is not only due to the efficient coroutines. Other parts are also designed for speed, such as a hash-heap event queue (binary heap plus Fibonacci hash map), fast random number generators and distributions, memory pools for frequently used object types, and so on.
The initial implementation supports the AMD64/x86-64 architecture for Linux and Windows. I plan to target Apple Silicon next, then probably ARM.
I believe this may interest the HN community. I would appreciate your views on both the API and the code. Any thoughts on future target architectures to consider?
Docs: https://cimba.readthedocs.io/en/latest/
Repo: https://github.com/ambonvik/cimba
Show HN: BPU – An embedded scheduler for stable UART pipelines
I recently came across this small ESP32 project and found the design ideas behind it very interesting.
BPU (Batch Processing Unit) is a lightweight embedded scheduling core focused on keeping output pipelines stable under pressure (UART backpressure, limited bandwidth, bursty producers).
Instead of blocking or growing unbounded queues, it: enforces per-tick byte budgets, coalesces redundant events, degrades gracefully under sustained load, exposes detailed runtime statistics.
The repository includes design notes, flow diagrams, and real execution logs, which makes the runtime behavior very transparent.
Repo: https://github.com/choihimchan/bpu_v2_9b_r1
I’ve been working on an ESP-IDF backend for it, and reading through the docs gave me a lot of ideas about observability and backpressure handling in small systems.
Curious what others think about this approach.
Show HN: AI Blocker by Kiddokraft
i made an ai blocker blocks ai relate content. if want download it from chrome or safari extension store, consider donate :)
Show HN: Find better round trips – TSP challenge
The article discusses the Traveling Salesman Problem (TSP), a classic optimization challenge, and how a company called GraphHopper has developed a game-like application to help users understand and solve this problem.
Show HN: Latex-wc – Word count and word frequency for LaTeX projects
I was revising my proposal defense and kept feeling like I was repeating the same term. In a typical LaTeX project split across many .tex files, it’s awkward to get a quick, clean word-frequency view without gluing everything together or counting LaTeX commands/math as “words”.
So I built latex-wc, a small Python CLI that:
- extracts tokens from LaTeX while ignoring common LaTeX “noise” (commands, comments, math, refs/cites, etc.)
- can take a single .tex file or a directory and recursively scan all *.tex files
- prints a combined report once (total words, unique words, top-N frequencies)
Fastest way to try it is `uvx latex-wc [path]` (file or directory). Feedback welcome, especially on edge cases where you think the heuristic filters are too aggressive or not aggressive enough.
Show HN: PII-Shield – Log Sanitization Sidecar with JSON Integrity (Go, Entropy)
What PII-Shield does: It's a K8s sidecar (or CLI tool) that pipes application logs, detects secrets using Shannon entropy (catching unknown keys like "sk-live-..." without predefined patterns), and redacts them deterministically using HMAC.
Why deterministic? So that "pass123" always hashes to the same "[HIDDEN:a1b2c]", allowing QA/Devs to correlate errors without seeing the raw data.
Key features: 1. JSON Integrity: It parses JSON, sanitizes values, and rebuilds it. It guarantees valid JSON output for your SIEM (ELK/Datadog). 2. Entropy Detection: Uses context-aware entropy analysis to catch high-randomness strings. 3. Fail-Open: Designed as a transparent pipe wrapper to preserve app uptime.
The project is open-source (Apache 2.0).
Repo: https://github.com/aragossa/pii-shield Docs: https://pii-shield.gitbook.io/docs/
I'd love your feedback on the entropy/threshold logic!
Show HN: Ec – a terminal Git conflict resolver inspired by IntelliJ
Hi HN, I built ec because my friends who are new to development kept getting stuck on Git conflicts.
Most TUI merge tools felt hard to use or non-intuitive for them. The only flow they found easy was the IntelliJ (JetBrains) conflict resolver, so I recreated that experience in the terminal.
ec is a terminal-native, 3-pane conflict resolver with a focused, step-by-step flow. If you try it and leave feedback, I would be really grateful. Thanks!
Repo: https://github.com/chojs23/ec
Show HN: Adboost – A browser extension that adds ads to every webpage
The article describes AdBoost, a powerful machine learning algorithm that combines weak classifiers to create a strong, accurate classifier. It provides a detailed explanation of the algorithm's principles and implementation, making it a valuable resource for researchers and developers interested in boosting techniques.
Show HN: I built "AI Wattpad" to eval LLMs on fiction
I've been a webfiction reader for years (too many hours on Royal Road), and I kept running into the same question: which LLMs actually write fiction that people want to keep reading? That's why I built Narrator (https://narrator.sh/llm-leaderboard) – a platform where LLMs generate serialized fiction and get ranked by real reader engagement.
Turns out this is surprisingly hard to answer. Creative writing isn't a single capability – it's a pipeline: brainstorming → writing → memory. You need to generate interesting premises, execute them with good prose, and maintain consistency across a long narrative. Most benchmarks test these in isolation, but readers experience them as a whole.
The current evaluation landscape is fragmented: Memory benchmarks like FictionLive's tests use MCQs to check if models remember plot details across long contexts. Useful, but memory is necessary for good fiction, not sufficient. A model can ace recall and still write boring stories.
Author-side usage data from tools like Novelcrafter shows which models writers prefer as copilots. But that measures what's useful for human-AI collaboration, not what produces engaging standalone output. Authors and readers have different needs.
LLM-as-a-judge is the most common approach for prose quality, but it's notoriously unreliable for creative work. Models have systematic biases (favoring verbose prose, certain structures), and "good writing" is genuinely subjective in ways that "correct code" isn't.
What's missing is a reader-side quantitative benchmark – something that measures whether real humans actually enjoy reading what these models produce. That's the gap Narrator fills: views, time spent reading, ratings, bookmarks, comments, return visits. Think of it as an "AI Wattpad" where the models are the authors.
I shared an early DSPy-based version here 5 months ago (https://news.ycombinator.com/item?id=44903265). The big lesson: one-shot generation doesn't work for long-form fiction. Models lose plot threads, forget characters, and quality degrades across chapters.
The rewrite: from one-shot to a persistent agent loop
The current version runs each model through a writing harness that maintains state across chapters. Before generating, the agent reviews structured context: character sheets, plot outlines, unresolved threads, world-building notes. After generating, it updates these artifacts for the next chapter. Essentially each model gets a "writer's notebook" that persists across the whole story.
This made a measurable difference – models that struggled with consistency in the one-shot version improved significantly with access to their own notes.
Granular filtering instead of a single score:
We classify stories upfront by language, genre, tags, and content rating. Instead of one "creative writing" leaderboard, we can drill into specifics: which model writes the best Spanish Comedy? Which handles LitRPG stories with Male Leads the best? Which does well with romance versus horror?
The answers aren't always what you'd expect from general benchmarks. Some models that rank mid-tier overall dominate specific niches.
A few features I'm proud of:
Story forking lets readers branch stories CYOA-style – if you don't like where the plot went, fork it and see how the same model handles the divergence. Creates natural A/B comparisons.
Visual LitRPG was a personal itch to scratch. Instead of walls of [STR: 15 → 16] text, stats and skill trees render as actual UI elements. Example: https://narrator.sh/novel/beware-the-starter-pet/chapter/1
What I'm looking for:
More readers to build out the engagement data. Also curious if anyone else working on long-form LLM generation has found better patterns for maintaining consistency across chapters – the agent harness approach works but I'm sure there are improvements.
Show HN: OpenClaw Assistant – Replace Google Assistant with Any AI
The article describes the development of an open-source artificial intelligence assistant named OpenClaw, which aims to be a versatile and customizable tool for various tasks, from personal assistance to task automation and information processing.
Show HN: Yutovo – visual online and desktop calculator inside a text editor
Hi all,
I build a calculator that displays and edits formulas in a familiar graphical form, has a WYSIWYG editor, can work with numbers of any size, supports physical units, and has many other features.
There are online and desktop (Linux, Windows) versions.
The project is open source and consists of these ones:
https://github.com/denprog/yutovo-editor — a text and formula editor with output to a custom window. Built from scratch, no dependencies on other editors. C++, boost.
https://github.com/denprog/yutovo-desktop — a desktop application based on Qt.
https://github.com/denprog/yutovo-web — an online version based on Vue.js and Quasar. The remaining components are compiled for Wasm.
https://github.com/denprog/yutovo-calculator — a string expression calculator based on boost.spirit.
https://github.com/denprog/yutovo-server — a web server for a website based on Drogon.
https://github.com/denprog/yutovo-solver — a calculator broker. C++.
https://github.com/denprog/yutovo-logger — a logger based on spdlog.
There are versions for Flatpak, Snap, Debian, and Windows. You can save your documents on the website after registering.
I welcome any comments, bugs, shortcomings, or suggestions.
Show HN: difi – A Git diff TUI with Neovim integration (written in Go)
The article discusses the DIFI project, an open-source initiative that aims to create a decentralized, interoperable finance infrastructure. It highlights the project's goals of enabling seamless cross-blockchain transactions and fostering a more inclusive and transparent financial ecosystem.
Show HN: Inverting Agent Model (App as Clients, Chat as Server and Reflection)
Hello HN. I’d like to start by saying that I am a developer who started this research project to challenge myself. I know standard protocols like MCP exist, but I wanted to explore a different path and have some fun creating a communication layer tailored specifically for desktop applications.
The project is designed to handle communication between desktop apps in an agentic manner, so the focus is strictly on this IPC layer (forget about HTTP API calls).
At the heart of RAIL (Remote Agent Invocation Layer) are two fundamental concepts. The names might sound scary, but remember this is a research project:
Memory Logic Injection + Reflection Paradigm shift: The Chat is the Server, and the Apps are the Clients.
Why this approach? The idea was to avoid creating huge wrappers or API endpoints just to call internal methods. Instead, the agent application passes its own instance to the SDK (e.g., RailEngine.Ignite(this)).
Here is the flow that I find fascinating:
-The App passes its instance to the RailEngine library running inside its own process.
-The Chat (Orchestrator) receives the manifest of available methods.The Model decides what to do and sends the command back via Named Pipe.
-The Trigger: The RailEngine inside the App receives the command and uses Reflection on the held instance to directly perform the .Invoke().
Essentially, I am injecting the "Agent Logic" directly into the application memory space via the SDK, allowing the Chat to pull the trigger on local methods remotely.
A note on the Repo: The GitHub repository has become large. The core focus is RailEngine and RailOrchestrator. You will find other connectors (C++, Python) that are frankly "trash code" or incomplete experiments. I forced RTTR in C++ to achieve reflection, but I'm not convinced by it. Please skip those; they aren't relevant to the architectural discussion.
I’d love to focus the discussion on memory-managed languages (like C#/.NET) and ask you:
-Architecture: Does this inverted architecture (Apps "dialing home" via IPC) make sense for local agents compared to the standard Server/API model?
-Performance: Regarding the use of Reflection for every call—would it be worth implementing a mechanism to cache methods as Delegates at startup? Or is the optimization irrelevant considering the latency of the LLM itself?
-Security: Since we are effectively bypassing the API layer, what would be a hypothetical security layer to prevent malicious use? (e.g., a capability manifest signed by the user?)
I would love to hear architectural comparisons and critiques.