Stop Letting Your Agents Write Markdown.

๐ **Source:** [Stop Letting Your Agents Write Markdown.](https://www.youtube.com/watch?v=S9EGx6ik-18)
> [!note]+ Document Notes
> tags: #html #markdown #agents #ai-tools #user-interface #web-development #claude #output-formats
> author: Theo - t3โคgg
> source: YouTube
> reference: https://www.youtube.com/watch?v=S9EGx6ik-18
> date created: 2024-12-19 08:30
>
> # ๐ท๏ธ Title: Stop letting your agents write Markdown.
>
<!-- deep-read:sections start -->
## ๐งฐ Action Inbox
- [H1] Test HTML output with Claude for complex specs and planning documents โ 00:00 #html #agents
- [H2] Build custom editing interfaces for one-off data manipulation tasks โ 37:45 #html #prototyping
- [H3] Create weekly HTML reports from Jira/Slack for leadership visibility โ 29:30 #automation #career
## ๐งญ Table of Contents
- [[#๐ Summary]]
- [[#๐ Main Content]]
- [[#๐๏ธ Notes]]
- [[#๐ References]]
- [[#๐ฃ๏ธ Paraphrase]]
- [[#๐ฐ Newsletter]]
- [[#โ
Action Items]]
- [[#๐งช Hypotheses]]
- [[#๐ Methodology]]
- [[#โ Questions]]
- [[#๐ฎ Future Research]]
- [[#๐ก Implications]]
- [[#๐ง Learning Styles Assessment]]
- [[#๐ Accessibility Assessment]]
- [[#๐ DEIB Assessment]]
- [[#โ
Logical Validity]]
- [[#๐ก๏ธ DARVO Analysis]]
- [[#๐ฏ Conclusion]]
### ๐ References
- [The Unreasonable Effectiveness of HTML](https://github.com/thoricsson/html-effectiveness)
- [Copilot Kit](https://copilotkit.ai)
## ๐ Summary
- Developers are increasingly switching from Markdown to HTML as output format for AI agents
- HTML provides richer visualizations, better interactivity, and higher information density than Markdown
- The shift improves engagement with AI-generated content and enables novel use cases like custom interfaces
- Industry leaders like Andrej Karpathy predict progression toward more visual, interactive AI outputs
- HTML's expressiveness makes specs, reports, and documentation more likely to be read and acted upon
## ๐ Main Content
This video examines a growing trend where developers are abandoning Markdown in favor of HTML for AI agent outputs. Thor from the Claude Code team published influential articles arguing that HTML's superior expressiveness, visual clarity, and interactive capabilities make it more effective for agent communication.
The core argument centers on HTML's ability to convey richer information through tables, CSS styling, SVG illustrations, JavaScript interactions, and embedded media - capabilities that Markdown fundamentally lacks. For complex specs and planning documents, HTML enables better organization with tabs, collapsible sections, and visual hierarchies that improve readability.
Karpathy's perspective adds weight to this movement, suggesting we're progressing toward increasingly visual AI outputs that leverage human visual processing capabilities. He envisions a future of interactive neural videos and simulations, with HTML representing an intermediate step in this evolution.
Practical applications include automated reporting systems that synthesize data from multiple sources (Slack, Jira, Git) into executive-friendly HTML dashboards, custom editing interfaces for one-off data manipulation tasks, and enhanced code review documents with inline annotations and hierarchical organization.
## ๐๏ธ Notes
#### โฑ๏ธ [00:00](https://youtu.be/S9EGx6ik-18?t=0) โ [H1] Introduction to the HTML vs Markdown debate
- Key idea: Growing industry shift from Markdown to HTML for AI agent outputs
- Evidence: Thor from Claude Code team published "The Unreasonable Effectiveness of HTML"
#### โฑ๏ธ [02:15](https://youtu.be/S9EGx6ik-18?t=135) โ [H2] Copilot Kit sponsorship demonstration
- Key idea: Building AI apps requires specialized tools for streaming, dynamic UI, and thread persistence
- Evidence: "Building AI apps with AI is surprisingly hard... all the weird things like persisting threads, streaming chats"
#### โฑ๏ธ [05:30](https://youtu.be/S9EGx6ik-18?t=330) โ [H1] Thor's article: Information density advantages
- Key idea: HTML carries vastly more information types than Markdown
- Evidence: "Tables, design, illustrations, code, images, spatial workflows, and interactions"
#### โฑ๏ธ [08:45](https://youtu.be/S9EGx6ik-18?t=525) โ [H3] Visual clarity and readability improvements
- Key idea: HTML documents are easier to read than long Markdown files
- Evidence: "I tend to not actually read more than a 100-line markdown file"
#### โฑ๏ธ [12:20](https://youtu.be/S9EGx6ik-18?t=740) โ [H2] Ease of sharing HTML files
- Key idea: HTML files can be shared as simple links vs Markdown attachments
- Evidence: "Upload the file to S3, you can share the link easily"
#### โฑ๏ธ [15:10](https://youtu.be/S9EGx6ik-18?t=910) โ [H1] Interactive capabilities of HTML
- Key idea: HTML enables two-way interactions with sliders, knobs, and form elements
- Evidence: "Allow you to copy these changes into a prompt to paste back into cloud code"
#### โฑ๏ธ [18:30](https://youtu.be/S9EGx6ik-18?t=1110) โ [H2] Code review and understanding use cases
- Key idea: HTML can render diffs, annotations, and flowcharts better than Markdown
- Evidence: "I attach an HTML code explainer to every PR I make now"
#### โฑ๏ธ [22:45](https://youtu.be/S9EGx6ik-18?t=1365) โ [H3] Design and prototype applications
- Key idea: HTML serves as expressive design medium for mockups and interactions
- Evidence: "Claude design is based on HTML because HTML is incredibly expressive at design"
#### โฑ๏ธ [26:15](https://youtu.be/S9EGx6ik-18?t=1575) โ [H1] Reports, research, and learning applications
- Key idea: HTML synthesis of multiple data sources creates readable reports for leadership
- Evidence: "Give an agent access to your Jira and ask it to make a nice looking HTML page"
#### โฑ๏ธ [29:30](https://youtu.be/S9EGx6ik-18?t=1770) โ [H2] Career growth hack with automated reporting
- Key idea: HTML reports from company data make developers look good to management
- Evidence: "Management will go crazy over this... simple way to like look cool to your team"
#### โฑ๏ธ [32:20](https://youtu.be/S9EGx6ik-18?t=1940) โ [H3] Prompting from different perspectives
- Key idea: Pretending to be less knowledgeable steers agents toward better explanations
- Evidence: "Almost half of my prompts are me pretending to be dumber than I am"
#### โฑ๏ธ [35:40](https://youtu.be/S9EGx6ik-18?t=2140) โ [H1] Custom editing interfaces for one-off tasks
- Key idea: Building throwaway HTML tools for specific data manipulation tasks
- Evidence: "Single HTML file purpose-built for this one piece of data"
#### โฑ๏ธ [37:45](https://youtu.be/S9EGx6ik-18?t=2265) โ [H2] Philosophy of disposable code
- Key idea: Writing code for single use is valuable when code generation is cheap
- Evidence: "About 70 plus percent of code gets thrown out after I run it one time"
#### โฑ๏ธ [42:10](https://youtu.be/S9EGx6ik-18?t=2530) โ [H1] Karpathy's vision for visual AI outputs
- Key idea: Human brains prefer visual input, progression toward interactive neural videos
- Evidence: "Around a third of our brains are massively parallel processors dedicated to vision"
#### โฑ๏ธ [45:30](https://youtu.be/S9EGx6ik-18?t=2730) โ [H3] Future of human-AI interfaces
- Key idea: Need for pointing, gesturing, and spatial interaction beyond text/voice
- Evidence: "Need to point and gesture to things on the screen... physically next to you"
## ๐ References
- [Thor's HTML Effectiveness GitHub](https://github.com/thoricsson/html-effectiveness)
- [Copilot Kit](https://copilotkit.ai)
- [Devon Review](https://devonreview.com)
- [T3 Code](https://github.com/t3-oss/create-t3-app)
## ๐ฃ๏ธ Paraphrase
- HTML enables AI agents to create richer, more interactive outputs than Markdown's limited formatting capabilities
- The visual nature of HTML documents increases engagement and readability compared to lengthy text-based specifications
- Practical applications include automated reporting, custom data interfaces, and enhanced code documentation that leverages HTML's expressiveness
## ๐ฐ Newsletter
**HTML Takes Center Stage in AI Agent Workflows**
Developers are discovering that HTML outputs from AI agents create more engaging, actionable results than traditional Markdown. This shift enables richer visualizations, interactive elements, and better organization of complex information.
Key benefits include automated reporting dashboards that synthesize multiple data sources, custom editing interfaces for one-off tasks, and enhanced documentation that teams actually read. The visual nature of HTML leverages human cognitive strengths while enabling novel interaction patterns.
Try asking your AI tools to generate HTML artifacts for your next planning document or data analysis task. The improved engagement might surprise you.
Resources: [Claude Code](https://claude.ai), [HTML Examples](https://github.com/thoricsson/html-effectiveness), [Web Development Docs](https://developer.mozilla.org/)
## โ
Action Items
#### DevRel
- Developer advocacy: Create HTML-based demos showcasing agent capabilities and interactive documentation
- Education: Develop workshops on prompt engineering for visual outputs and HTML generation best practices
- Developer experience: Build tools that convert Markdown docs to interactive HTML experiences
- Developer marketing: Campaign highlighting visual AI outputs and developer productivity gains
- Community management: Moderate discussions on output format preferences, gather feedback on HTML vs Markdown
#### OSPO
- Policy & Governance: Guidelines for HTML output security, sanitization requirements for agent-generated content
- License Compliance: Review implications of HTML generation tools and embedded JavaScript libraries
- Security Management: Assess XSS risks in agent-generated HTML, establish sanitization protocols
- Software Inventory: Track HTML generation dependencies, document third-party visualization libraries
- Developer Support: Training on secure HTML generation, tooling for content validation
- Community Engagement: Engage with HTML/CSS standards bodies on agent-generated content
- Strategic Alignment: KPIs around developer engagement with visual vs text outputs
#### Community
- Maintainers: HTML templates for project documentation, interactive roadmaps and issue visualization
- Contributors: Onboarding guides using interactive HTML, visual contribution flow diagrams
- Sponsors: Impact reports with interactive charts, funding transparency dashboards
- Ecosystem: Cross-project visualization tools, dependency mapping in HTML format
#### WordPress
- Core: Interactive performance budget dashboards, visual component documentation
- Core Performance: HTML profiling reports, interactive metrics visualization
- Core AI: Visual model evaluation interfaces, interactive prompt testing tools
- Documentation: Convert static docs to interactive HTML guides, visual API explorers
- Design: HTML-based design system demos, interactive component galleries
- Marketing: Visual campaign dashboards, interactive WordPress statistics
- Training: Interactive learning modules, visual progress tracking for courses
## ๐งช Hypotheses
- HTML outputs from AI agents increase user engagement by 40-60% compared to equivalent Markdown content
- Visual documentation reduces onboarding time for new developers by leveraging spatial memory and visual processing
- Interactive HTML interfaces for data manipulation reduce errors compared to manual CSV/JSON editing
- Teams using HTML reports show improved decision-making speed due to better information visualization
### ๐ Methodology
- A/B test engagement metrics between Markdown and HTML documentation formats
- Time-to-comprehension studies comparing visual vs text-based technical specifications
- Error rate analysis for data manipulation tasks using custom HTML interfaces vs traditional methods
- Decision latency measurement in teams using visual dashboards vs text reports
### โ Questions
- How do we balance HTML's expressiveness against version control complexity and diff readability?
- What security protocols are needed for safely rendering agent-generated HTML in enterprise environments?
- How might HTML generation capabilities change developer workflow patterns and collaboration methods?
### ๐ฎ Future Research
- Investigation into optimal HTML structure patterns for different types of technical documentation
- Development of hybrid formats combining Markdown's simplicity with HTML's visual capabilities
- Research into accessibility implications of agent-generated visual content and screen reader compatibility
### ๐ก Implications
- Practice: Shift toward visual-first documentation and reporting workflows in development teams
- Policy: Need for HTML sanitization and security guidelines in enterprise AI tool adoption
- Security: XSS prevention and content validation requirements for agent-generated HTML
- Education: Training programs on visual prompt engineering and HTML generation best practices
- Funding: Investment in tools that bridge Markdown simplicity with HTML expressiveness
### ๐ง Learning Styles Assessment
Reading level estimate: 12th grade (technical content with domain-specific terminology)
#### ๐ Visual learners
- Present: Code examples, screenshot comparisons, HTML rendering demonstrations
- Improve: Side-by-side visual comparisons of Markdown vs HTML outputs, workflow diagrams
#### ๐ Aural learners
- Present: Video format with verbal explanations and commentary
- Improve: Audio-only version with descriptions of visual elements, podcast-style summary
#### ๐ฃ๏ธ Verbal learners
- Present: Clear definitions of technical terms, analogies comparing formats
- Improve: Glossary of HTML/agent terminology, story-driven examples of format evolution
#### ๐งฉ Kinesthetic learners
- Present: Step-by-step prompting examples, hands-on demonstrations
- Improve: Interactive playground for testing HTML vs Markdown outputs, practice exercises
#### ๐ง Logical learners
- Present: Structured comparison tables, decision trees for format selection
- Improve: Flowcharts for choosing output formats, quantified benefits analysis
#### ๐งโ๐คโ๐ง Social learners
- Present: Community discussion references, team collaboration examples
- Improve: Discussion prompts for team format adoption, collaborative decision frameworks
#### ๐งโโ๏ธ Solitary learners
- Present: Individual experimentation suggestions, self-assessment opportunities
- Improve: Personal workflow evaluation checklists, reflective prompts on format preferences
#### ๐ฟ Naturalistic learners
- Present: Evolution metaphors for format development, ecosystem thinking
- Improve: Analogies to natural information processing, environmental impact considerations
### ๐ Accessibility Assessment
#### Screen reader semantics
- Present: Video transcript available, structured headings
- Improve: Alt text for code examples, ARIA labels for interactive elements discussion
#### Keyboard navigation
- Present: Standard video player controls, logical content flow
- Improve: Keyboard shortcuts for video sections, skip links for content sections
#### Contrast and readability
- Present: Clear visual distinction between code and commentary
- Improve: High contrast mode options, adjustable text sizing
#### Text resizing and reflow
- Present: Responsive video player, scalable text content
- Improve: Reflow support at 200% zoom, text-only version availability
#### Media and captions
- Present: Full transcript provided, clear audio quality
- Improve: Synchronized captions, audio descriptions for visual demos
#### Forms and interactions
- Present: Standard video interaction patterns
- Improve: Accessible video controls, keyboard navigation support
### ๐ DEIB Assessment
#### Cultural breadth
- Present: Generic technical examples applicable across contexts
- Improve: Examples from diverse technical environments, international use cases
#### Inclusive language
- Present: Gender-neutral technical terminology, defined jargon
- Improve: Plain language summaries, cultural context for workflow examples
#### Neurodiversity support
- Present: Clear structure, consistent formatting
- Improve: Content warnings for rapid visual changes, alternative consumption formats
#### Representation
- Present: Focus on technical content over personal characteristics
- Improve: Diverse example scenarios, inclusive team collaboration examples
#### Psychological safety
- Present: Respectful tone toward different preferences
- Improve: Acknowledgment of valid concerns about format changes, non-judgmental language
### โ
Logical Validity
#### Strong reasoning
- Deductive strength: Strong logical progression from HTML capabilities to practical benefits
- Inductive strength: Good use of specific examples to support general claims about format effectiveness
- Causal reasoning: Clear connections between visual processing and improved engagement
- Analogical strength: Effective comparison between human visual processing and AI output optimization
#### Fallacies
- Appeal to authority: Over
---
## Full Transcript
[00:00] I recently published a video about all<br>[00:01] the flaws in Markdown. And you all<br>[00:03] really loved that one. Uh, kind of. You<br>[00:06] definitely weren't super rude to me in<br>[00:07] the comments about how I'm click baiting<br>[00:08] and terrible and then watch the video<br>[00:10] and realize I actually had things to say<br>[00:12] about Markdown. But yeah, it seems like<br>[00:14] Markdown's a sensitive topic for a lot<br>[00:16] of people because it does have a lot of<br>[00:17] strengths. I mean, I've been a Markdown<br>[00:19] fan for the better part of two decades<br>[00:20] now. I understand. But I feel like we're<br>[00:23] overusing it. And it seems like I'm no<br>[00:24] longer the only one who feels this way.<br>[00:26] Thoric from the cloud code team just<br>[00:28] published an article using claude code<br>[00:30] the unreasonable effectiveness of HTML.<br>[00:33] He then followed up with HTML is the new<br>[00:36] markdown. I've stopped writing markdown<br>[00:38] files for almost everything and switched<br>[00:39] to using cloud code to generate HTML for<br>[00:41] me instead. This article is why I have<br>[00:44] seen some fun hacks around using HTML<br>[00:47] with tools like claude code. I actually<br>[00:49] learned a bunch of these from Simon<br>[00:50] Willis way back when we were doing GBT<br>[00:52] testing together. I have been amazed at<br>[00:54] some of the clever things people figure<br>[00:56] out with HTML and how they use it to be<br>[00:58] more effective working with agents. And<br>[01:00] Thor and I aren't the only ones who feel<br>[01:01] this way. Carpathy actually came out and<br>[01:03] said that this works really well, just<br>[01:05] asking it to structure responses as<br>[01:06] HTML. He had a lot to say as well. We're<br>[01:09] going to go into all of this and more.<br>[01:11] Agents clearly like Markdown and HTML,<br>[01:13] but there's one more important thing<br>[01:14] that agents love. Today's sponsor.<br>[01:16] Building most things with AI is pretty<br>[01:18] easy, but there's one that's<br>[01:19] surprisingly hard. Building AI apps with<br>[01:21] AI. It turns out all the weird things<br>[01:23] like persisting threads, streaming<br>[01:25] chats, getting UI to render dynamically<br>[01:27] on the fly and more just kind of is hard<br>[01:29] to do. Believe me, I've tried a lot. E3<br>[01:32] chat and T3 code show just how hard it<br>[01:34] is to get this right. And if Copilot was<br>[01:36] there when we started, it would have<br>[01:37] made my life much easier. They call<br>[01:39] themselves the enterprise ready<br>[01:40] front-end stack for agents, but I would<br>[01:41] go further than that because it's not<br>[01:43] just front end. It's a real full stack<br>[01:45] solution. Here's a simple app we built<br>[01:46] with Copilot Kit. We're going to ask it<br>[01:48] to compare the latest models from OpenAI<br>[01:50] and Anthropic. You probably expected to<br>[01:51] just render a really bad markdown table,<br>[01:53] right? Nope. You can write custom<br>[01:56] components in whatever framework or tool<br>[01:58] system you want. Obviously, we're big<br>[02:00] React guys here and their React stuff is<br>[02:01] great. So here it just rendered a custom<br>[02:03] component listing all of the different<br>[02:05] models and their prices. But more<br>[02:06] importantly, it rendered a comparison<br>[02:08] option here where I as the user can<br>[02:11] interact, make changes, hit submit, and<br>[02:14] now it's going to do another pass where<br>[02:15] the model gets all of the information<br>[02:17] back and renders another dynamic UI all<br>[02:20] based on components that we wrote. The<br>[02:21] code couldn't be simpler. They provide a<br>[02:23] use component hook that you give a name,<br>[02:24] description, and parameters, which are<br>[02:26] just the things it needs to pass. You<br>[02:28] know, classical Zod schema here. you've<br>[02:30] been around for a while, you're already<br>[02:31] familiar with all this. And then you<br>[02:32] give it the custom component that<br>[02:33] actually renders the results. They also<br>[02:35] have a hook for interactive components<br>[02:37] right here, which is just as easy to<br>[02:38] use. Getting the front end and the back<br>[02:40] end to interact properly in systems like<br>[02:42] this is incredibly complex. Copilot kit<br>[02:44] couldn't make it easier, even if you<br>[02:46] don't want to use their components. I<br>[02:47] know Ben's already building his own<br>[02:48] wrappers around it in spelt. Build<br>[02:50] better interactive experiences with<br>[02:51] agents at soyb.v.link/copilotkit.<br>[02:54] Let's see what Thor has to say about the<br>[02:56] unreasonable effectiveness of HTML for<br>[02:58] agents. Markdowns become the dominant<br>[03:01] file format used by agents to<br>[03:02] communicate with us. It's simple,<br>[03:04] portable, has some rich text capability,<br>[03:06] and it's easy for you to edit. Glad has<br>[03:08] even got surprisingly good at using AI<br>[03:10] to make diagrams inside of markdown<br>[03:12] files. I would disagree. I can't tell<br>[03:14] you how many times I see it miss pad and<br>[03:16] have like certain layers just like push<br>[03:18] out too far on the borders. It is what<br>[03:20] it is. As agents have gotten more and<br>[03:22] more powerful, I have felt that markdown<br>[03:24] has become a restricting format. I've<br>[03:26] had a difficult to read a markdown file<br>[03:27] of more than 100 lines. I want richer<br>[03:29] visualizations, color, and diagrams, and<br>[03:31] I want to be able to share them easily.<br>[03:33] I'm also increasingly not editing these<br>[03:35] files myself, but using them as specs,<br>[03:38] reference files, brainstorming outputs,<br>[03:39] etc. When I do make edits, I'm usually<br>[03:42] prompting Claude to edit them, which<br>[03:43] removes one of Markdown's largest<br>[03:45] benefits. I've started preferring HTML<br>[03:47] as an output format instead of Markdown,<br>[03:49] and increasingly see this being used by<br>[03:51] others on the Claude Code team. This is<br>[03:53] why you want to start with some<br>[03:55] examples. You can see a bunch here. This<br>[03:57] HTML effectiveness GitHub page. Just be<br>[03:59] sure to come back and read more after.<br>[04:01] We will do just that. Oh, yep. I can<br>[04:04] already smell the Claude code design<br>[04:06] skill all over this one. Something I've<br>[04:08] been meaning to do for a bit. I am<br>[04:10] finally tired of the front-end design<br>[04:12] skill. And as such,<br>[04:16] away it goes.<br>[04:18] I have now removed the front-end design<br>[04:20] skill because I am so tired of this<br>[04:23] stale copy paste design format that<br>[04:25] everything ends up with. Cool. The<br>[04:28] unreasonable effectiveness of HTML. 20<br>[04:31] self-contained HTML files and agent<br>[04:33] produced instead of a wall of markdown.<br>[04:35] Each one trades a document you'd skim<br>[04:36] for one that you'd actually read. Open<br>[04:38] any of them directly in a browser. Group<br>[04:40] by the kind of work that they replace. I<br>[04:42] can tell from this copy that this was<br>[04:43] written by an agent. I recently got<br>[04:46] gifted a sub to Panggram Labs from<br>[04:48] Slasher and it apparently is really good<br>[04:51] at detecting AI generated text. From my<br>[04:54] brief experimentation, it was. So, we're<br>[04:57] going to start with this article and<br>[04:59] take a look to see if we are reading AI<br>[05:01] slop or not. Okay, the site's super<br>[05:03] broken, but apparently 100% of the text<br>[05:05] is human written. Good start. But if we<br>[05:08] switch over to this site,<br>[05:13] I'll just grab different sections of the<br>[05:15] text. Yep, just as expected, the HTML is<br>[05:20] entirely AI generated. People are<br>[05:23] already asking, so I'll make it clear.<br>[05:24] This wasn't an ad. I just have a friend<br>[05:26] that works at the company now and was<br>[05:28] skeptical of how good Pangram was at AI<br>[05:30] text detection. And thus far, it's had a<br>[05:32] pretty close to 100% hit rate for my<br>[05:34] test experience. I don't know if the<br>[05:36] product's any good. I don't know<br>[05:37] anything about it beyond it being sent<br>[05:39] to me by a friend. And yeah, it seems<br>[05:42] cool and it's fun to quickly check if<br>[05:43] something's AI generated or not cuz I<br>[05:45] can usually tell. But now I have<br>[05:46] confirmation some amount. It's all<br>[05:48] lossy. It is what it is. Just wanted to<br>[05:50] see. So we're not reading AI slop when<br>[05:51] we read his article, but we're<br>[05:53] absolutely reading AI slop when we read<br>[05:54] these HTML files. Let's go back to<br>[05:56] reading these HTML files. He shows some<br>[05:59] examples with exploration in planning.<br>[06:01] When you're not sure what you want yet,<br>[06:02] ask the agent to fan out across several<br>[06:04] directions and lay them next to each<br>[06:05] other so you can point at one instead of<br>[06:07] reading three sequential walls of text<br>[06:09] and trying to hold them all in your<br>[06:10] head. Once you've picked, turn the pick<br>[06:12] into a plan that the implementer can<br>[06:13] actually read. So here it made HTML for<br>[06:16] three ways to implement debounced<br>[06:18] search. It generated an inline use<br>[06:20] effective set timeout, a custom use<br>[06:22] debounce hook with pros and cons under<br>[06:25] each as well as a tiny external library<br>[06:27] that it could use. It had a<br>[06:29] recommendation at the bottom. I'm okay<br>[06:31] with this just being in the chat, but I<br>[06:33] can see why in certain cases this would<br>[06:34] be worth breaking out into an HTML file.<br>[06:37] Visual design directions<br>[06:41] for the no tasks yet state. So, this is<br>[06:44] it mocking four potential directions for<br>[06:47] the UI. This I could see being useful.<br>[06:49] I've already done a trick similar to<br>[06:50] this before, and I've shared this in<br>[06:51] many videos where when I want different<br>[06:53] design renditions for something, I don't<br>[06:56] ask the model to do one and then ask<br>[06:57] again for it to do another. I ask you<br>[06:59] for four distinct options that it will<br>[07:01] put on different routes so I can take a<br>[07:03] look at all of them just because I want<br>[07:05] to see them all. And if you ask it to<br>[07:07] generate them all at once, you'll get<br>[07:08] more variety than asking one after<br>[07:10] another because it's going to just go<br>[07:12] down a similar path otherwise. Another<br>[07:14] fun example that he has here is<br>[07:16] implementation plan, a full road map<br>[07:17] with a nice little UI for it. It's fine.<br>[07:22] I think there's a little too much going<br>[07:24] on to counteract the markdown. I might<br>[07:27] just be crazy here. I personally like<br>[07:30] just reading markdown. So, this I don't<br>[07:33] necessarily love, but I could see why it<br>[07:36] would be valuable in certain places. How<br>[07:38] about the PR writeups?<br>[07:43] I like the idea of basically anything<br>[07:45] that gives you a better hierarchy for<br>[07:46] PRs. I also like the idea of being able<br>[07:49] to like open and close parts of this to<br>[07:51] make it easier for me to visualize<br>[07:52] things. Like, I see some of the<br>[07:54] potential here. I'm not in love with<br>[07:55] this yet. So, I'm going to skip back to<br>[07:57] the article and see how I can be<br>[07:59] convinced by Lurk's words instead of his<br>[08:02] examples. So, why HTML? We start with<br>[08:05] information density. Here's a set of<br>[08:08] different types of information. A single<br>[08:09] HTML file can carry. Tables, design,<br>[08:12] illustrations, code, images, spatial<br>[08:13] workflows, and interactions. Good luck<br>[08:15] getting it to include images, especially<br>[08:17] if it can't generate them. I I cannot<br>[08:19] tell you how many times I've seen models<br>[08:21] hallucinate B 64 encodings or URLs even<br>[08:24] to this day for images. It's actually<br>[08:26] insane. Actually, on that note, I had a<br>[08:28] funny one recently where I was asking<br>[08:30] GPT 5.5 to find me images of a specific<br>[08:34] thing that we were talking about. I<br>[08:36] think it was like literally for some I<br>[08:38] was installing in one of my doors, like<br>[08:40] a carpentry task. I watched in its<br>[08:42] reasoning trace. The user asked for us<br>[08:45] to find images on the internet, but it's<br>[08:48] in our system prompt that we must<br>[08:50] generate an image whenever the user<br>[08:51] asks. So, we're going to generate<br>[08:53] images. And then it went and generated a<br>[08:56] shitty image instead of finding the one<br>[08:57] that I was looking for. So, these models<br>[08:59] still suck at outputting images. They're<br>[09:01] better at recognizing the contents of<br>[09:02] them, but actually finding an image and<br>[09:04] putting them somewhere, good luck. Have<br>[09:06] fun. Back to the article. HTML can<br>[09:08] convey much richer information compared<br>[09:10] to markdown. It can of course do simple<br>[09:13] document structure like headers and<br>[09:14] formatting. But it can also represent<br>[09:16] all sorts of other information like<br>[09:18] tabular data using tables, design data<br>[09:20] with CSS, illustrations with SVGs, code<br>[09:23] snippets with script tags, interactive<br>[09:25] using HTML elements with JavaScript and<br>[09:27] CSS, workflows using SVG and HTML,<br>[09:30] spatial data using absolute positions<br>[09:32] and canvases, and images using image<br>[09:34] tags. I'd go so far as to say that<br>[09:36] there's almost no set of information<br>[09:38] that Claude can read that you cannot<br>[09:40] fairly efficiently represent with HTML.<br>[09:42] This makes it a highly efficient way for<br>[09:44] the model to communicate in-depth<br>[09:46] information to you and for you to revy<br>[09:48] it. I found that in the absence of being<br>[09:51] able to do this, the model may do more<br>[09:53] inefficient things in markdown like as<br>[09:55] diagrams or my favorite estimating<br>[09:57] colors with Unicode characters like in<br>[09:59] this screenshot from Cloud Code. Also<br>[10:01] notice the uh padding issue I mentioned<br>[10:04] before where it just [ย __ย ] up the rows<br>[10:06] and doesn't have the right number of<br>[10:08] spaces. So the actual border is just<br>[10:10] offset slightly. I see this all the<br>[10:12] time. The next section is visual clarity<br>[10:15] and ease of reading. As Claude is able<br>[10:17] to do more complex work, it's also<br>[10:19] writing larger and larger specs and<br>[10:20] plans. In practice, I found I tend to<br>[10:23] not actually read more than a 100line<br>[10:24] markdown file and I'm certainly not able<br>[10:26] to get anyone else in my org to read it.<br>[10:28] But HTML documents are much easier to<br>[10:30] read. Quad can organize the structure<br>[10:32] visually to be ideal to navigate with<br>[10:34] tabs, illustrations, links, etc. It can<br>[10:36] even be mobile responsive so that you<br>[10:38] can read it differently based on your<br>[10:40] form factor. There's also the ease of<br>[10:42] sharing. Markdown files are fairly hard<br>[10:44] to share since most browsers do not<br>[10:45] render them natively well. You often<br>[10:47] have to add them as attachments to<br>[10:49] emails or messages. With HTML, as long<br>[10:51] as you upload the file, for example, to<br>[10:53] S3, you can share the link easily. Your<br>[10:56] colleagues can open it wherever they<br>[10:58] wish and easily reference it. I have a<br>[11:00] feeling those examples do not work well<br>[11:02] on mobile.<br>[11:06] Yeah. So, wherever they want is not<br>[11:08] necessarily true as you see here. So,<br>[11:12] not everywhere they want. They say it<br>[11:15] can be mobile responsive. So, you read<br>[11:17] it differently based on your form<br>[11:18] factor, but the examples that were<br>[11:19] shared here weren't. And the more of<br>[11:21] those things you address, the more<br>[11:23] bloated the HTML gets. and at some point<br>[11:25] you're just burning output tokens. He<br>[11:27] does also say that the chance of someone<br>[11:29] actually reading your spec report or PR<br>[11:30] write up is much higher if it's in HTML.<br>[11:33] The idea I have to reconcile here is how<br>[11:36] much of that is because the markdown is<br>[11:38] too bloated and the HTML makes it more<br>[11:40] readable versus how much of that is that<br>[11:42] the HTML is novel enough that it's<br>[11:46] easier to jump on and read because<br>[11:48] there's less things like that that<br>[11:50] you're being handed. Like if everyone<br>[11:52] who is spamming us with giant markdown<br>[11:53] files was to switch over to spamming us<br>[11:55] with HTML links, how much more of that<br>[11:58] would we be reading, I think it would be<br>[12:00] better, but I don't think it's as much<br>[12:01] better as it is now. The novelty of HTML<br>[12:05] is a big portion of the value right now.<br>[12:08] The interaction part is really strong,<br>[12:09] too, though. I will give him that. HTML<br>[12:12] can allow you to interact with the<br>[12:13] document. For example, you might want to<br>[12:14] ask it to add sliders or knobs to adjust<br>[12:17] the design or allow you to tweak<br>[12:18] different options in the algorithm to<br>[12:20] see what happens. You can also ask it to<br>[12:22] let you copy these changes into a prompt<br>[12:24] to paste back into cloud code. He has a<br>[12:26] bunch of examples of these types of<br>[12:27] playgrounds and two-way interactions<br>[12:28] that he's built. There's also data<br>[12:30] ingestion. Why use cla code to make HTML<br>[12:33] files instead of cla or claude design,<br>[12:35] for example? One of the biggest reasons<br>[12:37] is all the context that cla code can<br>[12:39] get. For example, when writing this<br>[12:41] article, I ask Claude Code to read<br>[12:42] through my code folder and find all the<br>[12:44] HTML files that I've generated, group<br>[12:46] and categorize them, and then make an<br>[12:48] HTML file with all the diagrams<br>[12:50] representing each type. The diagrams you<br>[12:52] see in this article are a direct result<br>[12:53] of that. Besides the file system, cloud<br>[12:56] code can find additional context using<br>[12:58] your MCPS like Slack, linear, etc. Your<br>[13:00] web browser with Claude and Chrome, your<br>[13:02] git history, etc. Actually, a valuable<br>[13:05] point here. I have done a lot of this<br>[13:06] type of thing where I have like a bunch<br>[13:08] of data on my computer or in some folder<br>[13:10] somewhere and I just ask an agent to go<br>[13:13] through it and visualize it to make<br>[13:15] something more useful. I've done this<br>[13:17] many times. I'm beginning to think that,<br>[13:19] especially when he mentions the HTML<br>[13:21] files that he has just scattered across<br>[13:23] his computer, that something we might<br>[13:25] need here is a better skill that<br>[13:27] describes the shape of the HTML, tells<br>[13:29] it can use Tailwind or whatever, gives<br>[13:31] it a structure for what directories to<br>[13:33] leave it in so you don't clog up your<br>[13:34] git history. I'm going to think through<br>[13:36] what a good skill for this would look<br>[13:38] like, and play with that in the future.<br>[13:41] I'll report back for sure. The next<br>[13:43] point he has is that it's joyful. Making<br>[13:45] HTML documents with Claude is just more<br>[13:47] fun and it makes me feel more involved<br>[13:48] and invested in the creation and that<br>[13:50] itself is enough. Honestly, that's the<br>[13:53] biggest point here. If this makes you<br>[13:55] engage more with the output of your<br>[13:56] agent so that you get better results and<br>[13:59] are more involved in the process of<br>[14:00] steering it, there's a lot of value<br>[14:02] there. It's silly to say it that way,<br>[14:04] but if the thing makes you more excited<br>[14:06] to build and focus and iterate, that is<br>[14:09] good. It's the same reason I've been in<br>[14:11] favor of things like Vim. If setting up<br>[14:12] Neo Vim makes you want to code more and<br>[14:15] build more, awesome, do it. I'm all in<br>[14:18] favor of things that get developers<br>[14:19] excited to be more involved in the<br>[14:21] process and to create more things. That<br>[14:23] is always what I push for. So, how do<br>[14:25] you get started? I'm a little bit afraid<br>[14:26] that people will read this article and<br>[14:27] turn it into a/HTML skill or something.<br>[14:30] Look, I I didn't pre-eread. I am going<br>[14:33] to do this to be clear, but I'm not<br>[14:35] going to do just SL HTML. I'm going to<br>[14:36] do something very different here. I have<br>[14:38] plans. We'll get to those plans later.<br>[14:40] probably not in this video, but make<br>[14:42] sure you're subbed if you're not. By the<br>[14:43] way, I'm amazed half y'all still haven't<br>[14:44] hit that button. If you want to see my<br>[14:46] future HTML skill video, or honestly<br>[14:50] more exciting, the video I'm going to do<br>[14:52] trying all of Matt Poc's skills,<br>[14:54] definitely make sure you're subscribed<br>[14:55] because there's a lot of fun content in<br>[14:57] the pipeline. While there might be some<br>[14:59] value in a skill like that, I want to<br>[15:00] emphasize that you don't need to do much<br>[15:02] to get Claude to do this. You can just<br>[15:04] ask it to make an HTML file or make an<br>[15:06] HTML artifact. The trick is knowing what<br>[15:08] you want the artifact to do and how you<br>[15:10] might use it. You may over time make a<br>[15:12] skill, but for now, I suggest that you<br>[15:14] just prompt from scratch to get the hang<br>[15:15] of how to use it in different cases. I<br>[15:18] absolutely agree. In general with<br>[15:19] skills, you should always start by<br>[15:21] asking the model to do the thing. See<br>[15:23] what it gets right and wrong. Figure out<br>[15:25] what parts you have to include every<br>[15:26] time, what parts you don't, and then<br>[15:28] slowly figure out what those are so you<br>[15:30] can build a skill to do it right. And<br>[15:33] also on that same note, one of the best<br>[15:34] ways to test a skill is to just go copy<br>[15:37] the text for said skill, paste it into<br>[15:40] your input box, and hit enter and see<br>[15:41] what happens. Like it's the same thing.<br>[15:43] The first use case he has is for specs,<br>[15:45] planning, and exploration. HTML is a<br>[15:47] rich canvas for Claude to dive into a<br>[15:48] problem. When I start working on a<br>[15:50] problem, instead of a simple markdown<br>[15:51] plan, I expect to make a web of HTML<br>[15:54] files. For example, I might start with<br>[15:56] asking Claude code to brainstorm and<br>[15:57] create some explorations of different<br>[15:59] options. I would then ask it to expand<br>[16:01] more into one, maybe make mockups or<br>[16:03] code snippets. Finally, when I'm feeling<br>[16:05] good, I'll ask it to write an<br>[16:06] implementation plan. When I have a plan,<br>[16:08] I'll create a new session and pass in<br>[16:09] all of those files for it to implement.<br>[16:12] Notice that he says he'll create a new<br>[16:13] session instead of compaction.<br>[16:15] Definitely not cuz the compaction is<br>[16:16] kind of garbage in cloud code. Or to be<br>[16:19] fair, it got really bad at GBD55. I hate<br>[16:22] the compaction now and I used to trust<br>[16:23] it dearly with 53 and 54. So yeah, I'm<br>[16:27] starting more sessions than I ever did.<br>[16:28] Even a simple thing like I just a few<br>[16:30] days ago did the uh Azure bench thing a<br>[16:33] very simple benchmark just measuring<br>[16:35] inference speeds on Azure. I did like 30<br>[16:38] plus threads to make this obviously all<br>[16:41] in T3 code. I wonder why but yeah I<br>[16:44] realized it's better to just make a<br>[16:46] shitload of branches and a shitload of<br>[16:48] threads instead of trying to massage an<br>[16:50] existing long thread into the shape you<br>[16:52] want. I just copy paste the parts I like<br>[16:54] into a new thread and start from<br>[16:56] scratch. But it is cool that the HTML<br>[16:58] files are a good thing to hand to an<br>[17:00] agent. I bet you could just take one of<br>[17:02] these HTML files, give it to the agent<br>[17:04] with no additional context, and it'll<br>[17:06] usually figure out what you want. Makes<br>[17:08] sense. Also useful for verification.<br>[17:10] When he's verifying the results of the<br>[17:12] work, he'll ask a verification agent to<br>[17:14] read the HTML files, and it will have a<br>[17:16] much broader context on what it actually<br>[17:17] needs to verify. That's a really useful<br>[17:19] point. He gives some example prompts<br>[17:20] here, too. I'm not sure what direction<br>[17:22] to take the onboarding screen. generate<br>[17:24] six distinctly different approaches,<br>[17:26] varying layout, tone, and density, and<br>[17:28] lay them out as a single HTML file in a<br>[17:30] grid so I can compare them side by side,<br>[17:32] label each with the trade-off it's<br>[17:34] making. I like this a lot. Again, having<br>[17:36] the model generate distinctly different<br>[17:38] options in one pass gets you a much<br>[17:40] better variety than you might otherwise<br>[17:42] get. The next example he has is, create<br>[17:43] a thorough implementation plan in an<br>[17:45] HTML file. Be sure to make some mockups,<br>[17:47] show data flows, and add important code<br>[17:49] snippets that I might want to review.<br>[17:51] Make it easy to read and digest. Again,<br>[17:53] just getting used to prompting the model<br>[17:55] and seeing how it responds to these<br>[17:56] different scenarios. There is no one<br>[17:58] guide. And even if there was, as model<br>[18:00] updates happen, things change so fast.<br>[18:02] You got to just feel it out with these<br>[18:04] things. The next section he has is for<br>[18:06] code review and understanding. Code<br>[18:07] could be difficult to read in a markdown<br>[18:09] file. Eh, if you have a good like<br>[18:11] markdown parser, even one in like VS<br>[18:13] Code, and I'll just demo this quick.<br>[18:15] Let's uh check the skillmd file. Okay,<br>[18:18] cool. This file is a markdown file. It's<br>[18:21] actually already quite readable in my<br>[18:22] opinion. If I make the font bigger, it's<br>[18:24] even more so. Watch this.<br>[18:27] Typescript const x equals sub nerds<br>[18:31] please sub. It does syntax highlighting<br>[18:34] in code blocks as long as you label it<br>[18:36] with the language. If I delete that, it<br>[18:37] stops. I'm amazed how people don't know<br>[18:39] this. In most markdown parsers, when you<br>[18:41] do the triple back tick, you can put the<br>[18:43] file extension for the language and it<br>[18:46] will do syntax highlighting for that<br>[18:48] language. If you include this in the<br>[18:50] browser via HTML, it now has to figure<br>[18:53] out how to render the diffs and how to<br>[18:56] render the code blocks. The process of<br>[18:58] it figuring out how to do this, much<br>[19:01] less doing it properly, is as if not<br>[19:03] more expensive, both mentally for me as<br>[19:06] the person consuming it, but more so for<br>[19:08] the agent generating this and generating<br>[19:09] the tokens, that this is actually just<br>[19:12] as good. To each their own, but I don't<br>[19:15] necessarily agree with that piece. I<br>[19:17] will say rendering diffs sucks in<br>[19:19] markdown. Code can be difficult to read<br>[19:22] in a markdown file. Don't agree there.<br>[19:23] As I just established with HTML, we can<br>[19:26] render diffs, annotations, flowcharts,<br>[19:28] modules, etc. I don't really want these<br>[19:31] things in my code snippets that I'm<br>[19:33] reading outside of like a comment. I do<br>[19:35] want diffs though, so not having diff<br>[19:37] sucks. Use this to understand code that<br>[19:39] the agent has written to get code review<br>[19:41] or to explain a PR to somebody reviewing<br>[19:43] your code. I find this often works<br>[19:45] better than a default GitHub diff view.<br>[19:47] And I attach an HTML code explainer to<br>[19:49] every PR I make now. Interesting. I see<br>[19:52] potential for this part. One of my<br>[19:55] favorite things a sponsor built<br>[19:57] recently, and this is not something<br>[19:58] they're paying me to say. This is just a<br>[20:00] thing I genuinely think is cool. It's<br>[20:02] Devon Review. So, if you take github.com<br>[20:04] and change that to devonreview.com for a<br>[20:06] given PR, it will do an analysis of this<br>[20:10] poll request. But the coolest parts are<br>[20:12] that it will actually change the view to<br>[20:15] be organized based on the importance and<br>[20:18] grouped based on the related changes. So<br>[20:20] instead of it just having all of the<br>[20:22] files in order, it'll create its own<br>[20:25] hierarchy where things are. Apparently I<br>[20:27] am out of credits on my original comped<br>[20:30] account. I'll have to deal with that<br>[20:31] later. Julius has been abusing all of<br>[20:33] these tools. Clearly, I'm not using it<br>[20:35] that much if it's broken right now, but<br>[20:36] the couple times I did, I actually found<br>[20:37] it really nice and I'm going to go reup<br>[20:39] because I've enjoyed it a lot. The idea<br>[20:41] of changing how we review code to be<br>[20:44] better shaped based on the sheer volume<br>[20:45] of code that we're reviewing is a good<br>[20:47] idea and it's one I like because going<br>[20:49] through all of your code in alphabetical<br>[20:51] order depending on where it is in your<br>[20:53] project has always been [ย __ย ] stupid<br>[20:55] and it's more stupid than ever now.<br>[20:57] doing this yourself as a developer by<br>[20:59] telling the model to generate HTML,<br>[21:02] summarizing the code, showing the<br>[21:03] changes, and making a better hierarchy.<br>[21:05] That's a good idea. I like this. The<br>[21:08] other cool thing is that you can steer<br>[21:09] the model towards the parts you want the<br>[21:11] reviewers to focus on. So, in this<br>[21:13] example prompt he has, he says, "Help me<br>[21:15] review this PR by creating an HTML<br>[21:16] artifact that describes it. I'm not very<br>[21:18] familiar with the streaming and back<br>[21:20] pressure logic, so focus on that. render<br>[21:22] the actual diff with inline margin<br>[21:24] annotations, color code findings by<br>[21:26] severity, and whatever else might be<br>[21:28] needed to convey the concepts. Well, I<br>[21:29] like this idea a lot. Then we have the<br>[21:31] designs and prototypes. Claude design is<br>[21:33] based on HTML because HTML is incredibly<br>[21:35] expressive at design. Even if your end<br>[21:37] surface isn't HTML, Claude can sketch<br>[21:39] out a design in HTML and then write it<br>[21:41] in your language of choice, be it React,<br>[21:43] Swift, etc. I love that React's a<br>[21:45] language here. Long debate from the<br>[21:47] olden days of webdev, but React is kind<br>[21:49] of a language. You can also prototype<br>[21:51] interactions like animations, actions,<br>[21:52] etc. Consider asking Claude to make<br>[21:54] sliders, knobs, etc. to tune in exactly<br>[21:57] what you're looking for. Yeah, this is a<br>[22:00] little much for a simple checkout<br>[22:01] button, but I I get why you would want<br>[22:04] to care this much. This section is one<br>[22:06] of my personal favorites, using this for<br>[22:08] reports, research, and learning. Cloud<br>[22:10] Code's incredibly good at synthesizing<br>[22:11] information across multiple data sources<br>[22:13] and converting it into a report for<br>[22:15] readability. You can prompt Claude to<br>[22:16] search your Slack, your codebase, Git<br>[22:18] history, the internet, etc., and use it<br>[22:20] to generate extremely readable reports<br>[22:22] for yourself, for your leadership, for<br>[22:24] your team, etc. This is actually a crazy<br>[22:27] hack for those who are looking for ways<br>[22:28] to like stand out using AI at your<br>[22:30] company. Give an agent access to your<br>[22:32] Jira and ask it to make a nicel looking<br>[22:34] HTML page over what got done every week<br>[22:36] and then present that during your<br>[22:38] standup. Like, give people a resource to<br>[22:40] look at that makes the leaders feel like<br>[22:42] they understand what's going on. It's<br>[22:43] stupid, but this is a really simple way<br>[22:45] to like look cool to your team and to<br>[22:47] your leadership. Making them feel more<br>[22:49] informed by running a simple prompt.<br>[22:52] Really powerful. Yeah, chat's already<br>[22:54] understanding. Wait, I don't think my<br>[22:56] manager allows me to use the Jira API<br>[22:58] yet, but I can do this. Management will<br>[22:59] go crazy over this. Yeah, you guys get<br>[23:01] the idea. Always happy to sneak in these<br>[23:04] hacks for career growth where I can.<br>[23:06] There's a lot of fun ones here if you<br>[23:08] know where to look. You can assemble<br>[23:09] things like this in long- form HTML<br>[23:11] documents, an interactive explainer, or<br>[23:13] even a slideshow or deck. Ask Claude to<br>[23:15] use SVG for diagrams to help visualize<br>[23:17] it. I have not seen these models get<br>[23:19] super good at SVGs just yet, so might<br>[23:22] not have the best luck there, but maybe.<br>[23:24] Somebody just said that they got Cloud<br>[23:26] Code access at work last week. Thanks<br>[23:27] for the idea. Anytime. Yeah, you can do<br>[23:29] this without having one of those either.<br>[23:30] You can spin a pretty simple API calls<br>[23:32] to DIY this, too. If you're curious how<br>[23:34] you would do this without cloud code,<br>[23:36] maybe watch my video on how harnesses<br>[23:38] work. I have a whole dedicated video on<br>[23:40] how cloud code works. That's more<br>[23:41] generic. How to get AI to write code and<br>[23:44] do real stuff. You can build your own<br>[23:46] solution internally that doesn't require<br>[23:48] cloud code that has all of these same<br>[23:50] powers. So definitely worth considering<br>[23:51] if you haven't done stuff like that yet.<br>[23:53] An example that he has here is he made a<br>[23:55] post on prompt caching. In order to do<br>[23:57] that, he asked Claude to prepare an<br>[23:58] in-depth research file in HTML for him<br>[24:00] to read on all of their changes to<br>[24:02] prompt caching after reading the git<br>[24:04] history. That's actually really cool.<br>[24:06] And again, like your prompt doesn't<br>[24:08] always need to be honest about who you<br>[24:10] are. Sometimes it's useful to take a<br>[24:12] different perspective to steer the model<br>[24:14] the right way. Even if you are fully<br>[24:15] aware of how the rate limiter works,<br>[24:17] telling the model that you don't<br>[24:19] actually understand it is a really<br>[24:20] powerful way to get it to write and<br>[24:22] create artifacts for an audience that<br>[24:24] isn't you. I find a lot of devs actually<br>[24:26] get hung up on this. They don't know how<br>[24:28] to talk to the agent outside of their<br>[24:30] own voice. They only know how to tell it<br>[24:33] what they specifically want and know and<br>[24:35] do, not how to move past their own<br>[24:38] knowledge to get the model steered<br>[24:40] towards something that isn't for them.<br>[24:42] It's easy to make an agent create things<br>[24:44] for yourself. It is a very different way<br>[24:47] to think to steer agents to make things<br>[24:49] for others. And this is a silly but<br>[24:51] really good example here. just saying I<br>[24:53] don't understand how a rate limiter<br>[24:55] works. Read the relevant code and<br>[24:56] produce a single HTML explainer page, a<br>[24:59] diagram of the token bucket flow, the<br>[25:01] three to four key snippets annotated,<br>[25:02] and a gotcha section at the bottom.<br>[25:04] Optimize it for someone reading it once.<br>[25:06] I do this all the time. I would argue<br>[25:08] almost half of my prompts are me<br>[25:10] pretending to be dumber than I am so<br>[25:12] that the model will steer in the right<br>[25:14] direction for my users and then I take<br>[25:15] the reins back whenever it goes where I<br>[25:17] don't want it. Here's another fun one,<br>[25:18] and I've actually done this a few times<br>[25:20] before. using HTML to create custom<br>[25:22] editing interfaces. Sometimes it's hard<br>[25:24] to describe what you want purely in a<br>[25:26] text box. In this case, I'll ask Cloud<br>[25:28] to build me a throwaway editor for the<br>[25:29] exact thing that I'm working on. Not a<br>[25:31] product or reusable tool, but a single<br>[25:33] HTML file purpose-built for this one<br>[25:35] piece of data. Yep. A lot of devs still<br>[25:38] aren't over the fact that like code is<br>[25:40] expensive, so you only should write it<br>[25:41] for reused things. Code is cheap now.<br>[25:43] Writing a bunch of code just to play<br>[25:45] around with some data to make a good<br>[25:47] decision about other code you're writing<br>[25:48] is absolutely worth it. of the code I<br>[25:50] write right now write obviously in<br>[25:52] quotes I would say about 70 plus percent<br>[25:55] of it immediately gets thrown out after<br>[25:57] I run it one time if even more devs need<br>[25:59] to internalize this way of thinking<br>[26:01] because you can make much better stuff<br>[26:03] for your end users if you build custom<br>[26:06] tools to get there that are only ever<br>[26:08] used once and thrown away. The trick<br>[26:10] here is to always end with an export a<br>[26:12] copy as JSON or copy as prompt button<br>[26:14] that turns whatever I did into the the<br>[26:16] UI back into something that I can paste<br>[26:18] into cloud code. Ready for a silly<br>[26:20] example of this? When I was trying to<br>[26:22] waste as much of GitHub's money as<br>[26:24] possible with my abuse of Copilot, I<br>[26:26] wanted a good way to visualize that. And<br>[26:29] uh yeah, Anthropic makes a really shitty<br>[26:32] broken site, so I can't show you<br>[26:33] apparently right now, even though it<br>[26:35] generated me a nice little web app that<br>[26:37] I could use inside of Claude to<br>[26:39] calculate how much money I had spent and<br>[26:41] then import and export a CSV that just<br>[26:44] took upwards of a minute and a half to<br>[26:45] [ย __ย ] load despite being a single<br>[26:47] JavaScript file. God, the I've been so<br>[26:50] nice this whole video. I I will take<br>[26:52] this brief tangent to emphasize just how<br>[26:55] [ย __ย ] terrible the engineering at<br>[26:57] Anthropic is. It is genuinely [ย __ย ]<br>[27:00] hilarious how bad these guys are at<br>[27:02] code. That was insultingly bad. It makes<br>[27:04] sense that he only mentions artifacts<br>[27:07] once in this article because they're<br>[27:08] [ย __ย ] useless and no one should use<br>[27:10] them because the actual implementation<br>[27:12] on the anthropic site is [ย __ย ]<br>[27:13] garbage. Which is why I tried it for<br>[27:14] this cuz I wanted to once again see if<br>[27:16] it's made any progress. The answer is it<br>[27:18] [ย __ย ] hasn't. The models can make a<br>[27:20] nice little artifact that lets me have<br>[27:21] this fancy interface for putting in<br>[27:23] values. I can import from the table. I<br>[27:26] can export the table to this view and<br>[27:28] very easily copy paste the CSV. I made<br>[27:31] this so I could quickly blast through<br>[27:33] all of the data for all the agent runs I<br>[27:34] had to see how much money I was able to<br>[27:36] waste of GitHubs. But god damn,<br>[27:38] Anthropic cannot code for [ย __ย ] You get<br>[27:40] the idea though. The creating of a UI to<br>[27:43] play with these things and an export<br>[27:46] format that you can paste other places<br>[27:47] be it is a state that you want to reuse<br>[27:49] later or values that you want to pass to<br>[27:51] your agent. Very powerful. Thinking in<br>[27:53] this way will be beneficial. And that's<br>[27:55] really what I want to like make this<br>[27:56] video for and push you guys towards<br>[27:59] thinking in terms of inputs and outputs<br>[28:01] beyond just the flows of your code. How<br>[28:04] do you use new code for one-off problems<br>[28:07] that lets you import and export data<br>[28:10] that is valuable to your agents? You can<br>[28:12] build much more effectively as a result<br>[28:14] of thinking this way. It has<br>[28:16] fundamentally changed how I build what I<br>[28:18] build and how I manage my team, how I<br>[28:20] process data, all of these things.<br>[28:22] realizing that every time you have a<br>[28:24] database, a CSV, a JSON blob, that's<br>[28:27] your data from something that you did,<br>[28:29] or even just a prompt with some complex<br>[28:31] values in it, generating code to help<br>[28:34] smooth out the edges and give you the<br>[28:37] info you're looking for is super<br>[28:39] valuable. He has an FAQ section here,<br>[28:41] and I'm sure a lot of you guys have the<br>[28:42] same questions. The first is the big<br>[28:45] question. I've seen this a lot. Isn't<br>[28:46] this less token efficient? I've even<br>[28:48] seen people going as far as saying that<br>[28:50] Thor's only writing this in order to get<br>[28:52] people to waste more tokens to make<br>[28:53] anthropic more money. I think those<br>[28:55] people are dumb. It's a funny joke, but<br>[28:57] it's not very real. While Markdown does<br>[28:59] often use fewer tokens, I found that the<br>[29:00] added expressiveness of HTML and the<br>[29:02] much higher likelihood of me reading it<br>[29:04] means that I get overall better outputs.<br>[29:06] With the 1 million token context window<br>[29:08] in Opus 47, the increased token usage is<br>[29:10] not really noticeable in the context<br>[29:12] window. That's a silly point to make.<br>[29:14] Next, he has when do you use markdown<br>[29:16] for now? I've honestly stopped using<br>[29:17] markdown altogether for almost<br>[29:19] everything, but I'm probably far on the<br>[29:20] HTML maximalist side of things. That's a<br>[29:23] little insane to me. Moving out of<br>[29:25] Markdown entirely is crazy. How do you<br>[29:27] view the HTML files? He doesn't just<br>[29:29] open them in a browser locally. You can<br>[29:30] even ask Claude to open it or upload to<br>[29:32] S3 if you want a sharable link. Fine.<br>[29:35] There's evidently an opportunity for a<br>[29:36] micros service for this, by the way.<br>[29:38] Wink. What about version control? This<br>[29:40] is honestly one of the biggest downsides<br>[29:42] of HTML. HTML diffs are noisy and hard<br>[29:44] to review when compared to markdown. How<br>[29:46] do I get Claude to match my taste and<br>[29:48] not make it all ugly? The front-end<br>[29:50] design plugin helps Claude make good<br>[29:52] HTML files, but to match your own<br>[29:54] company's style, you can create a single<br>[29:56] design system HTML file by pointing<br>[29:57] Claude at your codebase. You then use<br>[29:59] that design system file as a reference<br>[30:01] to other HTML files.<br>[30:04] How they didn't call out the skill for<br>[30:06] this, but there there's a direction here<br>[30:08] where you could make a better primitive<br>[30:10] that is still HTML, but lets the agent<br>[30:12] make things look better, more portable,<br>[30:14] have better version control, have better<br>[30:16] hosting, better context on what else is<br>[30:18] going on. There are ways to adjust this,<br>[30:21] but until we move from claude MD to cla<br>[30:23] HTML, this is just an experiment as far<br>[30:26] as I'm concerned. I do like Thor's<br>[30:27] endpoint, which I'll get to in a sec<br>[30:29] because I want to remind you guys we<br>[30:30] still have to read Karpathy's thoughts<br>[30:31] as well. So don't skip just because I'm<br>[30:33] at the end of this. He ends with stay in<br>[30:35] the loop. All of the above is to say<br>[30:37] that I think the real reason that I use<br>[30:38] HTML is that I feel much more in the<br>[30:40] loop with Claude. I'd begun to fear that<br>[30:42] because I'd stopped reading plans in<br>[30:43] depth, I would simply have to leave<br>[30:45] Claude to make its choice. But I'm happy<br>[30:47] to say instead that I feel more in the<br>[30:49] loop than ever before when I use HTML. I<br>[30:52] hope that you do, too. I'm going to try<br>[30:53] this a bunch and report back on how I<br>[30:55] feel. So keep an eye on my channel if<br>[30:57] you want to see that. But Carpathy's<br>[30:59] already made the move and I want to hear<br>[31:00] what he has to say. This works really<br>[31:02] well, by the way. At the end of your<br>[31:03] query, ask your LM to structure your<br>[31:05] response as HTML, then view the<br>[31:07] generated file in your browser. I've<br>[31:08] also had some success asking the LLM to<br>[31:10] present its output as slideshows, etc.<br>[31:13] More generally, in my opinion, audio is<br>[31:15] the human preferred input to AIS, but<br>[31:17] vision like images, animations, and<br>[31:19] video are the preferred output from<br>[31:20] them. I think I agree. I am always<br>[31:23] surrounded with my team, so I don't get<br>[31:24] to use audio in as much as others do.<br>[31:27] And I'm not like Prim. I don't walk<br>[31:28] around talking to my phone to send<br>[31:30] texts. I I respect the balls he has to<br>[31:32] do that. The number of times I've been<br>[31:33] hanging with Prime and he like just<br>[31:34] pulls out his phone and like voice to<br>[31:36] text something to his wife or to his<br>[31:38] kids is adorable and I respect it. I'm<br>[31:41] too insecure to do that myself. But<br>[31:43] there are some people who will just<br>[31:44] prompt all day who will speak to their<br>[31:46] phone to talk to their family to send<br>[31:48] prompts whatever else and all power to<br>[31:50] them. Around a third of our brains are<br>[31:52] massively parallel processors dedicated<br>[31:54] to vision. It's the 10 lane superighway<br>[31:56] of information into the brain. As AI<br>[31:58] improves, I think we'll see a<br>[31:59] progression that takes advantage of<br>[32:01] that. I totally agree. I think vision is<br>[32:04] how people like to process info, and<br>[32:06] it's really nice to be able to like<br>[32:07] listen to music and watch something that<br>[32:09] my computer did at the same time. Text<br>[32:11] is a little more process heavy, but<br>[32:14] yeah, you get the idea. He lists these<br>[32:16] examples of things. Raw text, which is<br>[32:18] hard and effortful to read. Markdown,<br>[32:20] which is a bit easier to read once you<br>[32:22] have bold, italic, headings, tables, all<br>[32:23] of those types of things to the current<br>[32:25] default. Then you have HTML which is<br>[32:27] still procedural with the underlying<br>[32:28] code but it's a lot more flexible on the<br>[32:30] graphics and layout even interactivity<br>[32:32] side early but it's a forming new good<br>[32:34] default and eventually we get further<br>[32:36] and further until we have interactive<br>[32:38] neural videos and simulations.<br>[32:40] Interesting hypothesis he has here where<br>[32:42] he thinks we're going to progress to<br>[32:44] more and more visual interactive outputs<br>[32:47] for models. Very curious to see where<br>[32:49] this goes. IMO the extrapolation though<br>[32:52] the technology doesn't exist just yet<br>[32:53] ends in some kind of interactive videos<br>[32:55] generated directly by a diffusion neural<br>[32:57] net many open questions as to how exact<br>[33:00] and procedural software 1.0 show<br>[33:02] artifacts like interactive simulations<br>[33:04] may be woven together with neural<br>[33:05] artifacts like diffusion grids but<br>[33:08] generally something in this direction of<br>[33:09] the recently viral uh what is this that<br>[33:11] he's linking interesting imagine every<br>[33:13] pixel on your screen streamed live<br>[33:15] directly from a model no HTML no layout<br>[33:18] engines no code just creating this UI<br>[33:20] dynamically very interesting there are<br>[33:23] also improvements necessary and pending<br>[33:25] at the input audio nor text nor video<br>[33:27] alone is enough I feel a need to point<br>[33:30] and gesture to things on the screen<br>[33:31] similar to all the things you would do<br>[33:33] with a person physically next to you and<br>[33:35] your computer screen. Okay, I cannot<br>[33:36] tell you guys how often I've done<br>[33:38] exactly this. I'm going to just show<br>[33:40] screenshot edit. I use Shotterter.<br>[33:43] There's lots of other screenshot<br>[33:44] utilities. I'm going to just highlight<br>[33:46] this section, copy this, paste it to<br>[33:50] codeex. Cool. What are your thoughts on<br>[33:54] this paste image? Actually, I can't see<br>[33:57] the image here because I'm using a<br>[33:58] terminal. No one should use terminals<br>[34:00] for these types of things. So I will<br>[34:02] just hop over here instead. Paste the<br>[34:03] image. What are your thoughts on this?<br>[34:07] And now I can actually see the image I<br>[34:09] just pasted because using gooies is<br>[34:10] nice. Shout out T3 code. Fully open<br>[34:13] source. Works with all of your<br>[34:14] terminals. This is just a different view<br>[34:16] for the same thing. Yeah, I can't<br>[34:18] believe we're all just living with<br>[34:19] pasting images in a UI where we can't<br>[34:21] even see them. The amount of cope and<br>[34:23] like copy pasting is broken too because<br>[34:25] it has to handle all the formatting and<br>[34:27] the ter. Why are we still using [ย __ย ]<br>[34:29] terminals? Yeah. And here we get a much<br>[34:32] better formatted output in a UI that is<br>[34:33] much less bad. Something I'm now<br>[34:36] thinking about is what would it look<br>[34:37] like if in T3 code we asked the HTML<br>[34:40] output thing similarly and it could<br>[34:42] actually output custom UI in body here.<br>[34:46] I might play with this idea in the near<br>[34:47] future, but part of T3 code being open<br>[34:49] source is that you can go add this<br>[34:51] yourself. If you're interested in what<br>[34:53] it would look like to let agents respond<br>[34:55] with HTML inside of your agent to coding<br>[34:57] experience, you have to leave here to<br>[34:59] see it. And maybe you can click a share<br>[35:00] button to send it to somebody else.<br>[35:02] There you go. Fun opportunity. Play with<br>[35:04] it. Carpathy closes with the following.<br>[35:06] The input and output mind meld between<br>[35:08] humans and AIs is ongoing and there's a<br>[35:10] lot of work to do and significant<br>[35:12] progress to be made way before jumping<br>[35:14] all the way into neural linkes brain<br>[35:16] computer interfaces and all of that. For<br>[35:18] what's worth exploring at the current<br>[35:20] stage, hot tip, try asking for HTML. We<br>[35:23] have a shitload of exploration to do as<br>[35:24] an industry here still. We are still<br>[35:27] figuring out the output formats that<br>[35:28] make sense. We're not even close to<br>[35:30] figuring out the interfaces. The fact<br>[35:32] that we're still so attached to our<br>[35:33] terminals shows how far we are from<br>[35:36] getting this all right. And in a world<br>[35:38] where we can make better output formats<br>[35:40] in better UIs with better control and<br>[35:42] customizability, we can make better<br>[35:44] software as a result. That said, HTML is<br>[35:48] just the starting point. And while<br>[35:50] Karpathy seems to think that the<br>[35:51] direction we're going in is interactive<br>[35:53] videos and simulations, I think we have<br>[35:55] some important steps to go through<br>[35:57] first. in chat has correctly identified.<br>[35:59] I think MDX is an untapped market. All<br>[36:02] roads lead to React.
<!-- deep-read:sections end -->
๐ **Full text:** ![[Full Document Contents/Articles/Stop Letting Your Agents Write Markdown..md|Stop Letting Your Agents Write Markdown. by YouTube]]
## Highlights
- the unreasonable effectiveness of HTML. He then followed up with HTML is the new markdown. I've stopped writing markdown files for almost everything and switched to using cloud code to generate HTML for me instead. This article is why I have seen some fun hacks around using HTML with tools like claude code. I actually learned a bunch of these from Simon Willis way back when we were doing GBT testing together. I have been amazed at some of the clever things people figure out with HTML and how they use it to be more effective working with agents. And ([View Highlight](https://read.readwise.io/read/01krgq98fv08ksjfnzc965j9s6))
- Tags: ๐ป ai highlighted
- Thor and I aren't the only ones who feel this way. Carpathy actually came out and said that this works really well, just asking it to structure responses as HTML. He had a lot to say as well. We're going to go into all of this and more. Agents clearly like Markdown and HTML, but there's one more important thing that agents love. Today's sponsor. Building most things with AI is pretty easy, but there's one that's surprisingly hard. Building AI apps with AI. It turns out all the weird things like persisting threads, streaming chats, getting UI to render dynamically on the fly and more just kind of is hard to do. Believe me, I've tried a lot. E3 ([View Highlight](https://read.readwise.io/read/01krgq98g1yzynsa28rygfmzsq))
- Tags: ๐ป ai highlighted
- been around for a while, you're already familiar with all this. And then you give it the custom component that actually renders the results. They also have a hook for interactive components right here, which is just as easy to use. Getting the front end and the back end to interact properly in systems like this is incredibly complex. Copilot kit couldn't make it easier, even if you don't want to use their components. I know Ben's already building his own wrappers around it in spelt. Build better interactive experiences with agents at soyb.v.link/copilotkit. Let's see what Thor has to say about the unreasonable effectiveness of HTML for agents. Markdowns become the dominant ([View Highlight](https://read.readwise.io/read/01krgq98ga7d1079snzb83d8ps))
- Tags: ๐ป ai highlighted
- I want to be able to share them easily. I'm also increasingly not editing these files myself, but using them as specs, reference files, brainstorming outputs, etc. When I do make edits, I'm usually prompting Claude to edit them, which removes one of Markdown's largest benefits. I've started preferring HTML as an output format instead of Markdown, and increasingly see this being used by others on the Claude Code team. This is why you want to start with some examples. You can see a bunch here. This HTML effectiveness GitHub page. Just be sure to come back and read more after. ([View Highlight](https://read.readwise.io/read/01krgq98gtrhnrfp5xyyqdnhxj))
- Tags: ๐ป ai highlighted
- better, but I don't think it's as much better as it is now. The novelty of HTML is a big portion of the value right now. The interaction part is really strong, too, though. I will give him that. HTML can allow you to interact with the document. For example, you might want to ask it to add sliders or knobs to adjust the design or allow you to tweak different options in the algorithm to see what happens. You can also ask it to let you copy these changes into a prompt to paste back into cloud code. He has a bunch of examples of these types of playgrounds and two-way interactions that he's built. There's also data ([View Highlight](https://read.readwise.io/read/01krgq98j7g50f891sgwn9dvrx))
- Tags: ๐ป ai highlighted
- web browser with Claude and Chrome, your git history, etc. Actually, a valuable point here. I have done a lot of this type of thing where I have like a bunch of data on my computer or in some folder somewhere and I just ask an agent to go through it and visualize it to make something more useful. I've done this many times. I'm beginning to think that, especially when he mentions the HTML files that he has just scattered across his computer, that something we might need here is a better skill that describes the shape of the HTML, tells it can use Tailwind or whatever, gives ([View Highlight](https://read.readwise.io/read/01krgq98kxv76pzz4pc9ppys5p))
- Tags: ๐ป ai highlighted
- to other HTML files. How they didn't call out the skill for this, but there there's a direction here where you could make a better primitive that is still HTML, but lets the agent make things look better, more portable, have better version control, have better hosting, better context on what else is going on. There are ways to adjust this, but until we move from claude MD to cla HTML, this is just an experiment as far as I'm concerned. I do like Thor's endpoint, which I'll get to in a sec because I want to remind you guys we ([View Highlight](https://read.readwise.io/read/01krgq98yecwadw1y9ch8kbew4))
- Tags: ๐ป ai highlighted