惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
F
Full Disclosure
Cloudbric
Cloudbric
Blog — PlanetScale
Blog — PlanetScale
W
WeLiveSecurity
N
News and Events Feed by Topic
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
GbyAI
GbyAI
C
Check Point Blog
B
Blog RSS Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Recorded Future
Recorded Future
The Last Watchdog
The Last Watchdog
N
News and Events Feed by Topic
T
The Blog of Author Tim Ferriss
O
OpenAI News
V
V2EX
人人都是产品经理
人人都是产品经理
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security @ Cisco Blogs
C
Cisco Blogs
Security Latest
Security Latest
S
Security Affairs
V
Visual Studio Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
Last Week in AI
Last Week in AI
AWS News Blog
AWS News Blog
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
博客园_首页
U
Unit 42
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
L
LINUX DO - 热门话题
H
Hacker News: Front Page

Hacker News: Front Page

SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads GitHub - GainSec/AutoProber: Hardware hacker’s flying probe automation stack for agent-driven target discovery, microscope mapping, safety-monitored CNC motion, probe review, and controlled pin probing. Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Virginia Bans Sale of Geolocation Data Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Ancient DNA reveals pervasive directional selection across West Eurasia [pdf] AI cybersecurity is not proof of work Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. A Better Ludum Dare; Or, How to Ruin a Legacy GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent Codex Hacked a Samsung TV Tech Valuations Back to Pre-AI Boom Levels A perfectable programming language — Soter GitHub - halfwhey/claudraband: Claude Code for the Power User Partnership through Play: Investigating How Long-Distance Couples Use Digital Games to Facilitate Intimacy Textbooks and Methods of Note-Taking in Early Modern Europe (2008) Eternity in six hours: Intergalactic spreading of intelligent life (2013) Seven countries now generate 100% of their electricity from renewable energy Tell HN: OpenAI silently removed Study Mode from ChatGPT Pro Max 5x Quota Exhausted in 1.5 Hours Despite Moderate Usage Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card) Tell HN: docker pull fails in spain due to football cloudflare block Bring Back Idiomatic Design No one owes you supply-chain security GitHub - xsawyerx/curl-doom: DOOM, played over cURL Apple update turns Czech mate for locked-out iPhone user The Grand Line Cache TTL silently regressed from 1h to 5m around early March 2026, causing quota and cost inflation Building a Z-Machine in the worst possible language The peril of laziness lost Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda AI Will Be Met With Violence, and Nothing Good Will Come of It GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The disturbing white paper Red Hat is trying to erase from the internet – OSnews NetBlocks (@netblocks@mastodon.social) The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong The FAA wants gamers to apply for air traffic control jobs Artemis II crew splashes down near San Diego after historic moon mission Why weekends are under threat We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Keeping a Postgres queue healthy — PlanetScale Serenity Forge (@serenityforge.com) Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? Uncharted island soon to appear on nautical charts The Problem That Built an Industry Fragments: April 2 Python Release Python install manager 26.1 Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Harness engineering: leveraging Codex in an agent-first world Apple Silicon and Virtual Machines: Beating the 2 VM Limit What have been the greatest intellectual achievements? The APL Programming Language Source Code
strace-ui, Bonsai_term, and the TUI renaissance
2026-06-02 · via Hacker News: Front Page

We’ve always found strace useful but somewhat hard to work with. Its output is often inscrutable, it’s hard to follow subprocesses or threads, and if you want to filter syscalls you have to rerun the trace with a flag for each one. What you want in debugging is a tool for exploring, refining, etc., but strace can make this difficult.

Enter strace-ui, which turns strace into an interactive terminal UI:

a short screencast of strace-ui tracing a simple program

strace-ui assigns short IDs to PIDs to make them easier to scan, formats structs, and renders buffers as hexdumps instead of strings. It has some other nice features that you can’t see in the screenshot:

  • Interactive filtering. Tracing an async OCaml process? Did you forget to pass -e '!futex,timerfd_settime,epoll_wait'? Don’t worry: press h to hide any syscall you don’t care about.
  • Trace a particular file-descriptor. Press > or < to jump to the next/previous syscall that referenced the same file descriptor, or press F to change your filter to only include syscalls that touch a given FD. (it’s slightly smarter than just numeric FD filtering: strace-ui tries to track FD re-use and follow across forks, but it doesn’t do a great job of that if you attach to a process that’s already opened FDs.)
  • What even is rt_sigprocmask? Press m to open the man page and find out.
  • Subprocesses or threads are assigned short numeric labels, instead of showing you the raw pid, making it easier to follow a complex strace -f calls. (You can also filter by PID or exclude PIDs.)
  • DNS resolution: strace’s --decode-fds=all will print file descriptors as 14<TCP:[55.55.555.555:12345->11.11.11.11:56789]>, which is great. strace-ui goes one step further and prints 14<TCP:[a-real-hostname:12345->another-hostname:56789]> , which makes it easier to see at a glance exactly what your process is doing.

Ian Henry, a dev here, made strace-ui to scratch his own itch. In 2017, he’d gone looking for such a tool but never found it. Having had experience building interactive terminal UIs (including in OCaml, using lambda_term), he knew how difficult and unpleasant it could be. The idea percolated over the years, never feeling worth it, until recently when a few forces converged to make terminal UI development actually kind of delightful.

Bonsai, a powerful framework for reactive UIs

For years now we’ve been building web applications with OCaml in a functional style, using a library we developed called Bonsai, loosely inspired by Elm. A simple Bonsai component with a little interactivity looks like this:

module Dice = struct
  let faces = ...

  let component (graph @ local) =
    let face, set_face = Bonsai.state (List.hd_exn faces) graph in
    let%arr face and set_face in
    {%html|
      <div>
        You rolled a #{face}
        <button
          style=""
          on_click=%{fun _ ->
            let index = Random.int (List.length faces) in
            set_face (List.nth_exn faces index)}
        >Roll the dice</button>
      </div>
    |}
end

Components are implemented as purely functional state machines, and are easily composable. Incrementalization inside the framework means that values don’t get recomputed until necessary. This applies to every value, not just the view.

What’s neat about Bonsai is that it allows you to compose state and incrementality primitives a la carte. The same primitives that prevent re-rendering the entire page during user interaction can also be used to incrementalize an expensive business logic computation on a live-updating dataset. (If you’re used to React, imagine if everything used something very similar to hooks, and state was managed outside of the component hierarchy.)

And because Bonsai is written in OCaml, it becomes possible to use the same language and types on both the backend and frontend. It’s hard to overstate the impact this has on keeping a large web app’s codebase manageable, especially when you make pervasive use of OCaml’s type system.

Bonsai is not really a web framework

So far we’ve actually been talking about Bonsai_web. Bonsai itself is agnostic to the frontend, because when you think about it, all UIs can fundamentally be expressed as stateful incremental computations, in which different components know how to render themselves as their underlying data changes.

If Bonsai is a library for managing the lifecycle and scoping of state, with a layer on top for expressing the particulars of a given UI surface, you can see how the same underlying core can be adapted. And that is where Bonsai_term came from.

When Ty Overby made Bonsai in 2019, the idea that it’d eventually end up being used for terminal apps was a running joke. In some ways the whole point of Bonsai was that at Jane Street we felt somewhat underpowered when it came to web development. Some of our most important apps were built on the ancient and somewhat difficult curses library, which lives up to its name.

Terminal apps are fast and keyboard-centric, which we like, but the web also has a lot going for it. It’s hard to beat the ergonomics of clicking a hyperlink; and of course the web gives you a vast palette for constructing UIs, including charts and graphics that aren’t practical on the command line, and integrated help (via tooltips and the like). In the years after the release of Bonsai_web there was a huge flowering of web apps, including many that were ported directly from the terminal.

But here we are in 2026 and it feels like another renaissance is afoot, this time in the opposite direction.

Terminal UIs experience a comeback — the Claude Code effect?

Bonsai_term began as a personal hobby project in the summer of 2024, when Jose Rodriguez—one of our devs—built it to write a manga reader with the kitty graphics protocol. It showed enough promise that he later made some ncdu-style tools for wider Jane Street use. In April 2025, Bonsai_term had enough traction that we started productionizing it in earnest.

It so happened that AI agents were coming onto the scene, and it was the arrival of Claude Code in February 2025 that kicked everything into gear. It became clear fairly quickly that a well-made terminal app was winning out over full-featured IDEs, in large part because of the speed, simplicity, and portability of the terminal itself. Terminal emulators are everywhere and deeply integrated into editors; TUIs met devs where they already were. In the beginning was the command line, and so it remains—ubiquitous and always at hand.

We doubled down on Bonsai_term, and pretty soon a feedback loop came into being. We developed our own Claude Code–ish tool, called AIDE, (which we built to maintain the freedom to choose between different model vendors, to suit our unusual development environment, and to better control the execution sandbox), which became both a demo of Bonsai_term and a partner in creating it. While building AIDE into a full-featured agent-harness, we threw off a rich library of UI components that other apps could then take advantage of.

Developers who became acquainted with this unusually good TUI were pleased to discover that they could make their own terminal apps with just as much polish thanks to the new framework it was built in. Bonsai_term would feel familiar to anyone who’d ever done web development here, and it had the huge advantage of being especially amenable to AI assistance. It was actually somewhat of a mystery to us how good the models were at writing Bonsai_term code, given how relatively obscure it is and how it relies, for example, on OxCaml-only features. (We think it might have something to do with the testing story, discussed below.)

Then, recently, with the advent of Bonsai_term and AI agents, Ian found he could make a working prototype in less than ten minutes. The prototype was useful enough to justify the ongoing time spent making it real.

Bonsai_term screenshot tests showing expect output rendered as the UI itself

Notice how the 'expect' block in these tests contains a rendering of the actual UI

Closing the loop with screenshot tests

One of the most powerful features of Bonsai_term, which complements AI development nicely, is its testing framework. You can easily write integration tests that literally just walk through using the app in the terminal app and print its state—which looks like a screenshot—at any moment. Because everything is text, this is a straightforward application of our expect test framework, and as with regular expect tests, regressions or changes in behavior manifest as diffs.

Importantly, these tests are trivial for a coding agent to run and the output is legible for the agent too. That closed loop makes it easy for the AI to check its own work and results in features that are more often correct on the first try. The experience was so good in fact that much of the development time for strace-ui was focused on the kinds of output that the agent couldn’t see from the tests, for instance the performance characteristics of scrolling, filtering, and rendering. (It also had a really hard time with file-descriptor tracking.)

A million terminal apps bloom

If you watched our internal search engine for mentions of Bonsai_term, you’d find that a handful of new apps are being built every day. Some examples:

  • A time travelling debugger TUI for a trading system.
  • A TUI for automating Linux administrative tasks.
  • A monitoring TUI for our internal CI system.
  • TUIs for orchestrating and monitoring agentic coding sessions.
  • A TUI for running and managing agentic evals.
  • TUIs for managing deployments and rolls.
  • A TUI for exploring logs.
  • Terminal charting libraries.

We can’t show screenshots of all of these in a public post, but here are two we can share: proctopus, for managing multi-process applications, and dissect, for decomposing bloat in executables.

proctopus terminal application

dissect terminal application

The uptick likely goes back to the same forces that led to strace-ui:

  • Terminal apps are lightweight, fast, and available everywhere a dev is
  • With Bonsai_term you can build terminal apps in a declarative, type-safe way, sharing code between the backend and frontend
  • You don’t need to have used Bonsai before to get started
  • AIs “speak Bonsai_term,” and the closed loop with screenshot-style expect tests means that both you and the agent can see what the app is doing; feedback is fast and accurate
  • There’s a healthy component ecosystem, and because Bonsai components are nicely composable you can build fairly sophisticated apps by stitching existing components together

There’s one extra benefit that’s a quirk of how Bonsai_web works. Bonsai_web applications are written in OCaml but ported to JavaScript by a transpiler called js_of_ocaml. The vagaries of browser APIs mean that some libraries that work fine on a native platform can’t be linked into a js_of_ocaml program; and indeed one of the biggest blockers in writing a Bonsai_web app is in carefully carving out the Javascript-friendly parts of all of your dependent libraries. While much of this carving-out has already been done over the years to support our web-app work, it’s far from complete.

Bonsai_term doesn’t have this problem, which means that your TUI is more of a regular OCaml program, and can use all the same libraries and tools and services as any other application.

It’s been gratifying to see that getting the ergonomics right actually has a huge effect on developer interest. A lot of devs at Jane Street now reach for Bonsai_term when building little utilities for themselves or even sophisticated full-fledged applications, where before it might not have been worth the investment. And by dint of being in the terminal these apps are keyboard-driven, lightning-fast, and constrained in a useful way—optimized for usefulness over flash. The web isn’t going anywhere, but seeing terminal apps flourish again is like coming home.

Appendix: how to try strace-ui, Bonsai_term, and Proctopus

Want to try Bonsai_term out? You can read our install instructions here. You can point your LLM at our examples repo and then ask it to build your own TUI. We highly recommend asking your LLM to write expect tests like this one for better results!

You can install proctopus and strace-ui by following their install instructions in their readmes here and here.