I have default "AI" keyword and domain filters as a separate toggleable option (so you can keep your personal filters separate) in my HN extension (which I really need to add recent model names to):
HN user
insin
jonathan.buchanan@gmail.com / @jbscript.dev on the butterfly place / personal: https://jbscript.dev / biz: https://soitis.dev
Comments Owl for Hacker News highlights new comments, lets you mute & note users, adds dark mode, theming via CSS variables, and more:
https://soitis.dev/comments-owl-for-hacker-news
Control Panel for Twitter improves Twitter somewhat:
https://soitis.dev/control-panel-for-twitter
Control Panel for YouTube improves YouTube somewhat:
https://soitis.dev/control-panel-for-youtube
I thought this was funny because they've rewritten it seemingly with the primary goal of trying to get you to not use it.
TL;DR: open app, use the app, install the app, have you opened the app yet?
I'm using this API in the internal [1] model-independent LLM chat app I work on at an F100, and it ruined using the Claude and ChatGPT web interfaces for me outside of work [2] because I'm used to being able to point the model at a folder so it can be directed to find and pull in relevant context itself, being able to add folder mid-chat and saying "you do it", and being able to have the model run code to work with local files of any size your browser can handle (every time we released a new version people would drag in their huge Excel files and go "still doesn't work" as we used to extract and context stuff the contents, but now it can poke around in them directly to find sheets/headers/structure and write code to do whatever they wanted).
Claude Opus on its own with filesystem tools built around the FileSystemDirectoryHandle API [3] makes for a pretty decent coding agent - I've been using the app to write itself live on its own development server ever since it got the ability to edit its own files, which is some of the most fun development I've done recently. I think writing your own harness is probably the most fun thing you can do with an LLM, which is why so many people do it - getting the model to add and then start using a new tool you had an idea for in the same chat is always fun.
[1] which seems like the best scenario for it in terms of the security/privacy issues it poses
[2] I ended up creating an MCP server rooted to a specific local directory - which I can expose to them via Cloudflare Tunnel - and a browser extension which adds a folder picker button to their chat interfaces, so I can get an almost-equivalent experience. This is really ugly in ChatGPT but works as well as I'm used to in Claude.
[3] as a bonus, the tools you write against this API will also be compatible with the Origin private file system (OPFS) API if you want to give your chats a virtual filesystem for the model to write to, or to copy user-attached files into
Let's say you have a jq MCP. How do you pass data in and out to/from it without the data also being processed as tokens?
Provide a meta-tool which handles piping data in and out of any other tool, and make specific tools which can read/write data sources directly, bypassing context. Or you could go full code mode, but I'm not sure it's worth the lift unless you have Cloudflare numbers of APIs which would need tools.
I work on an internal model/vendor-independent chat app where the agent runs in the browser - every chat gets its own virtual origin private filesystem (OPFS) [1] directory where user attachments get written to and tools can read from/write to, and users can also provide read/write access to a real directory with window.showDirectoryPicker() [2] (both use the same API, so tools can route to/from either).
It can push and pull MBs of data through tools, e.g. pulling huge spreadsheets directly from SharePoint in 50,000 row chunks using a tool which calls the Excel Services REST API, passing those all into a code execution tool to join them together and process them, which generates an Excel output file using SheetJS, none of which goes into context.
People used to drag their multi-MB documents in and complain either it didn't work or the agent couldn't do anything useful with it. Now it just works.
[1] https://developer.mozilla.org/en-US/docs/Web/API/File_System...
[2] https://developer.mozilla.org/en-US/docs/Web/API/Window/show...
Nice try at trying to get me to read the friendly articles ;)
Watching it like a hawk and stopping/redirecting, or immediately reviewing and doing the same is the only way, really.
HN needs to start sticking an ?mx=1 on the end
Congratulations to the Anthropic marketing team on their acqui-hire.
I don't think it needs to specifically be a coding agent for the average user, creating apps for whatever they want to do, just something that can use code and has appropriate access for what they're already asking it to do (instead of the model bullshitting to them that it can do it, annoying them), and some way to make it repeatable when needed, like skills.
I'm currently doing something like this in the internal model-independent LLM chat app I work on at a F100, specifically targeted at our everyday users. <input type="file" webkitdirectory> lets the user give the model read and write access to a local folder (and OPFS lets us reuse the same fs tools we give the model for files manually attached to the chat, or for files tools want to create if they haven't granted folder access).
Every time we used to release a new version it was "still can't handle the 6MB Excel file I drop into it" when that was being extracted to CSV and added to context - now it can poke about in the big Excel file directly with SheetJS to pull the sheets/headers and inspect the shape of the data, and use locally sandboxed code execution to write code against either extracted data or the spreadsheet itself via SheetJS for pivot tables and such (all locally - none of which need go into the context).
The base models are good enough at tool calling (I really mean Claude, though, the GPTs just go on a tear calling tools with no context for the user) they're already decent at automating stuff for the user without a dedicated harness (our default system prompt is still "You are a helpful AI assistant", lol). Add tools for Graph API stuff, and now it can pull the nightly batch file from a support inbox, unzip the spreadsheet within, diff it against yesterday's and generate an import file for new users and draft an email to welcome them, something that used to be a daily support task (which I'd already automated most of - but now you don't need a dev for this kind of thing). Or go find the big 450,000+ row spreadsheet that's being automated somewhere on SharePoint, pull it down in 150,000 row chunks (Graph Excel REST API limit) and write code to go figure out whatever the user is asking.
Having implemented and used it, I like this setup so much it kinda ruined Claude.ai and ChatGPT.com for me, so I've hooked up similar access for them using a browser extension to add the folder picker input, with the extension talking to a local server to tell it which folder to give access to, and Claude/ChatGPT talking to the same server over MCP via a CloudFlare Tunnel to work with the selected folder.
Upvoting because of how I misread those 2 letters
Create a new UI library without spending a decent chunk of the landing page telling the reader what it isn't challenge.
Upvoting because Shorts are terrible. Flagging because the submission title - which is 100% faithful to the friendly article - is a complete lie!
Plug: I added a bunch of features to Control Panel for YouTube [1] which let you either hide Shorts completely, everywhere (which is the default) or take more control of how you use them if you do (e.g. redirecting to the normal video player)
Bravo New Yorker, defeating my regular expression because I've never once seen it referred to as A.I. (I'm sure it happens)
This was added in January:
https://github.com/callumlocke/json-formatter/commit/caa213d...
Someone on Twitter noticed it pretty quickly, considering:
https://twitter.com/devinsays/status/2012195612586914143?mx=...
Extensions which ask for all URLs should really be subjected to more thorough reviews.
At the level of the agent, it knows nothing about MCP, all it has is a list of tools. It can do anything the tools you give it let it do.
Not all agents are running in your CLI or even in any CLI, which is why people are arguing past each other all over the topic of MCP.
I implemented this in an agent which runs in the browser (in our internal equivalent of ChatGPT or Claude's web UI), connecting directly to Atlassian MCP.
The more things change in tech, the more they stay the same.
The shoe is the sign. Let us follow His example!
Cast off the shoes! Follow the Gourd!
You can make it compose by also giving the agent the necessary tools to do so.
I encountered a similar scenario using Atlassian MCP recently, where someone needed to analyse hundreds of Confluence child pages from the last couple of years which all used the same starter template - I gave the agent a tool to let it call any other tool in batch and expose the results for subsequent tools to use as inputs, rather than dumping it straight into the context (e.g. another tool which gives each page to a sub-agent with a structured output schema and a prompt with extraction instructions, or piping the results into a code execution tool).
It turned what would have been hundreds of individual tool calls filling the context with multiple MBs of raw confluence pages, into a couple of calls returning relevant low-hundreds of KBs of JSON the agent could work further with.
The chatbot app initiates an OAuth flow, user SSOs, chatbot app receives tokens to its callback URL, then tool calls can access whatever the user can access.
If you use the official MCP SDK, it has interfaces you implement for auth, so all you need to do is kick off the OAuth flow with a URL it figures out and hands you, storing the resulting tokens and producing them when requested. It also handles using refresh tokens, so there's just a bit of light friendly owl finishing on top.
Source: I just implemented this for our (F100) internal provider and model agnostic chat app. People can't seem to see past the coding agents they're running on their own machines when MCP comes up.
Gemini seems to be an expert in mistaking its own terrible suggestions as written by you, if you keep going instead of pruning the context
Ooh, I'm having that feature for the next version of Comments Owl for Hacker News (which already moves the [-] to the left and increases the size of it on mobile), but does that not lead to accidental collapsing while scrolling on mobile?
I've already added using a confirm() for flagging and hiding in list pages on mobile to it because it's so easy to accidentally hit while scrolling.
/r/chrome_extensions feels like it's getting close to being 100% LLM generated, extension code, submission descriptions which read like you accidentally went to LinkedIn, and generic LLM replies
I only stay on this particular variant of one of the 5 site designs every LLM spits out for long enough to check that - yes - it has the annoying thing where content fades in as you scroll, before closing the tab.
It's gone massively downhill recently, noticeably so since the ability to sort by upload date was removed from the UI (and then very quickly removed from the API too). That was the final brick that prevented it from being literally unusable, now it's scroll and hope (and give up).
This is also the way I use YouTube and is the main thing I made Control Panel for YouTube [1] for (well, that plus globally hiding Shorts and removing all the unwanted recommendations everywhere) - my Subscriptions page acts like an inbox of unwatched videos and everything else is hidden (most recently: the new "Most relevant" section and "Collaborations" videos with channels I'm not subscribed to).
My Subscriptions page currently has 15 videos above the fold, 5 of which are from the last 12 hours. The oldest video in that first page is 2 weeks old, and if I turn the extension off I need to press Page Down 17 times to reach it in the vanilla YouTube interface.
Would you like Copilot to generate ads?
[Yes] [Maybe later]
Literally every day from green accounts on Hacker News, and in many, many TFAs.
*LLM
I've found myself wanting something like this since I switched to the new built-in vertical tabs, as it's a pain to get rid of them temporarily in side-by-side windows.
The second and only other option not being "Maybe later"? Let me into the dream you're living in :)