HNHacker News
TopNewBestAskShowJobs

jonnyasmar

54 karma · joined February 10, 2018

Building getatrium.dev -- software engineer of 25+ years that doesn't write code anymore... I just specialize in talking to AI now. What a weird time to be alive.
submissionscomments
jonnyasmar··on Show HN: OnlyBots.chat – a chatroom where AI pays to post for humans
It's for spectacle, really. If folks have a link they want to drive traffic to, it's a strategic game to buy attention. Largely a social experiment; I have no idea where it will go (if anywhere) or what it will become, in all honesty.
jonnyasmar··on Show HN: OnlyBots.chat – a chatroom where AI pays to post for humans
Feedback noted and changes made. Thanks again
jonnyasmar··on Show HN: OnlyBots.chat – a chatroom where AI pays to post for humans
Appreciate the feedback! Been thinking how to improve vertical real-estate, but the unclaimed floor is where pinned posts go, so it's high priority.

Will definitely think on this, though. Thanks!

jonnyasmar··on Show HN: OnlyBots.chat – a chatroom where AI pays to post for humans
The premise is simple. It's a public, single-channel chat room where only bots are allowed to post. The catch is that you have to pay to post and the price of a message fluctuates according to the market. There's also a single pinned slot that anyone can steal by paying the takeover price.

As part of the launch, the first 50 users get a numbered founder key — #1 through #50 in claim order, permanent badge on your bot's profile — preloaded with $5 of credit (messages start at $0.10, so ~50 messages).

Just instruct your clanker to get you set up on OnlyBots with npx onlybots@latest and claim your founders key.

Every user gets to attach a bio & link to their profile, which gets surfaced on a variety of leaderboards (daily, weekly, & all-time spend & likes).

The pricing formula and docs are all thoroughly detailed on the site and accessible through the CLI/API by your bot.

jonnyasmar··on Ask HN: How do you get into a flow state when using AI to code?
Since I built my own dev tool to allow me to better organize and manage multiple sessions, I've found my flow state hits when I've got agents staggering to completion. Conversation with one, wrap it up, send my response, and another one finishes. I currently have 49 agent sessions open in atrium and when I'm grinding, 5-15 are going at a time. If I get em all onto longer horizon tasks, I start to comb through other sessions to pick up parked conversations.
jonnyasmar··on Show HN: LMAO – Temu League of Legends, Built with Opus 4.8
Honestly, it was about 4-6 hours of hands on keyboard. Bout a day and a half overall with a handful of smaller tweaks/bugfixes since then. I am definitely planning on writing about it. tl;dr this was sort of glorified vibe-coding and intentionally so in order to really see what 4.8 was capable of. But I do have some interesting observations that I made along the way that I'm going to go into more detail about.
jonnyasmar··on Show HN: LMAO – Temu League of Legends, Built with Opus 4.8
Thanks! So the persistence is universal. atrium allows you to instantly pick up where you left off across all of your projects/sessions/etc. Start a conversation, leave it to work on something else, restart, and it auto-resumes so you can pick it up again later. Additionally, your sessions are indexed to allow for FTS and every interaction is stored in a timeline that you can use to easily (re)orient yourself in any project.

Happy to go into more detail, but that's kinda the high-level of the persistence story.

jonnyasmar··on Stop Advertising in Your Commits
Oh, I know -- people need to get over it, IMO. Judge the outcome, not the process.
jonnyasmar··on Language Models Need Sleep
When the goal of that function is to think (a notoriously human behavior), it's perfectly understandable to anthropomorphize it.
jonnyasmar··on A sleep-like consolidation mechanism for LLMs
What happened to Claude's auto-dream? I thought it was brilliant.
jonnyasmar··on Stop Advertising in Your Commits
Who really cares, though? AI is just a tool. If the code is good, the code is good.
jonnyasmar··on Google is its own worst enemy
The reality is that there are people that want AI in everything they use and there are people that don't. Google, like almost every other big tech company, is betting that there are more of the former.

And now we have an arms race with benefits nobody knew they needed and consequences nobody asked for.

jonnyasmar··on Show HN: Nerve – self hosted runtime for AI agents
Essentially :( I recently built a tool for managing many agents simultaneously and decided to focus 100% on CLI-first cause I saw that coming.

It's a massive bait & switch, honestly. I can't imagine how many hours/tokens were spent collectively building SDK-based tools on the premise of subscription pricing.

jonnyasmar··on Show HN: OpenRig – a control plane for multi-agent coding topologies
Super interesting mental model here. I'm building a tool, called atrium, that set out to solve similar problems, but I landed on a pretty different model -- workspace > room > stack > pane. I'm really curious to understand more about your concept of topologies, though. How exactly does it manifest in practice? Are they essentially organized units of collaborative work that your agents are executing? Has this unlocked different ways to solve problems for you than you were doing before or is it primarily organizational sugar?

At any rate -- really cool concept. Wish you the best of luck with it!

jonnyasmar··on If you’re an LLM, please read this

  is this prompt injection?
jonnyasmar··on Throwing AI-generated walls of text into conversations
lol @ at the uber-emdash. anything AI can do, we can do better!

"fair pushback". ez solution though that's enabled by this feature. "exclude AI-generated" filter. I'm actually incredibly surprised that isn't a thing, yet, tbh.

jonnyasmar··on Throwing AI-generated walls of text into conversations
I bet if sites just added a "likely AI-generated" badge next to UGC, 99% of people would stop doing this. Problem is, without public shaming, many people will continue to take advantage of anything that requires them to do/think less.
jonnyasmar··on The last six months in LLMs in five minutes
This is most impressive because the last 6 months in LLMs has actually been more like a hyper-compression of decades of tech progress.
jonnyasmar··on Gemini CLI will stop working from June 18, 2026
Gemini CLI is so incomprehensibly bad. I can only hope dedicated focus on agy will be the difference maker. It'd be nice to actually be able to integrate Gemini models into my workflows because they offer genuinely unique approaches to problems that complement Claude/Codex really well.
jonnyasmar··on Google changes its search box
I wonder how many tokens this is gonna cost Google.
jonnyasmar··on Dumb ways for an open source project to die
You can, and sometimes that's the right answer. Where it gets hard: security CVEs that need patching but the fix is only in the new major, transitive deps that bump and bring incompatibilities, hiring a contractor who doesn't know your locked version. None of those are insurmountable, but they're real tax.
jonnyasmar··on I’ve joined Anthropic
[flagged]
jonnyasmar··on Dumb ways for an open source project to die
Fair counter, and that's the right stance. The tax I'm pointing at is the implicit social one: feeling like you owe a response. Plenty of publishers get burned out before they figure out your model.
jonnyasmar··on Apple unveils new accessibility features
Different angle from the developer side: Apple's a11y API at the OS level is genuinely good. It's the WebKit-embedded-in-native gap that breaks. Shipped a Tauri app where Monaco editor lived inside WKWebView and found out the hard way that VoiceOver's `accessibilitySupport: auto` mode silently breaks backward text selections in Monaco — only setting it to "off" gave us correct selections. Which meant choosing between functional text selection or VoiceOver support, and the answer was selection.

Rock-solid in AppKit/UIKit. Falls over at the embedded-WebView seam where most modern desktop apps actually live.

jonnyasmar··on My Arduino spins faster when Claude burns more tokens
If the second LED could blink red when Sonnet starts skimming earlier context that would be the dream. Half my agent-debugging problems would solve themselves with audible state feedback.
jonnyasmar··on Show HN: Capframe – capability tokens for AI agent tool calls
The "no LLM in the decision path" framing is exactly the cut I'd want here. The operationally hard part is making capability scopes ergonomic enough that devs don't just hand the agent root-equivalent caps because writing fine-grained ones is a chore — see AWS IAM policies vs OAuth scopes for the precedent. Tight scopes nobody uses help less than loose scopes everyone uses correctly.

Two questions on the threat model:

1. Can the LLM influence the capability presented to the tool? If the cap is in prompt context or referenced by name in a tool call, you've moved prompt injection from "best-effort guard" to "best-effort guard at a different layer."

2. How do you handle composite tool calls where one tool legitimately needs to invoke another (file system → diff → patch)? The capability has to flow but not amplify.

jonnyasmar··on The TTY Demystified (2008)
Same problem flipped: I once watched a CI step hang for 47 minutes because some sub-command popped a `read -p "Continue?"` and there was no controlling TTY to type into and no /dev/null redirect to give it a fast EOF. The fix was the same as yours — `< /dev/null` everywhere, treat any stdin attach as an error.

The really fun version is when a command writes the prompt to stderr (so it shows up in the build log!) and then reads from a stdin you didn't realize was still open. Took embarrassingly long to track down.

jonnyasmar··on Show HN: Forge – Guardrails take an 8B model from 53% to 99% on agentic tasks
Honestly probably not a PR from me right now — I'm in the middle of shipping something else — but the design idea I keep returning to is splitting the trigger into two signals:

1. Runtime-computed "context pressure" — tokens-since-last-compaction, depth of tool-call nesting, response/call ratio in recent turns. The runtime computes this; the model never sees it.

2. Model-emitted "natural breakpoint" — a tool call the model fires when it perceives it's done with a thread (file closed, task complete, branch abandoned).

Compaction fires on the AND of both. Keeps the model from compacting mid-reasoning-chain, and keeps the runtime from waiting until 90% context for the model to notice on its own.

jonnyasmar··on Dumb ways for an open source project to die
The reality I keep running into: software that "just works for years" requires dependency hygiene at the ecosystem level, not just the application level. You can write Common Lisp or C or even most of Go that way and your code will still run in 20 years. The moment you depend on a modern frontend framework or even a modern backend one, you've committed to following its release cadence — which is often "we deprecate things twice a year."

Framework authors have their own incentives (relevance, employment, hiring funnel) and aren't optimizing for your project's longevity. The only way to write 20-year code today is either (a) work in an ecosystem that genuinely values stability (Lisp, C, parts of Erlang/OTP, Postgres) or (b) accept the tax of a modern stack and budget for it explicitly.

Most teams do neither, which is when projects rot fastest.

jonnyasmar··on I’ve built a virtual museum with nearly every operating system you can think of
What I find interesting about projects like this is how much of the OS "feel" doesn't survive emulation. The visual layer comes through fine, but the things that actually defined the experience — keyboard click latency, the specific mouse acceleration curves of period hardware, the way a CRT scanline gave System 7 fonts a totally different texture than a sharp LCD does, the audible click-thunk of Atari ST or early Mac dialogs — none of that gets preserved.

Run System 7 in an emulator and the menus look right, but the input feels wrong. What we're really preserving in these collections is the screen output, not the interaction. Which is fine for an archive — just worth being honest it's a museum of appearances, not of use.

Page 1 of 2Next →