Reading up on open-source
100 deep · digging since nov 19, 25
- Better Call Sol The Workhorse
OpenAI’s GPT-5.6 Sol launches as a cheaper, workhorse model excelling at coding and web tasks, trailing Fable in raw intelligence but offering better cost‑efficiency and practical agent performance.
- Your Dropbox is now a skill server
sx 2.0 launches a native cross‑platform app that syncs AI skills through shared cloud folders, automatically converting markdown assets into formats for Claude Code, Cursor, Copilot and other AI tools.
- Control the ideas, not the code - <antirez>
Programmers should steer AI by defining ideas and designs, not by reviewing generated code, to focus on higher‑level decisions and quality.
- Automatic Code Review for Claude Code — Async Reviews via Hooks + OpenRouter
The article explains how to configure Claude Code to trigger asynchronous, non-blocking code reviews via a Stop hook that launches a Codex‑based reviewer through OpenRouter, keeping workflow uninterrupted.
- ZeroFS — A log-structured filesystem for S3
ZeroFS provides a log‑structured filesystem over S3‑compatible storage, exposing POSIX via NFS/9P and block devices via NBD with built‑in encryption and caching.
- Davit - a native macOS UI for Apple containers
Davit is a native macOS UI for Apple's container platform enabling Linux containers on Apple silicon without Docker Desktop for developers.
- Upyo | Cross-runtime email library
Upyo is a small, cross‑runtime email library for JavaScript/TypeScript that lets you write a message once and send it via SMTP or providers on Node.js, Deno, Bun, and edge functions.
- RubyGems.org | your community gem host
The article describes RubyGems.org as a community‑run gem host maintained by Ruby Central, highlighting its Supporter Program and donation options.
- Release v2.0.0 · unlayer/react-email-editor
Unlayer's react-email-editor v2.0.0 drops support for React <16.8 and Node <18, adds ESM builds, fixes destroy-on-unmount, and updates tooling across the stack.
- Vercel acquires Better Auth to accelerate open source auth - Vercel
Vercel acquires open‑source TypeScript auth library Better Auth, keeping it MIT‑licensed and advancing its Agent Auth protocol for scoped AI‑agent identity.
- Better Auth: an introduction
Better Auth is a TypeScript authentication library that runs inside your app, stores users in your own database, and provides server and client APIs with optional plugins.
- Data for Agents
NVIDIA argues that open synthetic data is essential for building inspectable, trustworthy AI agents while preserving proprietary secrets and fostering community collaboration.
- Announcing TypeScript 7.0 - TypeScript
TypeScript 7.0 launches a native Go‑based compiler that delivers 8‑12× faster builds and editor responsiveness, validated by large‑scale production testing.
- Rewriting Bun in Rust
Bun's engineers rewrote its JavaScript runtime from Zig to Rust with Claude Fable 5, eliminating many memory‑safety bugs and boosting stability and performance.
- Graph based Agent Memory - by Neo Kim
Shared folders and vector databases fail for multi-agent AI memory; a graph-shaped system with typed schemas, atomic commits, and Git-like branching solves this, as demonstrated by Omnigraph.
- Announcing Vite+ Beta
Vite+ beta unifies runtime, package manager, and frontend tools like Vite, Vitest, Rolldown, and Oxlint into a single open-source CLI workflow for web projects.
- Boring Computers
Boring Computers delivers instant Firecracker microVMs with snapshot-restore in ~3 ms, a terminal, browser, coding agents, and an AI driver, all open source.
- integrations.sh — every integration, in every format agents speak
A registry of official APIs, GraphQL endpoints, and MCP servers with structured credential facts for connecting AI agents to services.
- State of CLI Coding Agents, Mid-2026
The CLI coding agent market in mid-2026 is crowded with 35+ tools, and this piece systematically compares them across model labs, platform CLIs, and open-source harnesses.
- Alibaba’s A.I. Is a Hit, but Hard to Turn Into a Moneymaker
Alibaba's open-source AI models gain global developer traction but struggle to generate revenue since they can be freely used and modified.
- Wikipedia Is Battling for the Soul of the Internet
Wikipedia faces existential threats from political polarization, AI-generated content, and foreign interference, with a former ambassador leading its defense.
- Current AI – Open Source AI Gap Map
Mozilla's Current AI project maps the open source AI stack, evaluating 24,626 projects to identify gaps and seeking collaborators to close them.
- Can a URL in a prompt change an LLM's output?
LLM output is influenced by URLs in prompts only when the URL's content was memorized during training; JavaScript-rendered sites often remain invisible to training crawlers, creating a growing data gap.
- The gap between open weights LLMs and closed source LLMs
Hacker News commenters debate the sustainability of open-weights LLMs, arguing they cannot be taken away once downloaded despite potential future restrictions or discontinuation by funders.
- I ported Kubernetes to the browser
Sam rebuilt a subset of Kubernetes in Rust, compiled to WebAssembly, to run entirely in the browser for hands-on cluster education.
- Have your agent record video demos of its work with shot-scraper video
Simon Willison introduces shot-scraper video, a tool that records video demos from a YAML storyboard using Playwright, enabling coding agents to demonstrate their work.
- The Xteink X4 E-Ink Reader — Max Glenister
The £40 Xteink X4 e-ink reader, though minimal out of the box, becomes an excellent portable reading device through custom firmware like CrossPoint or Inx.
- Oomwoo, an open-source robot vacuum you build yourself
Oomwoo is an open-source, modular robot vacuum you build yourself, aiming for repairability and customization, with the creator defending its cost-effectiveness and community-driven development.
- Building an Intern
Building a practical Slack agent required 100k lines of TypeScript and four months of iteration to handle serverless constraints, credential management, and secure tool orchestration.
- React Icons
react-icons lets developers import popular icons as React components with ES6 modules, enabling automatic tree-shaking to reduce bundle size.
- termcn - Beautiful terminal UIs, made simple
termcn provides ready-to-use, customizable terminal UI components for React, built on Ink and OpenTUI and distributed via shadcn.
- mapcn - Beautiful maps made simple
mapcn provides beautiful, accessible map components for React using MapLibre GL, Tailwind CSS, and shadcn/ui integration.
- What is fenic? - fenic, by typedef
fenic is a PySpark-inspired DataFrame framework built from scratch for LLM inference, featuring semantic operators, native unstructured data support, and batch inference across providers.
- Astryx Design System
Meta has open-sourced Astryx, its internal design system with 160+ React components, CLI tools, and agent-ready MCP integration.
- cmux — The terminal built for multitasking, organization, and programmability
cmux is a free, open-source macOS terminal built for AI coding agents, offering programmability, session restore, and an integrated browser.
- Iterating faster with TypeScript 7
The VS Code team incrementally adopted TypeScript 7, a Go port of the compiler, achieving 4–7× speedups in builds and editor tooling.
- Nub — an all-in-one toolkit for Node.js
Nub is a TypeScript-first toolkit for Node.js that provides a faster npm/pnpm run, a pnpm-compatible package manager, and a Node version manager, with no lock-in.
- Commit History — a star-history for a GitHub user’s lifetime commits
Commit History visualizes any GitHub user's cumulative public commits over their entire lifetime as a chart, similar to star-history.com but for commits.
- Rise of the Cheap Robots - by Chris Paxton - It Can Think!
Three startups are launching general-purpose robots under $10,000 this year, including Nori Robotics' $1,288 robot, BracketBot's $3,000 robot, and Weave Robotics' Isaac 1 at $8,000.
- Autoresearch: The feedback loop behind self-improving agents
Autoresearch uses outer loops with feedback signals and human input to let agents improve and maintain systems, reducing bottlenecks while keeping humans central.
- Qwen 3.6 27B is the sweet spot for local development - Quesma Blog
Qwen 3.6 27B with llama.cpp runs at usable speeds on Apple Silicon and Nvidia RTX hardware, making it the first local model practical for coding development.
- Using Local Coding Agents - by Sebastian Raschka, PhD
A tutorial demonstrates that local coding agents using open-weight models like Qwen3.6 and Ollama can match proprietary service speeds while offering privacy and cost benefits.
- Statistics that live in your SQL
the-stats-duck v0.6.0 adds OLS regression, bootstrap, expanded distributions, and a Vega-Lite plot grammar to DuckDB SQL.
- RubyLLM: A Ruby framework for all major AI providers
RubyLLM provides a unified Ruby framework for all major AI providers, enabling quick building of chatbots, agents, and AI workflows.
- Show HN: OpenKnowledge – open source AI-first alternative to Obsidian/Notion
OpenKnowledge is an open-source AI-first note-taking app that integrates with coding agents, but commenters question its advantage over Obsidian or Notion without local model support.
- Show HN: StartupWiki – A Free Alternative to Crunchbase
StartupWiki is a free, community/AI-driven startup directory that faces widespread criticism over data accuracy and reliability.
- An entire Herculaneum scroll has been read for the first time
Using X-ray scanning and machine learning, the Vesuvius Challenge team virtually unwrapped and read the first complete Herculaneum scroll (PHerc. 1667) without physically opening it.
- GitHub - aidenybai/cnfast: Fast drop in replacement for `cn`
cnfast is a drop-in replacement for tailwind-merge that merges Tailwind classes 3.8x faster on average with byte-identical output.
- AI SDK 7 is now available - Vercel
AI SDK 7, with over 16 million weekly downloads, adds production-focused agent features like durable workflows, MCP apps, and realtime voice/video.
- I wrote a 70x faster SQL parser while barely looking at the code - PostHog
The author used AI agents to rewrite PostHog's SQL parser in Rust, achieving a 70x speedup (454x in production) via property-based testing and oracle-based development.
- What I’m Finding About LLM Code Style and Token Costs - Jim Montgomery jimmont.com
Using native Web APIs instead of LLM-generated manual implementations reduces output token costs by 85-92% while eliminating entire categories of bugs.
- Flue — The Open Agent Framework
Flue offers a TypeScript framework for building durable AI agents that survive server restarts, using a programmable harness with sandboxes and tools.
- Lore | Next-Generation Open Source Version Control - Lore
Epic Games maintains Lore, an open-source version control system designed for scalable data and teams working on mixed code and binary assets.
- Go Micro - Agent Harness for Go
Go Micro provides a unified runtime for building agents, services, and workflows with built-in AI capabilities like MCP and A2A gateways.
- Reviving Papers with Code
A Hugging Face engineer revives Papers with Code as paperswithcode.co, using AI agents to parse papers and auto-generate leaderboards for AI domains.
- The Cypherpunk Library
The Cypherpunk Library offers a curated collection of public-domain readings on cryptography and privacy, free and available for browsing.
- Thi.ng – open-source building blocks for computational design and art
Thi.ng is a 350-module open-source toolkit for computational design and generative art, built bottom-up with small, composable pieces.
- Self-hosted dev sandboxes with preview URLs (Docker, Go, no K8s)
sandboxd is an open-source backend that creates isolated Linux containers with AI coding agents and live preview URLs, all self-hosted on one machine using Docker and Go.
- Show HN: Homebrew 6.0.0
Homebrew 6.0.0 introduces `brew trust` and other improvements, with the community praising the project's longevity and Mike's maintainership.
- macOS Container Machines
Apple's open-source Container package runs each container in a lightweight VM on macOS, providing VM-level isolation with near-container performance and boot times.
- GitHub - af/envalid: Environment variable validation for Node, Bun, and other compatible JS runtimes
Envalid provides validation and immutable access to environment variables, ensuring they meet expected formats before a Node.js or Bun program runs.
- GitHub - kristiandupont/kanel: Generate Typescript types from Postgres
Kanel generates TypeScript types from a live PostgreSQL database, offering type safety without an ORM.
- GitHub - Automattic/juice: Juice inlines CSS stylesheets into your HTML source.
Juice is a Node.js library that inlines CSS properties from style tags into HTML style attributes, primarily for HTML emails.
- Vite 8.1 is out!
Vite 8.1 introduces experimental bundled dev mode for faster startup in large apps, chunk import maps, Wasm ESM support, and moves toward Lightning CSS by default.
- Astro 7.0 | Astro
Astro 7.0 ships a Rust compiler, Rust-based Markdown pipeline, queue-based rendering, Vite 8 with Rolldown, advanced routing, route caching, and AI-friendly dev server modes.
- FullCalendar - JavaScript Event Calendar
FullCalendar is a modular, framework-agnostic JavaScript event calendar library with over 300 settings and official React, Vue, and Angular packages.
- birdclaw — Local Twitter memory in SQLite
Birdclaw is a local-first Twitter workspace that imports archives and caches live reads into a single SQLite database, accessible via CLI and web app.
- GitHub - baidu/Unlimited-OCR: Unlimited OCR Works: Welcome the Era of One-shot Long-horizon Parsing.
Baidu releases Unlimited-OCR, a VLM-based OCR that processes entire documents in a single pass using reference sliding window attention to avoid memory overflow.
- The Flat Curve Society
Steve Yegge argues AI intelligence growth will appear to plateau for most people due to government restrictions and human discernment limits, while actually continuing exponentially behind locked doors.
- When it's the maintainer who's AI-pilled
In an open-source project where the maintainer uses generative AI heavily, filing detailed issues becomes an efficient prompt for quick fixes, making contributor PRs unnecessary.
- LLMs are complicated now – Ian’s Blog
Modern LLMs have grown complex with many attention variants and mixture-of-experts, echoing the messy evolution of recommendation systems.
- Show HN: Inkwash, a watercolor sketching app and explanation
Inkwash is a browser-based watercolor sketching app that simulates fluid dynamics and pigment behavior using WebGL2 shaders, with interactive demos explaining the algorithm.
- Free SQL→ER diagram tool, runs in the browser, nothing uploaded
A developer built a free, open-source browser-based tool that converts SQL CREATE TABLE statements into interactive ER diagrams without uploading data to any server.
- DuckDB Internals Part 1
DuckDB's internal architecture makes it fast and easy to use for local analytical queries, often outperforming cloud data warehouses on data that fits on a laptop.
- How to setup a local coding agent on macOS
A developer details setting up a local coding agent on macOS using llama.cpp, Gemma 4, and Pi for real-time terminal-based AI assistance.
- I found 10k GitHub repositories distributing Trojan malware
A researcher found 10,000 GitHub repositories distributing Trojan malware, likely targeting AI coding agents that automatically clone and run dependencies.
- Datasette Apps: Host custom HTML applications inside Datasette
Simon Willison introduces a new plugin hosting sandboxed HTML+JavaScript apps inside Datasette, enabling custom read/write SQL interfaces within tight iframe constraints.
- Show HN: Paca – Lightweight Jira alternative for human-AI collaboration
Paca is an open-source, self-hosted project management platform designed for AI agents and humans to collaborate as equal teammates.
- Ask HN: Has anyone replaced Claude/GPT with a local model for daily coding?
Users replacing Claude/GPT with local Qwen 3.6 models report a 5x speedup (vs 15x for cloud models) but require precise prompts and experience more loops and tool-call errors.
- Iroh 1.0 | Hacker News
Iroh 1.0 is a library enabling apps to establish direct peer-to-peer connections via relays, removing dependency on external VPN accounts or infrastructure.
- TypeScript Performance in TanStack Table V9
TanStack Table V9 cut TypeScript type instantiations by 62-86% between alpha.54 and beta.12 using feature maps, interfaces, variance annotations, and explicit type arguments.
- Open Source vs the Invisible Hand
Open source software production defies standard economic theory by producing stable, valuable, and widely-used goods despite lacking price signals, contracts, or incentives that textbooks predict are necessary.
- Gemma 4 WebGPU Kernels - a Hugging Face Space by webml-community
Gemma 4 E2B runs locally in-browser via WebGPU, letting users prompt the model directly without server-side inference.
- Introducing the MDN MCP server
Mozilla's MDN MCP server gives AI coding agents real-time access to accurate web documentation and browser compatibility data, outperforming static model knowledge.
Takes
Introducing shadcn/typeset. You know how you render markdown and get back plain, unstyled HTML? Headings, paragraphs, lists, tables. So you style the elements one by one: font sizes, line heights, spacing. You do it for your blog. Then you do it again for docs. Then again for the chat. Every time, you're fighting the same thing: sizing and spacing. To fix this, we created typeset.css: one file that styles everything inside a typeset container. It lives in your project, so you can change it directly when you need to. And we made it work beautifully with streaming markdown.
@shadcn
THE CEO OF OBSIDIAN JUST OPEN-SOURCED THE CLAUDE CODE SKILLS HE WAS USING PRIVATELY IN HIS OWN VAULT. 40,000 STARS IN A FEW WEEKS 5 skills. 1 MIT license. 0 pitches kepano - the founder who wrote the "File over app" essay - dropped a set of Agent Skills that teach Claude Code to read and write Obsidian files the way a human expert would. Markdown that respects wikilinks. Bases queries Claude actually writes correctly JSON Canvas edits that don't corrupt the file. A defuddle skill that strips ads and boilerplate off any URL and drops a clean note into your vault. He built them for himself, tested them in his own workflow, then pushed the folder to GitHub every skill is one SKILL.md file. Drop the repo into .claude/skills/ and Claude Code picks them up automatically. No plugin store. No account. No cloud. Same idea that made Obsidian: your notes are files on your disk, the app is disposable, and the AI just learned to speak the format the essay was called "File over app". The workflow is now file over agent MIT-licensed. Shipped in his own name no vendor lock. no subscription. no cloud memory. no walled garden. no pitch to raise a round you're reading this on a device that could clone the repo, drop it into your vault, and have Claude Code editing your notes correctly before your next standup
@chewadot
TL;DR of my new article: I ran last30days on the 10 biggest trending GitHub repos of the month so you don't have to. 🎬 OpenMontage (+31.6K) - your coding agent makes a whole video from one prompt, free and local. By @calesthioailabs 🧠 codebase-memory-mcp (+26K) - indexes your repo into a graph so agents stop re-reading every file. One measured query: 80K tokens down to ~500.
@mvanhorn
mattpocock/skills v1.1 is out! - /wayfinder helps you plan more ambitious work than ever - /to-spec and /to-tickets replace /to-prd and /to-issues - /implement + /code-review complete the whole lifecycle - /research and /prototype help support wayfinder, or can be used independently - Crucial fixes to /grill-me Run npx skills@latest add mattpocock/skills to update!
@mattpocockuk
Open sourced all of my Notion Workers including my Twitter bookmarks sync https://github.com/colebemis/notion-workers
@colebemis
🤯 Wow I can't believe I'm open sourcing the email platform we built internally. Self-hosted, runs on your own AWS SES. You pay @awscloud $0.10 per 1,000 emails instead of a SaaS markup, and your email data never leaves your infra. MIT licensed. Here's what it does 🧵
@vijaytupakula
Ghostty is now indisputably the fastest terminal emulator at IO throughput, by a very large margin. On ASCII, Unicode, and CSI tests, Ghostty is more than 2x (double!) faster than any other leading "fast" terminal. These changes are directly in libghostty, too, so everyone wins. `time cat 150MB_ascii.txt`: - Ghostty nightly: 575ms - Ghostty 1.3.2: 1.5sec - Alacritty: 1.2sec - Kitty: 1.7sec - Warp: 3.8sec - iTerm2, Terminal: stopped after 60s `time cat 150MB_unicode.txt` (mixed languages): - Ghostty nightly: 536ms - Ghostty 1.3.2: 1.22sec - Alacritty: 1.05s - Kitty: 1.35s - Warp: 3.4s - iTerm2, Terminal: stopped after 60s `DOOM-Fire-Zig` (an IO test): - Ghostty nightly: 842fps - Ghostty 1.3.2: 532fps - Kitty: 485fps - Alacritty: 593fps - Warp: 577fps - iTerm2, Terminal: 60fps (yes, 60) To quickly address the "cat speed doesn't matter" naysayers: this is a direct test of how many bytes/second you can push through a terminal. It doesn't cover just "read big file" but also "how much can a TUI do". The tests above test various shapes of inputs (plain ascii, unicode/wide chars, csi-heavy loads, etc.). IO throughput is incredibly important. Most of these improvements apply to libghostty-vt consumers too, so any libghostty-based terminals will instantly see huge throughput improvements by simply upgrading (ABI compatible). I'll cover the exact improvements in a blog post in the future. These results are the result of 6 separate optimizations.
@mitchellh
I went to Miami to chat with @thdxr, co-founder of OpenCode. We talked about the future of software engineering, coding agents, and why open source matters more now than ever. Timestamps: 0:00 Intro 5:30 Miami vs San Francisco tech scene 15:05 OpenCode origin story, scaling while open-source 25:03 OpenCode vs. Anthropic: owning models, open-source AI 33:36 AI hardware shortages, predicting the future 42:15 The bet of open-weight models, China vs. US 48:34 Why inference is hard, economics of intelligence 55:36 Will developers be automated? Software engineering as a craft 1:11:02 Advice to founders, building in public, marketing I had so much fun making this with @ad0rnai. Enjoy!
@Madisonkanna
Mind boggling to me that I can make a thing faster and there's always people that ask "but why?" What kind of mentality is that? The pursuit of excellence does not need justification. Also, I find in so many cases, we can't know the impact of an improvement until we do it. For example, one I've talked about before: Ghostty's high IO throughput has enabled terminal program (emulator and TUI) fuzzing at a speed thats incomparably fast to prior solutions. This has resulted in upstream patches to resolve issues in popular projects like btop, tmux, and more. Speed enabled that anecdotally example that lifted the tides of adjacent communities that don't rely on Ghostty technology at all. I didn't predict this. Make things better because they can be better and let the results naturally play out.
@mitchellh
I built an engine for Fable to create its own self-improving NPC town with @threejs and it's actually doing it lol. Literally shipping its own PRs to advance the story and lore. Crazy.
@gill_works
A developer just killed the real estate walkthrough industry by scanned an entire house with his phone. Uploaded it. Now anyone on Earth can walk through it in a browser tab. No app. No VR. No agent. No appointment. Click → you’re inside. Every room. Every angle. Every shadow. Photoreal. The economics are brutal for the old model: → Agent fee on a $500k home: $15,000 → Cost to produce this scan: roughly $200 → Time to "tour" 50 houses: one evening → File size: smaller than a TikTok clip The science is wild too: It runs on 3D Gaussian Splatting instead of polygons. Millions of tiny glowing splats of color and depth reconstruct the scene from your photos, and it loads photoreal on a phone. Freelancers are already charging $300 to $800 per scan for realtors, Airbnbs, venues, and dealerships. One person + one phone + one weekend = a business. Open source. Built on PlayCanvas. Free GitHub:
@bigaiguy
CHINA JUST LEAKED THE FUTURE OF WEB APPS. Alibaba open-sourced PageAgent and 99% of SaaS founders are sleeping on this. It's a JavaScript AI agent that lives INSIDE your webpage. Users control your entire interface with natural language. ↳ No browser extensions needed, screenshots or multi-modal LLMs, headless browser setup, and also no backend rewrite required Just drop it in your HTML with ONE line of code. What took 20 clicks now takes one sentence. "Click login, fill in my credentials, submit the form" Done. This is not a demo, it is production-ready. ↳ Turn any SaaS into an AI copilot in minutes ↳ Smart form filling for ERP, CRM, admin systems ↳ Voice commands and accessibility built in ↳ Multi-page agent tasks via Chrome extension ↳ MCP server support for external control ↳ Bring your own LLM (Qwen, GPT, Claude, anything) Every founder building AI features just got a shortcut. Every developer manually building copilots just got replaced. The integration looks like this: <script src="CDN_URL" crossorigin="true"></script> That's it. Your app now has an AI agent.
@KanikaBK
Shoutout to @vhbrzezowski for is rad CodexBar website redesign! And to everyone who keeps sending me PRs to support now *checks note* 56 providers. You're the best! https://codex.bar Just shipped a slick new update that makes settings way nicer and more intuitive.
@steipete
I'm bullish on open source AI. Was paying $15/month for a popular AI voice to text tool. But switched to an open source one where you download the model to your computer, and everything is done locally. It's better, faster, more private, and it's free! I wonder what other subscriptions I can get rid of?
@thepatwalls
We want to sponsor some open source projects Who should we sponsor? Will build a list and get it done (sponsorships via Github and comped email sending)
@frantzfries
Introducing Clips - 100% free, open source, agent-native alternative to Loom Unlike Loom, agent's can fully understand Clips just from a URL. Every Clip comes with APIs and metadata for agents to explore their contents. Agents can "see and hear" anything in a Clip - not just transcripts, but everything visually in the video at any timestamp. Easily share bug reports, feedback, analyses, or anything else in a way that you can easily pass to agents to use to improve products, reports, or more. Also unlike Loom, you own the software, so no one can jack up prices on you suddenly like Loom did to us. Clips is made to be customized. The built-in agent can customize its own code, so you can personalize the app to your needs and workflows. This, in my opinion, is the future of software. Open-source, forkable, customizable with agents, to make your own personal version of anything. You can also import Looms just from a URL and upload videos as well. I got so sick of telling people "don't send me feedback as looms, I can't pass those to agents, I need text and images" that I had to just solve this once and for all. There's a free hosted version you can use too, or fork and self host yourself. Will link to both in the replies.
@Steve8708