🛠️ Hacker News Tools

Showing 241–260 of 2458 tools from Hacker News

Last Updated
April 20, 2026 at 08:00 PM

Android Developer Verification

Hacker News (score: 236)

[Other] Android Developer Verification

Found: March 30, 2026 ID: 3975

[Other] What we learned building 100 API integrations with OpenCode

Found: March 30, 2026 ID: 3977

[API/SDK] OCR for construction documents does not work, we fixed it So we&#x27;ve built an API and trained models that detects fixtures, extracts schedules, and analyzes construction documents. Check us out!<p>More examples: - <a href="https:&#x2F;&#x2F;www.getanchorgrid.com&#x2F;developer&#x2F;docs&#x2F;endpoints&#x2F;drawings-doors" rel="nofollow">https:&#x2F;&#x2F;www.getanchorgrid.com&#x2F;developer&#x2F;docs&#x2F;endpoints&#x2F;drawi...</a><p>Main website: - <a href="https:&#x2F;&#x2F;www.getanchorgrid.com&#x2F;developer" rel="nofollow">https:&#x2F;&#x2F;www.getanchorgrid.com&#x2F;developer</a><p>Why we did it: <a href="https:&#x2F;&#x2F;www.getanchorgrid.com&#x2F;developer&#x2F;docs&#x2F;changelog&#x2F;construction-drawings-are-data-prisons" rel="nofollow">https:&#x2F;&#x2F;www.getanchorgrid.com&#x2F;developer&#x2F;docs&#x2F;changelog&#x2F;const...</a>

Found: March 30, 2026 ID: 3968

[DevOps] Show HN: Coasts – Containerized Hosts for Agents Hi HN - We&#x27;ve been working on Coasts (“containerized hosts”) to make it so you can run multiple localhost instances, and multiple docker-compose runtimes, across git worktrees on the same computer. Here’s a demo: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=yRiySdGQZZA" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=yRiySdGQZZA</a>. There are also videos in our docs that give a good conceptual overview: <a href="https:&#x2F;&#x2F;coasts.dev&#x2F;docs&#x2F;learn-coasts-videos">https:&#x2F;&#x2F;coasts.dev&#x2F;docs&#x2F;learn-coasts-videos</a>.<p>Agents can make code changes in different worktrees in isolation, but it&#x27;s hard for them to test their changes without multiple localhost runtimes that are isolated and scoped to those worktrees as well. You can do it up to a point with port hacking tricks, but it becomes impractical when you have a complex docker-compose with many services and multiple volumes.<p>We started playing with Codex and Conductor in the beginning of this year and had to come up with a bunch of hacky workarounds to give the agents access to isolated runtimes. After bastardizing our own docker-compose setup, we came up with Coasts as a way for agents to have their own runtimes without having to change your original docker-compose.<p>A containerized host (from now on we’ll just say “coast” for short) is a representation of your project&#x27;s runtime, like a devcontainer but without the IDE stuff—it’s just focused on the runtime. You create a Coastfile at your project root and usually point to your project&#x27;s docker-compose from there. When you run `coast build` next to the Coastfile you will get a build (essentially a docker image) that can be used to spin up multiple Docker-in-Docker runtimes of your project.<p>Once you have a coast running, you can then do things like assign it to a worktree, with `coast assign dev-1 -w worktree-1`. The coast will then point at the worktree-1 root.<p>Under the hood the host project root and any external worktree directories are Docker-bind-mounted into the container at creation time but the &#x2F;workspace dir, where we run the services of the coast from, is a separate Linux bind mount that we create inside the running container. When switching worktrees we basically just do umount -l &#x2F;workspace, mount --bind &lt;path_to_worktree_root&gt;, mount --make-rshared &#x2F;workspace inside of the running coast. The rshared flag sets up mount propagation so that when we remount &#x2F;workspace, the change flows down to the inner Docker daemon&#x27;s containers.<p>The main idea is that the agents can continue to work host-side but then run exec commands against a specific coast instance if they need to test runtime changes or access runtime logs. This makes it so that we are harness agnostic and create interoperability around any agent or agent harness that runs host-side.<p>Each coast comes with its own set of dynamic ports: you define the ports you wish to expose back to the host machine in the Coastfile. You&#x27;re also able to &quot;checkout&quot; a coast. When you do that, socat binds the canonical ports of your coast (e.g. web 3000, db 5432) to the host machine. This is useful if you have hard coded ports in your project or need to do something like test webhooks.<p>In your Coastfile you point to all the locations on your host-machine where you store your worktrees for your project (e.g. ~&#x2F;.codex&#x2F;worktrees). When an agent runs `coast lookup` from a host-side worktree directory, it is able to find the name of the coast instance it is running on, so it can do things like call `coast exec dev-1 make tests`. If your agent needs to do things like test with Playwright it can so that host-side by using the dynamic port of your frontend.<p>You can also configure volume topologies, omit services and volumes that your agent doesn&#x27;t need, as well as share certain services host-side so you don&#x27;t add overhead to each coast instance. You can also do things like define strategies for how each service should behave after a worktree assignment change (e.g. none, hot, restart, rebuild). This helps you optimize switching worktrees so you don&#x27;t have to do a whole docker-compose down and up cycle every time.<p>We&#x27;d love to answer any questions and get your feedback!

Found: March 30, 2026 ID: 3967

[Other] CodingFont: A game to help you pick a coding font

Found: March 30, 2026 ID: 3966

[CLI Tool] Show HN: axil – A terminal user-interface for treesitter I initially wrote axil to help inspect and run queries against syntax trees for my treesitter-based language server implementation (<a href="https:&#x2F;&#x2F;github.com&#x2F;terror&#x2F;just-lsp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;terror&#x2F;just-lsp</a>), and have been working toward making this into something more useable :)

Found: March 30, 2026 ID: 3978

[CLI Tool] Show HN: Zerobox – Sandbox any command with file, network, credential controls I&#x27;m excited to introduce Zerobox, a cross-platform, single binary process sandboxing CLI written in Rust. It uses the sandboxing crates from the OpenAI Codex repo and adds additional functionalities like secret injection, SDK, etc.<p>Watch the demo: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=wZiPm9BOPCg" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=wZiPm9BOPCg</a><p>Zerobox follows the same sandboxing policy as Deno which is deny by default. The only operation that the command can run is reading files, all writes and network I&#x2F;O are blocked by default. No VMs, no Docker, no remote servers.<p>Want to block reads to &#x2F;etc?<p><pre><code> zerobox --deny-read=&#x2F;etc -- cat &#x2F;etc&#x2F;passwd cat: &#x2F;etc&#x2F;passwd: Operation not permitted </code></pre> How it works:<p>Zerobox wraps any commands&#x2F;programs, runs an MITM proxy and uses the native sandboxing solutions on each operating system (e.g BubbleWrap on Linux) to run the given process in a sandbox. The MITM proxy has two jobs: blocking network calls and injecting credentials at the network level.<p>Think of it this way, I want to inject &quot;Bearer OPENAI_API_KEY&quot; but I don&#x27;t want my sandboxed command to know about it, Zerobox does that by replacing &quot;OPENAI_API_KEY&quot; with a placeholder, then replaces it when the actual outbound network call is made, see this example:<p><pre><code> zerobox --secret OPENAI_API_KEY=$OPENAI_API_KEY --secret-host OPENAI_API_KEY=api.openai.com -- bun agent.ts </code></pre> Zerobox is different than other sandboxing solutions in the sense that it would allow you to easily sandbox any commands locally and it works the same on all platforms. I&#x27;ve been exploring different sandboxing solutions, including Firecracker VMs locally, and this is the closest I was able to get when it comes to sandboxing commands locally.<p>The next thing I&#x27;m exploring is `zerobox claude` or `zerobox openclaw` which would wrap the entire agent and preload the correct policy profiles.<p>I&#x27;d love to hear your feedback, especially if you are running AI Agents (e.g. OpenClaw), MCPs, AI Tools locally.

Found: March 30, 2026 ID: 3985

[Other] Queueing Requests Queues Your Capacity Problems, Too

Found: March 30, 2026 ID: 4002

[CLI Tool] Show HN: CLI to order groceries via reverse-engineered REWE API (Haskell) I just had the best time learning about the REWE (German supermarket chain) API, how they use mTLS and what the workflows are. Also `mitmproxy2swagger`[1] is a great tool to create OpenAPI spec automatically.<p>And then 2026 feels like the perfect time writing Haskell. The code is handwritten, but whenever I got stuck with the build system or was just not getting the types right, I could fall back to ask AI to unblock me. It was never that smooth before.<p>Finally the best side projects are the ones you actually use and this one will be used for all my future grocery shopping.<p>[1]<a href="https:&#x2F;&#x2F;github.com&#x2F;alufers&#x2F;mitmproxy2swagger" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;alufers&#x2F;mitmproxy2swagger</a>

Found: March 30, 2026 ID: 3986

[Other] Show HN: React-Rewrite – Figma for localhost that directly edits your codebase

Found: March 30, 2026 ID: 3971

[Other] Claude Code runs Git reset –hard origin/main against project repo every 10 mins

Found: March 29, 2026 ID: 3961

[Other] Build123d: A Python CAD programming library

Found: March 29, 2026 ID: 3976

[Other] Show HN: Crazierl – An Erlang Operating System Crazierl is an experimental&#x2F;hobby operating system based around BEAM.<p>I&#x27;ve linked the browser based demo; I don’t recommend using a phone; it does work, slowly, on the phones I tested, but it’s very awkward to use. You can share a link with a hashtag with your friends and click the consent checkbox, and it (should) link up into dist and I’ve also included a chat application you can start with chat:start(). (quit chat with &#x2F;quit, or use the shell menu with ctrl-g to switch between shells etc).<p>The browser demo relies on the v86 javascript x86 virtual machine. You can also run Crazierl on a real x86 system, but I’ve had mixed luck on modern systems, it uses some esoteric legacy VGA features and support for that isn’t getting better.<p>Crazierl is fairly limited: 32-bit x86, BIOS boot, only two NIC drivers virtio-net and realtek 8168. But it&#x27;s got enough to become part of an Erlang dist cluster. It also supports SMP, but it’s crashy with high core counts in qemu; there’s almost certainly several concurrency bugs in the kernel. There&#x27;s also a lot of excess tcp debug spew (sorry).<p>Source code is available (Apache) <a href="https:&#x2F;&#x2F;github.com&#x2F;russor&#x2F;crazierl&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;russor&#x2F;crazierl&#x2F;</a>

Found: March 29, 2026 ID: 3970

[Other] Show HN: DeepRepo – AI architecture diagrams from GitHub repos

Found: March 29, 2026 ID: 3963

[Other] An Introduction to Writing Systems and Unicode

Found: March 29, 2026 ID: 3989

[Other] Show HN: /slot-machine development (CC vs. Codex; CE vs. superpowers) I built an opensource skill that runs N implementations in parallel, has each one reviewed blind by a separate agent, then a judge picks the winner or synthesizes the best parts of each.<p>Each slot can use a different skill (CE:work in one vs superpowers:test-driven-development) and harness (CC vs. Codex). Or put different emphasis on each slot (functional vs. robustness). Also works for non-coding tasks (writing) and you can create custom slot-machines.<p>The main insight is simple enough: AI agents are probabilistic. The same spec produces different code every time; different designs, different bugs, different quality.So running parallel implementations can increase quality if we can judge effectively.<p>There is a real tradeoff here of increased time and tokens for quality but for production code this is often worth it; particularly on long running overnight loops on subscription plans. Also a simple way to learn which skills and harnesses actually work best for your codebase.<p>Appreciate any feedback &#x2F; PRs. This is early!

Found: March 29, 2026 ID: 3964

[Other] Emacs-libgterm: Terminal emulator for Emacs using libghostty-vt

Found: March 29, 2026 ID: 3996

[Other] Show HN: BreezePDF – Free, in-browser PDF editor BreezePDF lets you edit, sign, merge, compress, redact, OCR, fill forms, extract tables, and use 30+ more PDF tools — all in the browser, no sign-up. Files never leave your computer.<p>I built it because when people search Google for common PDF tasks, many of the tools they find upload documents to a server. I wanted an option that keeps files local instead.<p>I posted an earlier version on HN last spring: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43880962">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43880962</a><p>At the time it only supported a small set of features. Over the last 10 months I rebuilt large parts of it and expanded it to nearly 40 tools, including several ideas that came from comments in that earlier thread.<p>There is also now a desktop app for macOS, Windows, and Linux, plus a CLI&#x2F;SDK for developers.

Found: March 29, 2026 ID: 3962

[Other] Show HN: Sheet Ninja – Google Sheets as a CRUD Back End for Vibe Coders

Found: March 29, 2026 ID: 3952

[Other] Lat.md: Agent Lattice: a knowledge graph for your codebase, written in Markdown

Found: March 29, 2026 ID: 3953
Previous Page 13 of 123 Next