{"id":394653,"date":"2026-05-06T13:41:29","date_gmt":"2026-05-06T19:41:29","guid":{"rendered":"https:\/\/css-tricks.com\/?p=394653"},"modified":"2026-05-06T14:04:48","modified_gmt":"2026-05-06T20:04:48","slug":"googles-prompt-api","status":"publish","type":"post","link":"https:\/\/css-tricks.com\/googles-prompt-api\/","title":{"rendered":"Google\u2019s Prompt API"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/wil.to\/posts\/googles-prompt-api\/\" rel=\"noopener\">Mat Marquis<\/a> on Google pulling the web standards equivalent of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Songs_of_Innocence_(U2_album)#Release\" rel=\"noopener\">U2 album marketing<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">As a Chrome user, you\u2019ll have&nbsp;<a href=\"https:\/\/www.techspot.com\/news\/112309-google-chrome-has-silently-pushing-4gb-ai-model.html\" rel=\"noopener\">received Gemini Nano in the form of a 4GB transfer<\/a>&nbsp;recently; no permission asked or required. If you remove it, Chrome will re-download it. For&nbsp;<a href=\"https:\/\/gdpr-info.eu\/issues\/consent\/\" rel=\"noopener\">reasons I can only guess at<\/a>, Gemini Nano is presumably now considered to be part of Chrome itself, despite being a standalone product that is included alongside but not integrated&nbsp;<em>into<\/em>&nbsp;the browser \u2014 the way a copy of&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/BonziBuddy\" rel=\"noopener\">Bonzi Buddy<\/a>&nbsp;included in a browser update might be considered a part of said browser.<\/p>\n<\/blockquote>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s not exactly <em>new<\/em> news, as we&#8217;ve had <a href=\"https:\/\/developer.chrome.com\/docs\/ai\/prompt-api\" rel=\"noopener\">published<\/a> <a href=\"https:\/\/github.com\/webmachinelearning\/prompt-api\/blob\/main\/README.md\" rel=\"noopener\">explainers<\/a> on it for over a year now, as well as an <a href=\"https:\/\/groups.google.com\/a\/chromium.org\/g\/blink-dev\/c\/x3QEjLYx5Rg\" rel=\"noopener\">intent to prototype<\/a> for just as long.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/mozilla\/standards-positions\/issues\/1213#issuecomment-4347988313\" rel=\"noopener\">Mozilla has already voiced its concerns\/opposition<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/developer.chrome.com\/docs\/ai\/prompt-api#use_the_prompt_api:~:text=Before%20you%20use%20this%20API%2C%20acknowledge%20Google%27s%20Generative%20AI%20Prohibited%20Uses%20Policy%2E\" rel=\"noopener\">According to Chrome&#8217;s documentation<\/a>, to use the prompt API you must &#8216;acknowledge&#8217;&nbsp;<a href=\"https:\/\/policies.google.com\/terms\/generative-ai\/use-policy\" rel=\"noopener\">Google&#8217;s Generative AI Prohibited Uses Policy<\/a>. Elements of this policy go beyond law. For example:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Do not engage \u2026 generating or distributing content that facilitates \u2026 Sexually explicit content<br>Do not engage in misinformation, misrepresentation, or misleading activities. This includes \u2026 Facilitating misleading claims related to governmental or democratic processes<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This seems like a bad direction for an API on the web platform, and sets a worrying precedent for more APIs that have UA-specific rules around usage.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">I have nothing to add, only that this is the sort of thing that seems worth knowing. Mat&#8217;s take-home isn&#8217;t exactly comforting because, remember, <em>this has already shipped<\/em>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">I\u2019d like to say that something to the tune of \u201ctheir whole argument hinges on \u2018positive developer sentiment,\u2019 so let\u2019s show them that there isn\u2019t any\u201d \u2014 but there isn\u2019t any; they&nbsp;<em>cited<\/em>&nbsp;places where there isn\u2019t any. That\u2019s not how it works for them. Google participates in the web standards process the way a bear participates in the \u201ccamping\u201d process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[&#8230;]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Remember this the next time Google announces an \u201cexciting new standard\u201d that they\u2019re heroically championing \u2014 for you, for users, for good of the web \u2014 in language that has just a hint of inevitability about it.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/css-tricks.com\/the-ecological-impact-of-browser-diversity\/\">browser ecosystem<\/a> has historically provided us with plenty of concerns. <a href=\"https:\/\/infrequently.org\/series\/browser-choice-must-matter\/\" rel=\"noopener\">Alex Russell&#8217;s writing<\/a> is a treasure trove of the current limits of browser choice. And things are especially murky when we need to be reminded that <em><a href=\"https:\/\/polypane.app\/blog\/not-all-browser-apis-are-web-apis\/\" rel=\"noopener\">not all browser APIs are Web APIs<\/a><\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maybe helpful, maybe not:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2218\" height=\"1906\" src=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-system-settings-ai.png?resize=2218%2C1906&#038;ssl=1\" alt=\"Chrome browser settings with system tab open showing disabled on-device AI option.\" class=\"wp-image-394658\" srcset=\"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-system-settings-ai.png?w=2218&amp;ssl=1 2218w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-system-settings-ai.png?resize=300%2C258&amp;ssl=1 300w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-system-settings-ai.png?resize=1024%2C880&amp;ssl=1 1024w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-system-settings-ai.png?resize=768%2C660&amp;ssl=1 768w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-system-settings-ai.png?resize=1536%2C1320&amp;ssl=1 1536w, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-system-settings-ai.png?resize=2048%2C1760&amp;ssl=1 2048w\" sizes=\"auto, (min-width: 735px) 864px, 96vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">More coverage, if you&#8217;d like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/support.google.com\/gemini\/answer\/16283624?hl=en&amp;visit_id=639136889569119000-2199918715&amp;p=mws_gic_ga&amp;rd=1\" rel=\"noopener\">&#8220;Use Gemini in Chrome&#8221;<\/a> (Gemini Apps Help)<\/li>\n\n\n\n<li><a href=\"https:\/\/www.engadget.com\/2166113\/chrome-downloads-a-4gb-ai-file-without-user-consent-researcher-alleges\/\" rel=\"noopener\">&#8220;Chrome downloads a 4GB AI file without user consent, researcher alleges&#8221;<\/a> (Engadget)<\/li>\n\n\n\n<li><a href=\"https:\/\/cybernews.com\/security\/google-chrome-ai-model-device-no-consent\/\" rel=\"noopener\">&#8220;Guy finds Google Chrome is quietly installing a 4GB AI model on our devices&#8221;<\/a> (Cybernews)<\/li>\n\n\n\n<li><a href=\"https:\/\/www.androidauthority.com\/google-chrome-weights-bin-ai-model-download-explained-3664043\/\" rel=\"noopener\">&#8220;Is Chrome&#8217;s 4GB &#8220;weights.bin&#8221; file spyware?&#8221;<\/a> (Android Authority)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mat Marquis on Google pulling the web standards equivalent of U2 album marketing: As a Chrome user, you\u2019ll have&nbsp;received Gemini [&hellip;]<\/p>\n","protected":false},"author":2508,"featured_media":394656,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"inline_featured_image":false,"c2c_always_allow_admin_comments":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[17],"tags":[19122,1051],"class_list":["post-394653","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-links","tag-ai","tag-browser"],"acf":{"link_source":"","link_url":"","link_icon":"","show_toc":"No"},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2026\/05\/chrome-gemini.webp?fit=1200%2C600&ssl=1","jetpack-related-posts":[{"id":296513,"url":"https:\/\/css-tricks.com\/zero-hands-up\/","url_meta":{"origin":394653,"position":0},"title":"Zero hands up.","author":"Chris Coyier","date":"October 2, 2019","format":false,"excerpt":"Asked an entire room full of webdevs yesterday if any of them knew that FF\/Chrome\/Opera\/Brave\/etc. for iOS weren't allowed to compete on engine quality.Zero hands up.\u2014 Alex Russell (@slightlylate) September 25, 2019 It's worth making this clear then. On iOS, the only browser engine is WebKit. There are other browsers,\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/05\/wpn-01.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/05\/wpn-01.png?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/05\/wpn-01.png?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/05\/wpn-01.png?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/05\/wpn-01.png?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":265024,"url":"https:\/\/css-tricks.com\/careful-now\/","url_meta":{"origin":394653,"position":1},"title":"Careful Now","author":"Chris Coyier","date":"January 8, 2018","format":false,"excerpt":"Tom Warren's \"Chrome is turning into the new Internet Explorer 6\" for The Verge has a title that, to us front-end web developers, suggests that Chrome is turning into a browser far behind in technology and replete with tricky bugs. Aside from the occasional offhand generic, \"Chrome is getting so\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":296122,"url":"https:\/\/css-tricks.com\/browser-engine-diversity\/","url_meta":{"origin":394653,"position":2},"title":"Browser Engine Diversity","author":"Chris Coyier","date":"September 24, 2019","format":false,"excerpt":"We lost Opera when they went Chrome in 2013. Same deal with Edge when it also went Chrome earlier this year. Mike Taylor called these changes a \"Decreasingly Diverse Browser Engine World\" in a talk I'd like to see. So all we've got left is Chrome-stuff, Firefox-stuff, and Safari-stuff. Chrome\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/09\/browser-pattern.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/09\/browser-pattern.png?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/09\/browser-pattern.png?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/09\/browser-pattern.png?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/09\/browser-pattern.png?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":7064,"url":"https:\/\/css-tricks.com\/browser-jumping\/","url_meta":{"origin":394653,"position":3},"title":"Browser Jumping","author":"Chris Coyier","date":"August 20, 2010","format":false,"excerpt":"If you asked me right now, Hey Chris, what's your favorite browser? I wouldn't know what to tell you! I've been a Firefox user primarily over the past few years, but over the last several months my allegiance is no longer to any one browser. I'm a browser jumper. I\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2010\/08\/three-browsers.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2010\/08\/three-browsers.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2010\/08\/three-browsers.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":250987,"url":"https:\/\/css-tricks.com\/browser-tweak-saved-60-requests-facebook\/","url_meta":{"origin":394653,"position":4},"title":"This browser tweak saved 60% of requests to Facebook","author":"Chris Coyier","date":"February 6, 2017","format":false,"excerpt":"Ben Maurer & Nate Schloss: The browser's reload button exists to allow the user to get an updated version of the current page. In order to meet this goal, when you reload, browsers revalidate the page that you are currently on, even if that page hasn't expired yet. However, they\u2026","rel":"","context":"In &quot;Links&quot;","block_context":{"text":"Links","link":"https:\/\/css-tricks.com\/category\/links\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":297902,"url":"https:\/\/css-tricks.com\/some-things-you-oughta-know-when-working-with-viewport-units\/","url_meta":{"origin":394653,"position":5},"title":"Some Things You Oughta Know When Working with Viewport Units","author":"Chris Coyier","date":"November 6, 2019","format":false,"excerpt":"David Chanin has a quickie article summarizing a problem with setting an element's height to 100vh in mobile browsers and then also positioning something on the bottom of that. Summarized in this graphic: The trouble is that Chrome isn't taking the address bar (browser chrome) into account when it's revealed\u2026","rel":"","context":"In &quot;Articles&quot;","block_context":{"text":"Articles","link":"https:\/\/css-tricks.com\/category\/articles\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/10\/boundaries.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/10\/boundaries.png?fit=1200%2C600&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/10\/boundaries.png?fit=1200%2C600&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/10\/boundaries.png?fit=1200%2C600&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/10\/boundaries.png?fit=1200%2C600&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/394653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/users\/2508"}],"replies":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/comments?post=394653"}],"version-history":[{"count":6,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/394653\/revisions"}],"predecessor-version":[{"id":394662,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/394653\/revisions\/394662"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media\/394656"}],"wp:attachment":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media?parent=394653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/categories?post=394653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/tags?post=394653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}