{"origin":"rive.app","report_url":"https://agenticweb.wiki/check/rive.app/","checked":"2026-10-26T03:05:51Z","content_trust":"untrusted_external_origin","grade":"C","score":20,"percentile":54,"score_parts":{"coverage":10,"breadth":0,"conformance":10},"subscores":{"reach_and_policy":20,"readability":24,"capabilities":4,"conformance":10,"total_100":58,"grade_100":"B"},"practical_usefulness":{"exa_parsable":true,"headless_blocked":false,"markdown_negotiation":false,"vary_accept_present":true,"js_shell_only":false,"render_mode":"ssr_rich","semantic_html_quality":"high","text_to_html_ratio":0.029,"estimated_tokens":3803,"html_bloat_ratio":34.468,"table_count":0,"table_rows":0,"first_content_byte_offset":315477,"json_ld_types":["Organization","ImageObject","WebSite"],"has_attribute_rich_schema":false,"html_to_markdown_token_ratio":23.072,"root_links":[]},"permissions":{"posture":"open_to_all","robots_txt_allows_ai":true,"search_bots_allowed":true,"user_fetch_bots_allowed":true,"training_bots_allowed":true,"ai_crawlers":{"allowed":[],"blocked":[],"partial":[],"unlisted_default":"allowed"},"assistant_access":{"openai":"allowed","anthropic":"allowed","google":"allowed","perplexity":"allowed","exa":"allowed"},"meta_robots_directives":[],"nosnippet_or_noai":false,"retired_tokens_used":[],"content_signals":[],"paywall_or_402_detected":false},"conformance_summary":{"valid":["llms-txt"],"valid_legacy":[],"schema_error":[],"blocked":[],"absent":["ard","ai-catalog-well-known-file","mcp-server-cards","a2a","agents-md","anthropic-agent-skills-format","api-catalog-rfc9727","ai-crawler-tokens-robots","security-txt","auth-md","okf"]},"agent_routing":{"preferred_mode":"llms_txt","fallback_mode":null,"can_fetch_directly":true,"do_not_scrape_raw_html":true,"summary":"GET /llms.txt and follow the links it names. That index is the page list an agent should read.","fetch_recipe":{"url":"https://rive.app/llms.txt","method":"GET","headers":{"Accept":"text/markdown, text/plain"},"note":"GET /llms.txt and follow its links."},"callable_endpoints":[{"kind":"llms_txt","url":"https://rive.app/llms.txt","transport_or_type":"text/markdown","status":"valid","source":"/llms.txt"}]},"connect_recipe":{"domain":"rive.app","verified_at":"2026-10-26T03:05:51Z","ttl_seconds":3600,"mcp_client_config":null,"provenance":{"source_manifest":null,"resolution":"none","salvaged_fixes":[]},"callable_tools":null,"best_endpoints":{"llms_txt":"https://rive.app/llms.txt","markdown_negotiation":false,"openapi_url":null,"a2a_agent_url":null,"agent_skills_url":null},"usage_policies":{"posture":"open_to_all","content_signal":null,"robots_txt_respected":true,"search_bots_allowed":true,"user_fetch_bots_allowed":true,"training_bots_allowed":true}},"valid":true,"outcome":"scored","steps_covered":["read"],"found":["llms-txt"],"manifests":[{"id":"ard","name":"Agentic Resource Discovery","path":"/.well-known/ard.json","url":"https://rive.app/.well-known/ard.json","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/ard/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"ai-catalog-well-known-file","name":"AI Catalog well-known file","path":"/.well-known/ai-catalog.json","url":"https://rive.app/.well-known/ai-catalog.json","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/ai-catalog-well-known-file/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"mcp-server-cards","name":"MCP Server Cards (SEP-2127)","path":"/mcp/server-card","url":"https://rive.app/mcp/server-card","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/mcp-server-cards/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"a2a","name":"Agent2Agent Protocol","path":"/.well-known/agent-card.json","url":"https://rive.app/.well-known/agent-card.json","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/a2a/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"llms-txt","name":"llms.txt","path":"/llms.txt","url":"https://rive.app/llms.txt","status":200,"content_type":"text/plain; charset=utf-8","article":"https://agenticweb.wiki/protocols/llms-txt/","present":true,"valid":true,"detected":true,"outcome":"valid","spec_status":"valid","etag":"\"cd3bde3a3b206ae16eff5cc6186b2a9e\"","content_hash":"c8d07d0e","errors":[],"warnings":[]},{"id":"agents-md","name":"AGENTS.md","path":"/AGENTS.md","url":"https://rive.app/AGENTS.md","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/agents-md/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"anthropic-agent-skills-format","name":"Agent Skills","path":"/.well-known/agent-skills/index.json","url":"https://rive.app/.well-known/agent-skills/index.json","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/anthropic-agent-skills-format/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"api-catalog-rfc9727","name":"api-catalog: A Well-Known URI and Link Relation to Help Discovery of APIs","path":"/.well-known/api-catalog","url":"https://rive.app/.well-known/api-catalog","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/api-catalog-rfc9727/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"ai-crawler-tokens-robots","name":"AI Crawler User-Agent Tokens in robots.txt","path":"/robots.txt","url":"https://rive.app/robots.txt","status":200,"content_type":"text/plain; charset=UTF-8","article":"https://agenticweb.wiki/protocols/ai-crawler-tokens-robots/","present":true,"valid":false,"detected":false,"outcome":"absent","spec_status":"absent","etag":"W/\"3e-1a16494a690\"","content_hash":"fb9830ce","errors":[],"warnings":["no AI crawler token named (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, ...); the policy for them is whatever User-agent: * says (allowed)","no Agentmap: line (optional convention pointing agents at /.well-known/ard.json)","no Content-Signal: line (optional; states ai-train / search / ai-input preferences)"]},{"id":"security-txt","name":"security.txt (RFC 9116)","path":"/.well-known/security.txt","url":"https://rive.app/.well-known/security.txt","status":404,"content_type":"text/html; charset=utf-8","article":null,"present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"auth-md","name":"auth.md","path":"/auth.md","url":"https://rive.app/auth.md","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/auth-md/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]},{"id":"okf","name":"Open Knowledge Format","path":"/okf/index.md","url":"https://rive.app/okf/index.md","status":404,"content_type":"text/html; charset=utf-8","article":"https://agenticweb.wiki/protocols/okf/","present":false,"valid":null,"outcome":"absent","spec_status":"absent","errors":[],"warnings":[]}],"errors":[],"warnings":["/robots.txt: no AI crawler token named (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, ...); the policy for them is whatever User-agent: * says (allowed)","/robots.txt: no Agentmap: line (optional convention pointing agents at /.well-known/ard.json)","/robots.txt: no Content-Signal: line (optional; states ai-train / search / ai-input preferences)"],"recommendations":[{"id":"ard","name":"Agentic Resource Discovery","tier":"emerging","why":"a catalog at /.well-known/ard.json lets agents discover your APIs, MCP servers and data in one fetch","url":"https://agenticweb.wiki/protocols/ard/"},{"id":"agents-md","name":"AGENTS.md","tier":"universal","why":"instructions for coding agents working on or with the site","url":"https://agenticweb.wiki/protocols/agents-md/"},{"id":"api-catalog-rfc9727","name":"api-catalog: A Well-Known URI and Link Relation to Help Discovery of APIs","tier":"conditional","why":"an RFC 9727 linkset pointing at your OpenAPI description","url":"https://agenticweb.wiki/protocols/api-catalog-rfc9727/"}],"rubric":"+10 per lifecycle step with a standard observed, counting manifests that validate or that the probe rule for the standard recognises (a valid MCP server card counts for MCP; max 90); +3 per observed standard beyond the first two (max 15); conformance +15 (+10 with one manifest) minus 5 per agent-facing manifest with errors, never below 0 (security.txt is reported, not scored). Lifecycle grade: A+ >= 60, A >= 45, B >= 30, C >= 20, D >= 10. Strict 100-point composite (subscores.total_100 / subscores.grade_100): reach_and_policy (20) + readability (30) + capabilities (35) + conformance (15), where A+ >= 80, A >= 65, B >= 45, C >= 28, D >= 15.","probe":{"origin":"rive.app","report_url":"https://agenticweb.wiki/check/rive.app/","checked":"2026-10-26T03:05:51Z","found":{"llms-txt":{"id":"llms-txt","url":"https://rive.app/llms.txt","status":200,"found":true,"outcome":"found","reason":"200, text matched","article":"https://agenticweb.wiki/protocols/llms-txt/","etag":"\"cd3bde3a3b206ae16eff5cc6186b2a9e\"","last_modified":"Thu, 22 Oct 2026 14:16:30 GMT","content_hash":"fnv64:e065a01c1346dc0e"}},"absent":{"a2a":{"id":"a2a","url":"https://rive.app/.well-known/agent-card.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/a2a/"},"ucp":{"id":"ucp","url":"https://rive.app/.well-known/ucp","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/ucp/"},"agents-md":{"id":"agents-md","url":"https://rive.app/AGENTS.md","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/agents-md/"},"aipref-content-usage-attachment":{"id":"aipref-content-usage-attachment","url":"https://rive.app/robots.txt","status":200,"found":false,"outcome":"absent","reason":"text_match (?im)^content-usage: not found","article":"https://agenticweb.wiki/protocols/aipref-content-usage-attachment/"},"aipref-vocabulary":{"id":"aipref-vocabulary","url":"https://rive.app/robots.txt","status":200,"found":false,"outcome":"absent","reason":"text_match (?im)^content-usage:\\s*\\S not found","article":"https://agenticweb.wiki/protocols/aipref-vocabulary/"},"tdmrep":{"id":"tdmrep","url":"https://rive.app/.well-known/tdmrep.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/tdmrep/"},"cloudflare-content-signals-policy":{"id":"cloudflare-content-signals-policy","url":"https://rive.app/robots.txt","status":200,"found":false,"outcome":"absent","reason":"text_match (?im)^content-signal: not found","article":"https://agenticweb.wiki/protocols/cloudflare-content-signals-policy/"},"webbotauth":{"id":"webbotauth","url":"https://rive.app/.well-known/http-message-signatures-directory","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/webbotauth/"},"web-bot-auth-signature-agent-card":{"id":"web-bot-auth-signature-agent-card","url":"https://rive.app/.well-known/http-message-signatures-directory","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/web-bot-auth-signature-agent-card/"},"ard":{"id":"ard","url":"https://rive.app/.well-known/ard.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/ard/"},"ai-catalog-well-known-file":{"id":"ai-catalog-well-known-file","url":"https://rive.app/.well-known/ai-catalog.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/ai-catalog-well-known-file/"},"aid":{"id":"aid","url":"https://rive.app/.well-known/agent","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/aid/"},"adp":{"id":"adp","url":"https://rive.app/.well-known/agent.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/adp/"},"ardp":{"id":"ardp","url":"https://rive.app/.well-known/ardp/meta","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/ardp/"},"ads":{"id":"ads","url":"https://rive.app/v1/agents","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/ads/"},"adcp":{"id":"adcp","url":"https://rive.app/.well-known/adagents.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/adcp/"},"anp":{"id":"anp","url":"https://rive.app/.well-known/agent-descriptions","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/anp/"},"agora-protocol":{"id":"agora-protocol","url":"https://rive.app/.wellknown","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/agora-protocol/"},"api-catalog-rfc9727":{"id":"api-catalog-rfc9727","url":"https://rive.app/.well-known/api-catalog","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/api-catalog-rfc9727/"},"rsl":{"id":"rsl","url":"https://rive.app/robots.txt","status":200,"found":false,"outcome":"absent","reason":"text_match (?im)^license:\\s*\\S|rsl\\.xml not found","article":"https://agenticweb.wiki/protocols/rsl/"},"agent-permissions-json":{"id":"agent-permissions-json","url":"https://rive.app/.well-known/agent-permissions.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/agent-permissions-json/"},"auth-md":{"id":"auth-md","url":"https://rive.app/auth.md","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/auth-md/"},"ai-crawler-tokens-robots":{"id":"ai-crawler-tokens-robots","url":"https://rive.app/robots.txt","status":200,"found":false,"outcome":"absent","reason":"text_match (?im)^user-agent:\\s*(GPTBot|OAI-SearchBot|ClaudeBot|Claude-User|Claude-SearchBot|Google-Extended|PerplexityBot|CCBot|Applebot-Extended|meta-externalagent|Bytespider|Amazonbot)\\b not found","article":"https://agenticweb.wiki/protocols/ai-crawler-tokens-robots/"},"agents-json":{"id":"agents-json","url":"https://rive.app/.well-known/agents.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/agents-json/"},"agents-txt":{"id":"agents-txt","url":"https://rive.app/agents.txt","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/agents-txt/"},"ai-txt":{"id":"ai-txt","url":"https://rive.app/ai.txt","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/ai-txt/"},"lmos":{"id":"lmos","url":"https://rive.app/.well-known/wot-thing-description","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/lmos/"},"erc-8004":{"id":"erc-8004","url":"https://rive.app/.well-known/agent-registration.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/erc-8004/"},"vi":{"id":"vi","url":"https://rive.app/.well-known/verifiable-intent","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/vi/"},"oauth-metadata-for-agents":{"id":"oauth-metadata-for-agents","url":"https://rive.app/.well-known/oauth-protected-resource","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/oauth-metadata-for-agents/"},"okf":{"id":"okf","url":"https://rive.app/okf/index.md","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/okf/"},"anthropic-agent-skills-format":{"id":"anthropic-agent-skills-format","url":"https://rive.app/.well-known/agent-skills/index.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/anthropic-agent-skills-format/"},"identity-assertion-authz-grant":{"id":"identity-assertion-authz-grant","url":"https://rive.app/.well-known/oauth-authorization-server","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/identity-assertion-authz-grant/"},"kya-os":{"id":"kya-os","url":"https://rive.app/.well-known/mcp","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/kya-os/"},"oauth-cimd":{"id":"oauth-cimd","url":"https://rive.app/.well-known/oauth-authorization-server","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/oauth-cimd/"},"erc-8444":{"id":"erc-8444","url":"https://rive.app/.well-known/ard.json","status":404,"found":false,"outcome":"absent","reason":"status 404, expected 200","article":"https://agenticweb.wiki/protocols/erc-8444/"}},"skipped":{"mcp":"no-fixed-path","agent-communication-protocol":"superseded","agentic-commerce-protocol":"unsafe-post","x402":"no-fixed-path","l402":"no-fixed-path","mpp":"no-fixed-path","s402":"no-fixed-path","nlweb":"unsafe-post","agent-connect-protocol":"unsafe-post","agent-protocol-aief":"unsafe-post","aitp":"unsafe-post","coral-protocol":"unsafe-post","vercel-agent-readability":"no-fixed-path","daap":"no-fixed-path","aap":"no-fixed-path","aauth":"needs-credentials","ap2":"needs-credentials","ap2-checkout-mandate":"needs-credentials","vcap":"needs-credentials","tap":"needs-credentials","agent-attribution-protocol":"needs-credentials","agent-audit-trail":"needs-credentials","artf":"needs-credentials","erc-8183":"not-http","erc-8226":"not-http","dns-aid":"not-http","agtp":"not-http","slim":"not-http","spiffe":"not-http","wimse":"not-http","http-message-signatures":"no-fixed-path","ans":"no-fixed-path","aip":"client-side","webmcp":"client-side","web-agent-protocol":"client-side","agent-client-protocol":"client-side","a2ui":"no-fixed-path","ag-ui":"no-fixed-path","mcp-apps":"no-fixed-path","openai-apps-sdk-manifests":"no-fixed-path","oasf":"no-fixed-path","aamp":"no-fixed-path","agora-commerce-protocol":"no-fixed-path","osi":"no-fixed-path","nlip":"no-fixed-path","emv-agentic-payments":"no-fixed-path","aiagent-auth":"no-fixed-path","dan":"not-http","mcp-registry":"no-fixed-path","wimse-aims":"no-fixed-path","personal-agent-protocol":"no-fixed-path","aauth-hardt":"no-fixed-path","cloudflare-pay-per-crawl":"no-fixed-path","wimse-agent-audit-record":"no-fixed-path","mcp-server-cards":"no-fixed-path","dawn-agent-discovery-framework":"no-fixed-path","agent-identity-document":"no-fixed-path","mcp-dns-discovery":"no-fixed-path","agent-principal-binding":"no-fixed-path","aip-delegation-chain":"no-fixed-path","credential-delegation-protocol-wimse":"no-fixed-path","agent-delegation-receipts":"no-fixed-path","aauth-r3":"no-fixed-path","acip":"no-fixed-path","knowledge-linkset":"no-fixed-path","scitt-ai-agent-execution":"no-fixed-path","agent-channel-fan-out":"no-fixed-path","aagv":"no-fixed-path","agentic-payments-gating-model":"no-fixed-path","idmandat-credential":"no-fixed-path","lws10-authn-ssi-cid":"no-fixed-path","wimse-workload-identity-metadata":"no-fixed-path","haace":"no-fixed-path","local-tool-call-proof":"no-fixed-path","agent-authorization-envelope":"no-fixed-path","a2wp":"no-fixed-path","agent-decision-commitment":"no-fixed-path","gbz-185-agent-interconnection":"no-fixed-path","amp-ant":"needs-credentials","x401":"no-fixed-path","kyapay-token":"needs-credentials","iab-comp":"no-fixed-path","agent-commerce-kit":"no-fixed-path","cloudflare-markdown-for-agents":"no-fixed-path","otel-genai-semconv":"not-http","erc-8001":"not-http","erc-8126":"not-http","erc-8196":"not-http","jafar":"no-fixed-path","anonymous-bot-auth":"no-fixed-path","workload-authz-grant":"needs-credentials","oauth-id-continuation":"needs-credentials","oauth-agent-delegation":"no-fixed-path","opena2a-aap":"no-fixed-path","open-responses":"no-fixed-path"},"coverage":{"discover":[],"identify":[],"permit":[],"read":["llms-txt"],"act":[],"coordinate":[],"pay":[],"present":[],"account":[]},"rules":"https://agenticweb.wiki/data/probes.json","outcome":"scored","extracted":{"llms_txt_summary":{"title":"Rive","description":"Rive is an interactive graphics engine for games, apps, and interactive UI. Use Rive as your whole engine, or add it to the products you already have. Coding agents build Rive files with the Rive CLI…","links":80,"sections":["Two ways to use Rive","How to get started","Install the Rive CLI","The Rive CLI","Ship the file in your app","AnimaScript","The Rive Editor","Figma to Rive","Rive or HTML","Runtimes and platforms","Why teams choose Rive","Pricing","Common questions","Example projects","Case studies","Docs","Optional"],"full_version":true,"estimated_tokens":5681,"html_to_markdown_token_ratio":23.072},"robots_ai_policy":{"allowed":[],"blocked":[],"partial":[],"unlisted_default":"allowed","agentmap":null,"sitemaps":["https://rive.app/sitemap.xml"],"content_signals":[],"license":[]},"root_readability":{"render_mode":"ssr_rich","html_bytes":524288,"visible_text_bytes":15211,"visible_words":2624,"text_to_html_ratio":0.029,"estimated_tokens":3803,"html_bloat_ratio":34.468,"js_shell_only":false,"has_main_landmark":false,"h1_count":3,"h2_count":9,"heading_hierarchy_valid":false,"table_count":0,"table_rows":0,"first_content_byte_offset":315477,"meta_robots_directives":[],"snippet_or_ai_blocked_by_meta":false,"json_ld_types":["Organization","ImageObject","WebSite"],"has_attribute_rich_schema":false,"vary_accept_present":true,"html_link_alternates":[],"title":"Rive: interactive animation engine for games, apps, and UI","description":"Behind Duolingo and Spotify Wrapped. Build games, UI, and interactive animation in the Rive Editor or with your coding agent and the Rive CLI."}}}}