1<!DOCTYPE html><html><head><style type="text/css">html, body { background-color: #17191c; } 2@media (prefers-color-scheme: light) { 3 html:not(.dark):not(.light), html:not(.dark):not(.light) body { background-color: #f6f2ea; } 4} 5html.light, html.light body { background-color: #f6f2ea; } 6html.dark, html.dark body { background-color: #17191c; } 7html.js #app.app { min-height: 100vh; background-color: inherit; }</style>
7<script nonce="491f7af2fb78ea8e3bba98dee31fc9a8">document.documentElement.classList.add('js'); 8(function () { 9 try { 10 var el = document.documentElement; 11 if (el.classList.contains('dark') || el.classList.contains('light')) return; 12 var saved = null; 13 // Isolate ALL storage access: reading window.localStorage or a 14 // getItem throws when site data is blocked, and that throw must NOT 15 // skip the matchMedia OS fallback below - otherwise a dark-OS visitor 16 // with storage blocked stays classless and the class-based variants 17 // flash light over the dark canvas, the exact flash this prevents. 18 try { 19 var storage = window.localStorage; 20 if (storage) { 21 var hint = storage.getItem('taskade:theme'); 22 if (hint === 'dark' || hint === 'light') { 23 saved = hint; 24 } else { 25 var raw = storage.getItem('persist:taskade'); 26 if (raw) { 27 var parsed = JSON.parse(raw); 28 if (parsed && parsed.session) { 29 var isNightMode = JSON.parse(parsed.session).user.preferences.isNightMode; 30 if (isNightMode === true) saved = 'dark'; 31 else if (isNightMode === false) saved = 'light'; 32 } 33 } 34 } 35 } 36 } catch (e1) {} 37 if (saved) { 38 el.classList.add(saved); 39 } else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { 40 el.classList.add('dark'); 41 } 42 } catch (e) {} 43})();</script>
43<!-- no title --><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=3, user-scalable=yes, viewport-fit=cover, interactive-widget=resizes-content">
vendor: 63 bytes, line 43
43<script async src="https://www.googletagmanager.com/gtag/js?id=
43G-WWJTNN1SFE
vendor: 11 bytes, line 43
43"></script>
43<script nonce="491f7af2fb78ea8e3bba98dee31fc9a8">
vendor: 127 bytes, lines 43-46
43window.dataLayer = window.dataLayer || []; 44function gtag(){dataLayer.push(arguments);} 45gtag('js', new Date()); 46gtag('config', '
46G-WWJTNN1SFE
vendor: 3 bytes, line 46
46');
46</script>
46<script nonce="491f7af2fb78ea8e3bba98dee31fc9a8">// Detect iOS Safari and set maximum-scale=1 to prevent zoom on input focus 47(function() { 48 const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); 49 if (isIOS) { 50 const viewport = document.querySelector('meta[name="viewport"]'); 51 if (viewport) { 52 viewport.setAttribute('content', 'width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=1, user-scalable=yes, viewport-fit=cover, interactive-widget=resizes-content'); 53 } 54 } 55})(); 56</script>
56<title>Log in to Taskade â AI workspaces, agents, and Genesis apps</title><meta name="description" content="Taskade is an AI-native workspace where projects, agents, and automations live together. Log in to your Taskade workspace and resume your Genesis apps." data-rh="true"/><link rel="manifest" href="https://www.taskade.com/manifest.json"/><link rel="canonical" href="https://www.taskade.com/login"/><meta name="apple-itunes-app" content="app-id=1264713923" data-rh="true"/><meta name="google-play-app" content="app-id=com.taskade.mobile" data-rh="true"/><meta property="fb:app_id" content="120910341911924" data-rh="true"/><meta property="og:type" content="website" data-rh="true"/><meta property="og:url" content="https://www.taskade.com/login" data-rh="true"/><meta property="og:title" content="Log in to Taskade â AI workspaces, agents, and Genesis apps" data-rh="true"/><meta property="og:description" content="Taskade is an AI-native workspace where projects, agents, and automations live together. Log in to your Taskade workspace and resume your Genesis apps." data-rh="true"/><meta property="og:site_name" content="Taskade" data-rh="true"/><meta property="og:image" content="https://www.taskade.com/images/taskade-genesis-mascot-2026.png" data-rh="true"/><meta property="og:image:width" content="1200" data-rh="true"/><meta property="og:image:height" content="630" data-rh="true"/><meta property="og:image:alt" content="Taskade â Log in" data-rh="true"/><meta property="twitter:card" content="summary_large_image" data-rh="true"/><meta property="twitter:title" content="Log in to Taskade â AI workspaces, agents, and Genesis apps" data-rh="true"/><meta property="twitter:description" content="Taskade is an AI-native workspace where projects, agents, and automations live together. Log in to your Taskade workspace and resume your Genesis apps." data-rh="true"/><meta property="twitter:site" content="@taskade" data-rh="true"/><meta property="twitter:creator" content="@taskade" data-rh="true"/><meta property="twitter:image" content="https://www.taskade.com/images/taskade-genesis-mascot-2026.png" data-rh="true"/><meta name="robots" content="noindex, nofollow"/><meta name="googlebot" content="noindex, nofollow"/><link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/hcobdfnjjaceclfdjpmmpiknimccjpmf"><link rel="icon" href="/favicon.ico?v=2" sizes="48x48"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="apple-touch-icon" sizes="180x180" href="/images/taskade-icon-180.png"><link rel="android-touch-icon" href="/images/taskade-icon-192.png"><style type="text/css">.animated { animation-duration: 1s; animation-fill-mode: both; } 57@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } 58.fadeIn { animation-name: fadeIn; } 59</style><link rel="stylesheet" href="/_taskade/public/assets/D9P_Q9BS.css" /><link rel="modulepreload" href="/_taskade/public/javascripts/Bq4CGJvQ.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/BH8H_LGv.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/DoF_nSdP.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/CBb276jL.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/YMMVz4JP.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/ClcBAhQj.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/-V_hsSjT.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/xxjwP_N-.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/BPlJMaYc.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/CblhlU26.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/C_JRSaqZ.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/SRmaz9RE.js" /> <link rel="modulepreload" href="/_taskade/public/javascripts/D2jL523O.js" /></head><body><div class="app" id="app"></div>
59<script nonce="491f7af2fb78ea8e3bba98dee31fc9a8">window.__PRELOADED_STATE__ = {"context":{"urls":{"canonical":{"scheme":"https","hostname":"www.taskade.com","pathname":"/"},"short":{"scheme":"https","hostname":"www.taskade.com","pathname":"/"}}},"session":{"fetchStatus":"FETCH_STATUS_LOADED"},"auth":{"user":null}} 60</script>
60<script id="profitwell-js" data-pw-auth="5c2d275e5af052fc78dab933f7821ad0">(function(i,s,o,g,r,a,m){i[o]=i[o]||function(){(i[o].q=i[o].q||[]).push(arguments)}; 61a=s.createElement(g);m=s.getElementsByTagName(g)[0];a.async=1;a.src=r+'?auth='+ 62s.getElementById(o+'-js').getAttribute('data-pw-auth');m.parentNode.insertBefore(a,m); 63})(window,document,'profitwell','script','https://public.profitwell.com/js/profitwell.js'); 64</script>
64<script async nonce="491f7af2fb78ea8e3bba98dee31fc9a8" src="https://cdn.firstpromoter.com/fpr.js"></script>
64<script>(function(w){w.fpr=w.fpr||function(){w.fpr.q = w.fpr.q||[];w.fpr.q[arguments[0]=='set'?'unshift':'push'](arguments);};})(window); 65fpr("init", {cid:"ktbifmo1"}); 66fpr("click"); 67</script>
67<script id="canny-jssdk" async src="https://canny.io/sdk.js"></script>
67<script>(function(w, d, i, s) { 68 function l() { 69 if (!d.getElementById(i)) { 70 var f = d.getElementsByTagName(s)[0], 71 e = d.createElement(s); 72 e.type = "text/javascript"; 73 e.async = true; 74 e.src = "https://canny.io/sdk.js"; 75 f.parentNode.insertBefore(e, f); 76 } 77 } 78 if (typeof w.Canny !== "function") { 79 var c = function() { c.q.push(arguments); }; 80 c.q = []; 81 w.Canny = c; 82 if (d.readyState === "complete") { 83 l(); 84 } else { 85 w.attachEvent ? w.attachEvent("onload", l) : w.addEventListener("load", l, false); 86 } 87 } 88})(window, document, "canny-jssdk", "script"); 89</script>
89<script async defer data-domain="taskade.com" src="https://pa.taskade.com/js/plausible.js"></script>
89<script type="module" src="/_taskade/public/javascripts/main-CV84l4fP.js"></script>
89<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"46187c2bbd3f45ea89ce2e34e454bd4e","spa":2}' crossorigin="anonymous"></script>
89 90</body></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.