1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 7 <title>tufte â portable, verifiable charts for AI agents</title> 8 <meta name="description" content="The deterministic chart layer for AI agents: validated data, declared arithmetic, portable ASCII, and verifiable evidence for Markdown and terminals." /> 9 <link rel="canonical" href="https://tufte.ai/" /> 10 11 <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 12 <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 13 <meta name="theme-color" content="#FDFBF7" /> 14 15 <!-- Open Graph / Facebook --> 16 <meta property="og:type" content="website" /> 17 <meta property="og:site_name" content="tufte" /> 18 <meta property="og:title" content="tufte â portable, verifiable charts for AI agents" /> 19 <meta property="og:description" content="Validated data, declared arithmetic, portable ASCII, and verifiable chart evidence. No embedded model or backend." /> 20 <meta property="og:url" content="https://tufte.ai/" /> 21 <meta property="og:image" content="https://tufte.ai/og.png" /> 22 <meta property="og:image:width" content="1200" /> 23 <meta property="og:image:height" content="630" /> 24 <meta property="og:image:alt" content="tufte â the chart format that renders to Tufte-style ASCII charts" /> 25 26 <!-- Twitter --> 27 <meta name="twitter:card" content="summary_large_image" /> 28 <meta name="twitter:site" content="@arvindang" /> 29 <meta name="twitter:creator" content="@arvindang" /> 30 <meta name="twitter:title" content="tufte â portable, verifiable charts for AI agents" /> 31 <meta name="twitter:description" content="Validated data, declared arithmetic, portable ASCII, and verifiable chart evidence. No embedded model or backend." /> 32 <meta name="twitter:image" content="https://tufte.ai/og.png" /> 33 34 <!-- Structured data --> 35
35<script type="application/ld+json"> 36 { 37 "@context": "https://schema.org", 38 "@graph": [ 39 { 40 "@type": "WebSite", 41 "name": "tufte", 42 "url": "https://tufte.ai/", 43 "description": "The deterministic chart format and verification layer for AI agents â portable ASCII for READMEs, terminals, diffs and model responses." 44 }, 45 { 46 "@type": "SoftwareApplication", 47 "name": "tufte", 48 "url": "https://tufte.ai/", 49 "applicationCategory": "DeveloperApplication", 50 "operatingSystem": "Any", 51 "description": "Validate typed data, perform declared deterministic arithmetic, and render portable, verifiable ASCII charts for AI agents, Markdown, READMEs and terminals.", 52 "offers": { 53 "@type": "Offer", 54 "price": "0", 55 "priceCurrency": "USD" 56 } 57 } 58 ] 59 } 60 </script>
60 61
61<script type="module" crossorigin src="/assets/index-BOoK4eLE.js"></script>
61 62 </head> 63 <body> 64 <div id="root"></div> 65
65<script data-goatcounter="https://arvindang.goatcounter.com/count" 66 async src="//gc.zgo.at/count.js"></script>
66 67 </body> 68</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.