1<!DOCTYPE html><html lang="en" class="dark a11y-reduced-motion"><head> 2 <meta charset="UTF-8"> 3 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 4 <!-- The shell's own title and description. Helmet replaces both on every route, 5 and prerender.js drops this description once Helmet's has rendered - but this 6 is what a route the prerender missed is served, so it mirrors the homepage. --> 7 <title>AI Writing Tool for Mac | Echoo</title> 8 9 10 <meta name="author" content="Echoo"> 11 12 <!-- Theme & Icons --> 13 <meta id="theme-color" name="theme-color" content="#08090B"> 14 <meta name="msapplication-TileColor" content="#08090B"> 15 <meta name="msapplication-TileImage" content="/mstile-150x150.png"> 16 17 <!-- Favicons - All browsers & platforms --> 18 <link rel="icon" type="image/svg+xml" href="/favicon.svg?v=4"> 19 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 20 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 21 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 22 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 23 <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> 24 <link rel="manifest" href="/site.webmanifest"> 25 26 <!-- Additional SEO --> 27 <meta name="application-name" content="Echoo"> 28 <meta name="apple-mobile-web-app-title" content="Echoo"> 29 <meta name="format-detection" content="telephone=no"> 30 31 <!-- AI context file for LLM crawlers --> 32 <link rel="alternate" type="text/plain" href="/llms.txt" title="LLM Context"> 33 34 <!-- Pre-paint theme resolution: avoid FOUC by setting the dark/light class before React hydrates. 35 Must match the resolution logic in src/context/ThemeContext.tsx (key: echoo-theme). --> 36
36<script> 37 (function () { 38 var stored = null; 39 try { 40 stored = localStorage.getItem('echoo-theme'); 41 } catch (e) {} 42 var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; 43 var dark = stored === 'light' ? false : stored === 'system' ? prefersDark : true; 44 var root = document.documentElement; 45 root.classList.remove('light', 'dark'); 46 root.classList.add(dark ? 'dark' : 'light'); 47 document.getElementById('theme-color').setAttribute('content', dark ? '#08090B' : '#FBF9F9'); 48 })(); 49 </script>
49 50 51 <!-- The headword face is above the fold on every route, and it is fetched 52 from CSS three levels deep in the bundle. Preloading the latin roman 53 file is what keeps the first paint from swapping. latin-ext and the 54 italics stay unpreloaded - they are conditional on content. --> 55 <link rel="preload" href="/fonts/archivo-latin-roman.woff2" as="font" type="font/woff2" crossorigin=""> 56
56<script type="module" crossorigin="" src="/assets/index-CQi3APS0.js"></script>
56 57 <link rel="modulepreload" crossorigin="" href="/assets/framer-motion-0Sy5Nd0g.js"> 58 <link rel="modulepreload" crossorigin="" href="/assets/vendor-C97i8dbC.js"> 59 <link rel="stylesheet" crossorigin="" href="/assets/index-CmWsv8lk.css"> 60<style type="text/css">:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
60left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
60:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
60--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 61</style><link rel="canonical" href="https://www.echoo.ai/" data-rh="true"><meta name="description" content="Echoo is the AI writing tool that turns your language into clear, natural English in any Mac app with one shortcut. Try 10 free credits, no card needed." data-rh="true"><meta name="keywords" content="secure AI writing assistant Mac, AI writing shortcut Mac, improve writing without changing tone, Mac AI translator, AI rewrite tool Mac, AI proofreading Mac, fix grammar Mac, AI writing automation Mac, keyboard shortcut AI writing, private AI writing assistant, custom AI commands Mac, professional writing Mac" data-rh="true"><meta property="og:type" content="website" data-rh="true"><meta property="og:url" content="https://www.echoo.ai/" data-rh="true"><meta property="og:title" content="AI Writing Tool for Mac | Echoo" data-rh="true"><meta property="og:description" content="Echoo is the AI writing tool that turns your language into clear, natural English in any Mac app with one shortcut. Try 10 free credits, no card needed." data-rh="true"><meta property="og:image" content="https://www.echoo.ai/og-image.png" data-rh="true"><meta property="og:image:alt" content="AI Writing Tool for Mac | Echoo" data-rh="true">
61<meta property="og:image:width" content="1200" data-rh="true"><meta property="og:image:height" content="630" data-rh="true"><meta property="og:site_name" content="Echoo" data-rh="true"><meta property="og:locale" content="en_US" data-rh="true"><meta name="twitter:card" content="summary_large_image" data-rh="true"><meta name="twitter:site" content="@echoo_app" data-rh="true"><meta name="twitter:creator" content="@echoo_app" data-rh="true"><meta name="twitter:title" content="AI Writing Tool for Mac | Echoo" data-rh="true"><meta name="twitter:description" content="Echoo is the AI writing tool that turns your language into clear, natural English in any Mac app with one shortcut. Try 10 free credits, no card needed." data-rh="true"><meta name="twitter:image" content="https://www.echoo.ai/og-image.png" data-rh="true"><meta name="twitter:image:alt" content="AI Writing Tool for Mac | Echoo" data-rh="true"><meta name="robots" content="index, follow, max-image-preview:large, max-video-preview:-1" data-rh="true">
61<script type="application/ld+json" data-rh="true">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://www.echoo.ai/#website","name":"Echoo","url":"https://www.echoo.ai/"},{"@type":"WebPage","@id":"https://www.echoo.ai/#webpage","name":"AI Writing Tool for Mac | Echoo","description":"Echoo is the AI writing tool that turns your language into clear, natural English in any Mac app with one shortcut. Try 10 free credits, no card needed.","url":"https://www.echoo.ai/","datePublished":"2025-01-01","dateModified":"2026-09-14","inLanguage":"en-US","isPartOf":{"@id":"https://www.echoo.ai/#website"},"author":{"@id":"https://www.echoo.ai/#organization"},"speakable":{"@type":"SpeakableSpecification","cssSelector":["h1",".hero-description",".feature-title"]}},{"@type":"SoftwareApplication","@id":"https://www.echoo.ai/#software","name":"Echoo","description":"AI writing tool for macOS. Write in your language and turn your language into clear, natural English with one shortcut in any Mac app, keeping your tone and style. Editable prompts, custom commands, and direct AI provider API calls.","applicationCategory":"ProductivityApplication","operatingSystem":"macOS","url":"https://www.echoo.ai/","downloadUrl":"https://www.echoo.ai/get/Echoo.dmg","softwareVersion":"1.2.0","datePublished":"2025-01-01","softwareRequirements":"macOS 14.0 or later","featureList":["Professional writing improvement while preserving tone, style, and intent","Secure requests to selected AI provider APIs","One-keyboard-shortcut workflow in any Mac app","Editable built-in commands and custom commands","Voice dictation and transcription in 25 languages","Real-time text translation to any language","Grammar and typo correction","Custom AI prompts with keyboard shortcuts or voice triggers","Claude Code Skills via voice or keyboard shortcuts without opening the CLI","Text rewriting in any tone","File intelligence without opening files","Local LLM support via Ollama, LocalAI, LiteLLM","Works in most applications via accessibility","Screen Context - attach screenshots to any AI command","Personalization - add your role, age, and audience as context for rewrites and translations that sound like you","Memory - commands learn from your past requests, picking up your terminology, tone, and level of detail","Voice Launcher - speak a command name to execute it","Voice Instruct - speak the instruction itself","Read Aloud with AI pre-processing and language detection","Edit any built-in command prompt","Create custom commands with your own prompt, model, and shortcut"],"screenshot":"https://www.echoo.ai/og-image.png","offers":{"@type":"AggregateOffer","priceCurrency":"USD","lowPrice":"6.99","highPrice":"9.99","offerCount":"2","offers":[{"@type":"Offer","name":"Echoo Pro","price":"6.99","priceCurrency":"USD","url":"https://www.echoo.ai/pricing","availability":"https://schema.org/InStock"},{"@type":"Offer","name":"Echoo Max","price":"9.99","priceCurrency":"USD","url":"https://www.echoo.ai/pricing","availability":"https://schema.org/InStock"}]},"aggregateRating":{"@type":"AggregateRating","ratingValue":"5","ratingCount":"2","bestRating":"5","worstRating":"1"},"review":[{"@type":"Review","reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"author":{"@type":"Person","name":"Bernard","jobTitle":"Writer, VVMac Magazine"},"reviewBody":"It is exactly what an AI assistant should be, with the minimum interface necessary and very transparent."},{"@type":"Review","reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"author":{"@type":"Person","name":"Dvir","jobTitle":"CEO"},"reviewBody":"I've tried many tools claiming to do something similar, but none are even remotely as intuitive and user-friendly. Love it!"}],"author":{"@id":"https://www.echoo.ai/#organization"}},{"@type":"Organization","@id":"https://www.echoo.ai/#organization","name":"Echoo","description":"Echoo builds macOS productivity tools for professional writing, secure AI provider routing, and fast keyboard-shortcut workflows.","url":"https://www.echoo.ai/","logo":"https://www.echoo.ai/favicon.svg","foundingDate":"2025","contactPoint":{"@type":"ContactPoint","contactType":"customer support","email":"[email protected]","url":"https://github.com/michael-elkabetz/echoo/issues"},"address":{"@type":"PostalAddress","addressLocality":"Tel Aviv","addressCountry":"IL"},"sameAs":["https://www.linkedin.com/company/echoo-ai/","https://x.com/echoo_app","https://bsky.app/profile/echoo-ai.bsky.social","https://www.youtube.com/@Echoo-App","https://www.reddit.com/user/Echoo-ai/","https://news.ycombinator.com/user?id=Echoo-ai","https://github.com/michael-elkabetz/echoo","https://www.producthunt.com/products/echoo","https://www.npmjs.com/package/echoo-cli"]},{"@type":"VideoObject","@id":"https://www.echoo.ai/#demo","name":"Echoo demo: write in y
61our language, get clear English in any Mac app","description":"Echoo turns a Spanish Gmail draft into clear, natural English with one shortcut, replacing the text in place. Personalization rewrites it to sound like you, Screen Context reads the Slack message you are replying to, and Memory keeps your names and terms spelled right on LinkedIn.","thumbnailUrl":"https://www.echoo.ai/echoo-demo-poster.webp","contentUrl":"https://www.echoo.ai/echoo-demo.mp4","uploadDate":"2026-09-15T00:00:00+00:00","inLanguage":"en","transcript":"Write in your own language. One shortcut. Clear, natural English. In any Mac app. No copy-paste. Tell Echoo about you. Once. Same draft. Now it sounds like you. Rewrite, To English, Translate. All use it. Echoo sees what you're replying to. Priya, the Q3 report, the 2pm deadline. Memory learns your names and terms. Spelled right the next time. Edit any command. Use it in any app. Don't translate. Just write. Download free for Mac. 10 free credits. No credit card.","duration":"PT52S","publisher":{"@id":"https://www.echoo.ai/#organization"}},{"@type":"FAQPage","@id":"https://www.echoo.ai/#faq","mainEntity":[{"@type":"Question","name":"What do I get for free?","acceptedA
61nswer":{"@type":"Answer","text":"10 credits to try Echoo. No credit card or API key needed. One successful command uses one credit. Choose Pro, Max, or Business when you need more."}},{"@type":"Question","name":"Can I change the prompts?","acceptedAnswer":{"@type":"Answer","text":"Yes. Edit any default commandâs prompt, create your own commands, and assign your own shortcuts. All paid plans include this."}},{"@type":"Question","name":"Which plan should I choose?","acceptedAnswer":{"@type":"Answer","text":"Pro includes 300 credits a month for $6.99. Max includes 600 for $9.99. Business offers custom credits per person and one company bill. All three include AI access and optional Memory."}},{"@type":"Question","name":"Where does my writing go?","acceptedAnswer":{"@type":"Answer","text":"Straight from your Mac to the AI providerâs API, on every plan. For the free credits and paid plans, Echoo issues a dedicated API key for your account and the app calls the provider directly with it; your text never passes through Echooâs servers, which only receive usage counts. Optional Memory keeps command history with the AI provider until reset or its size limit. Memory is off by default."}},{"@type":"Question","name":"How do I install Echoo on Mac?","acceptedA
61nswer":{"@type":"Answer","text":"Move Echoo to Applications, open it, and allow Accessibility access so it can read and replace text. Requires macOS 14 or later."}},{"@type":"Question","name":"Which Mac apps does Echoo support?","acceptedAnswer":{"@type":"Answer","text":"Most Mac apps, including Slack, Mail, Notion, and Gmail in your browser. Text fields must support macOS Accessibility; some apps and fields do not."}}]}]}</script>
61<script type="application/ld+json" data-rh="true">{"@context":"https://schema.org","@type":"Service","@id":"https://www.echoo.ai/business#service","name":"Echoo Business","description":"Echoo Business is the seat-based plan for teams. The company agrees with [email protected] how many seats it needs and how many credits each seat carries per month, and is billed monthly for that. Every seat has its own allowance; credits are not shared between people. Business has no list price because a seat is priced on the credits it carries; pricing is agreed with [email protected].","url":"https://www.echoo.ai/business","image":"https://www.echoo.ai/og-image.png","category":"Team software subscription","serviceType":"Team software subscription","provider":{"@id":"https://www.echoo.ai/#organization"},"offers":{"@type":"Offer","@id":"https://www.echoo.ai/business#offer","name":"Echoo Business","availability":"https://schema.org/InStock","url":"https://www.echoo.ai/business","priceCurrency":"USD","eligibleCustomerType":"https://schema.org/Business","eligibleQuantity":{"@type":"QuantitativeValue","unitText":"seat","description":"Agreed with sales. Business starts making sense at around 5 people; above 250 seats it is sized individually."},"seller":{"@id":"https://www.echoo.ai/#organization"}},"additionalProperty":[{"@type":"PropertyValue","name":"Pricing model","value":"Quoted per seat. A seat is priced on the monthly credits it carries; there is no list price and no published starting figure."},{"@type":"PropertyValue","name":"Credits per seat, per month","value":"Set by the buyer. Common allowances are 300, 600, 1200, 2500."},{"@type":"PropertyValue","name":"Credit sharing","value":"None. Every seat carries its own monthly allowance; credits do not pool between people and do not roll over."},{"@type":"PropertyValue","name":"Billing","value":"Monthly, to the company, through Paddle as Merchant of Record."},{"@type":"PropertyValue","name":"How to buy","value":"Agree seats and monthly credits with [email protected]."},{"@type":"PropertyValue","name":"Single sign-on","value":"Not available"},{"@type":"PropertyValue","name":"Admin console","value":"Not available"},{"@type":"PropertyValue","name":"SOC 2 report","value":"Not available"}]}</script>
61<link rel="alternate" type="text/markdown" href="./index.md" title="Markdown"></head> 62 63 <body> 64 <!-- email_off / email_on: Cloudflare's Email Address Obfuscation (Scrape Shield, on in 65 our own echoo.ai zone) rewrites every plain-text address and mailto: href into 66 /cdn-cgi/l/email-protection, which is a 404 for crawlers. These directives opt the 67 whole page out and survive the setting being toggled back on. --> 68 69 <div id="root"><a href="#main-content" class="sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:z-[10000] focus:px-4 focus:py-2 focus:bg-primary-solid focus:text-primary-foreground focus:rounded-lg focus:outline-none focus:ring-2 focus:ring-ring">Skip to main content</a><div class="pointer-events-none fixed inset-0 z-[9999] opacity-[0.03] hidden md:block" style="background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E"); background-repeat: repeat;"></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><button type="button" class="fixed bottom-6 left-6 z-50 min-w-[44px] min-h-[44px] p-3 bg-background/80 backdrop-blur-md border border-border rounded-full shadow-lg hover:border-accent transition-colors group focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background" aria-label="Accessibility Settings" aria-haspopup="dialog" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings w-6 h-6 text-muted-foreground group-hover:text-primary transition-colors" aria-hidden="true"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg></button><a href="https://discord.gg/T4DshzkPDG" target="_blank" rel="noopener noreferrer" aria-label="Discord support (opens in a new tab)" class="hidden sm:inline-flex fixed bottom-5 right-5 z-50 min-h-12 min-w-12 items-center justify-center gap-2 rounded-full bg-accent-solid px-3 text-sm font-medium text-accent-foreground shadow-lg transition-[transform,background-color,box-shadow] hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background motion-reduce:transform-none sm:px-4 sm:rounded-br-none"><svg viewBox="0 0 24 24" class="h-6 w-6 shrink-0" fill="currentColor" aria-hidden="true"><path d="M20.317 4.369A19.79 19.79 0 0 0 15.432 3a.074.074 0 0 0-.079.037c-.211.375-.445.865-.608 1.249a18.27 18.27 0 0 0-5.487 0 12.6 12.6 0 0 0-.617-1.25.077.077 0 0 0-.079-.036A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.1 13.1 0 0 1-1.872-.892.077.077 0 0 1-.008-.128c.126-.094.252-.192.372-.291a.074.074 0 0 1 .077-.01c3.927 1.793 8.18 1.793 12.061 0a.074.074 0 0 1 .078.009c.12.099.245.198.372.292a.077.077 0 0 1-.006.127 12.3 12.3 0 0 1-1.873.891.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.84 19.84 0 0 0 6.002-3.03.077.077 0 0 0 .032-.055c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.028ZM8.02 15.331c-1.182 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418Zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z"></path></svg><span class="hidden sm:inline">Discord Support</span></a>
69<div role="status" aria-live="polite" aria-atomic="true" class="sr-only"></div><div class="echoo-studio echoo-home min-h-screen bg-background text-foreground overflow-x-hidden font-sans selection:bg-primary/20 selection:text-primary"><header class="echoo-nav fixed inset-x-0 top-0 z-40 px-3 pt-3 md:px-6 md:pt-4"><div class="relative mx-auto max-w-5xl"><div aria-hidden="true" class="echoo-hero-plate pointer-events-none absolute inset-0 rounded-xl border border-[var(--glass-border)] bg-[var(--glass-bg)] backdrop-blur-xl shadow-[0_10px_40px_-16px_hsl(0_0%_0%/0.85)] origin-top transition-[opacity,transform] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] motion-reduce:transition-none scale-[0.97] opacity-0"></div><nav class="relative flex h-14 items-center justify-between px-3 md:px-4" aria-label="Main navigation"><a aria-label="Echoo home" class="flex min-h-11 items-center gap-2 rounded-md px-1 py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/"><svg viewBox="0 0 200 200" class="h-6 w-6" aria-hidden="true"><line x1="90" y1="60" x2="145" y2="60" stroke="currentColor" stroke-width="16" stroke-linecap="round" class="text-foreground"></line><line x1="30" y1="60" x2="55" y2="60" stroke="currentColor" stroke-width="16" stroke-linecap="round" class="text-foreground"></line><line x1="55" y1="60" x2="105" y2="140" stroke="currentColor" stroke-width="16" stroke-linecap="round" class="text-foreground"></line><line x1="113" y1="100" x2="138" y2="100" stroke="hsl(var(--logo-accent))" stroke-width="16" stroke-linecap="round"></line><line x1="105" y1="140" x2="145" y2="140" stroke="currentColor" stroke-width="16" stroke-linecap="round" class="text-foreground"></line></svg><span class="text-base tracking-tight text-foreground">Echoo</span></a><div class="hidden items-center gap-1 md:flex"><a class="rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/#commands">Demo</a><a class="rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/#how-it-works">Features</a><a class="rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/marketplace">Marketplace</a><a class="rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/pricing">Pricing</a><a class="rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/business">For teams</a></div><div class="flex items-center gap-1.5"><a href="/get/Echoo.dmg" download="Echoo.dmg" class="min-h-11 items-center rounded-lg bg-accent-solid px-4 text-sm font-medium text-accent-foreground transition-transform active:translate-y-px focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background hidden md:inline-flex">Try for free</a><button type="button" class="inline-flex h-11 w-11 items-center justify-center rounded-md text-foreground md:hidden" aria-expanded="false" aria-label="Toggle navigation"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-4 w-4" aria-hidden="true"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></nav></div></header><main id="main-content" tabindex="-1"><section class="echoo-hero relative isolate" aria-label="Echoo writing assistant"><div class="echoo-hero-art" aria-hidden="true"><img src="/images/echoo-light-study.webp" width="1536" height="1024" alt="" fetchpriority="high"><canvas class="echoo-hero-ribbons"></canvas></div><div class="echoo-hero-content relative w-full" style="opacity: 1; transform: none;"><h1 class="echoo-hero-title"><span class="block">Donât translate.</span> <span class="echoo-hero-emphasis block">Just write.</span></h1><p class="hero-description">The AI writing tool that turns your language into clear, natural English in any Mac app. One shortcut. <span class="whitespace-nowrap">No copy-paste.</span> Still sounds like you.</p><div class="echoo-hero-actions"><div><a href="/get/Echoo.dmg" download="Echoo.dmg" class="echoo-hero-download inline-flex min-h-14 items-center justify-center gap-3 rounded-xl bg-accent-solid px-7 py-3 text-base font-semibold text-accent-foreground transition-[transform,background-color] duration-200 hover:-translate-y-0.5 active:translate-y-
69px focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-4 focus-visible:ring-offset-background"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download h-4 w-4 shrink-0" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg>Download free for Mac</a><p class="mt-3 text-xs leading-relaxed text-muted-foreground" data-nosnippet="true">10 free credits · No credit card</p></div></div></div><a href="#writing-example" class="echoo-scroll-cue" data-nosnippet="true"><span>See how it works.</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down h-4 w-4" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg></a></section><section id="writing-example" class="echoo-writing-example relative isolate" aria-labelledby="writing-example-title" data-reduced-motion="true"><div class="echoo-writing-content relative"><div class="echoo-writing-heading"><h2 id="writing-example-title" class="headword text-balance">Still you. Now in English.</h2><p class="mx-auto mt-5 max-w-[42ch] text-base leading-relaxed text-muted-foreground sm:text-lg">Your language. Your context. Your voice. See what one shortcut can do.</p></div><div class="echoo-showcase" data-scene="translate"><div class="echoo-demo-tabs" role="tablist" aria-label="Explore Echoo features"><button type="button" role="tab" id="example-tab-translate" aria-controls="echoo-example-panel" aria-selected="true" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>To English</span></button><button type="button" role="tab" id="example-tab-personal" aria-controls="echoo-example-panel" aria-selected="false" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user-round" aria-hidden="true"><circle cx="12" cy="8" r="5"></circle><path d="M20 21a8 8 0 0 0-16 0"></path></svg><span>Personalization</span></button><button type="button" role="tab" id="example-tab-context" aria-controls="echoo-example-panel" aria-selected="false" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scan-text" aria-hidden="true"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><path d="M7 8h8"></path><path d="M7 12h10"></path><path d="M7 16h6"></path></svg><span>Screen Context</span></button><button type="button" role="tab" id="example-tab-memory" aria-controls="echoo-example-panel" aria-selected="false" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain" aria-hidden="true"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><span>Memory</span></button></div>
69<div class="echoo-demo-panel" role="tabpanel" id="echoo-example-panel" aria-labelledby="example-tab-translate" tabindex="0"><div class="echoo-demo-toolbar"><span class="echoo-demo-app"><img src="/icons/apps/slack.svg" width="16" height="16" alt="" class="dark:invert">Slack</span><span>One shortcut. Inline.</span></div><div class="echoo-demo-comparison"><div class="echoo-demo-pane"><div class="echoo-demo-pane-label"><span class="sense-num">01</span> Your draft</div><div class="echoo-demo-copy"><p class="echoo-demo-reserve" aria-hidden="true">salut, tu peux jeter un oeil à la page tarifs ? le menu mobile est cassé</p><p class="echoo-demo-reserve" aria-hidden="true">Hey, can you take a look at the pricing page? The mobile nav is broken.</p><p class="echoo-demo-reserve" aria-hidden="true">voici la nouvelle version de la page. dis-moi ce que tu en penses</p><p class="echoo-demo-reserve" aria-hidden="true">Hereâs the updated page design. Iâd love to hear your feedback.</p><p class="echoo-demo-reserve" aria-hidden="true">sure, iâll take a look and get back to you</p><p class="echoo-demo-reserve" aria-hidden="true">Sure, Priya. Iâll review the Q3 report and send feedback before 2pm.</p><p class="echoo-demo-reserve" aria-hidden="true">can u forward the deck to nuvantiss? think they need it today</p><p class="echoo-demo-reserve" aria-hidden="true">Can you forward the deck to Nuvantis? I think they need it today.</p><p class="echoo-demo-reserve" aria-hidden="true">Here is the new version of the page. Tell me what you think.</p><p lang="fr" style="opacity: 1;">salut, tu peux jeter un oeil à la page tarifs ? le menu mobile est cassé</p></div><span class="echoo-demo-pane-note">Written in French</span></div><div class="echoo-demo-pane echoo-demo-result"><div class="echoo-demo-pane-label"><span class="sense-num">02</span> With Echoo <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div><div class="echoo-demo-copy" aria-live="polite" aria-atomic="true"><p class="echoo-demo-reserve" aria-hidden="true">salut, tu peux jeter un oeil à la page tarifs ? le menu mobile est cassé</p><p class="echoo-demo-reserve" aria-hidden="true">Hey, can you take a look at the pricing page? The mobile nav is broken.</p><p class="echoo-demo-reserve" aria-hidden="true">voici la nouvelle version de la page. dis-moi ce que tu en penses</p><p class="echoo-demo-reserve" aria-hidden="true">Hereâs the updated page design. Iâd love to hear your feedback.</p><p class="echoo-demo-reserve" aria-hidden="true">sure, iâll take a look and get back to you</p><p class="echoo-demo-reserve" aria-hidden="true">Sure, Priya. Iâll review the Q3 report and send feedback before 2pm.</p><p class="echoo-demo-reserve" aria-hidden="true">can u forward the deck to nuvantiss? think they need it today</p><p class="echoo-demo-reserve" aria-hidden="true">Can you forward the deck to Nuvantis? I think they need it today.</p><p class="echoo-demo-reserve" aria-hidden="true">Here is the new version of the page. Tell me what you think.</p><p style="opacity: 1; transform: none;">Hey, can you take a look at the pricing page? The mobile nav is broken.</p></div><span class="echoo-demo-pane-note">Ready to send in the same app</span></div></div><div class="echoo-demo-command"><span>To English</span><span class="echoo-demo-shortcut" aria-label="Option E"><kbd>â¥</kbd><kbd>E</kbd></span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg><span>Your draft, replaced in place</span></div><div class="echoo-demo-context"><div class="echoo-demo-context-copy"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><div class="echoo-demo-context-text"><div class="echoo-demo-reserve" aria-hidden="true"><p class="echoo-demo-context-title">Your words. Another language.</p><p>Translate your draft into natural English, keeping your meaning and tone.</p></div><div class="echoo-demo-reserve" aria-hidden="true"><p class="echoo-demo-context-title">A little about you. A voice that fits.</p><p>Your role, age, and audience give the command context for a rewrite that sounds like you.</p></div><div class="echoo-demo-reserve" aria-hidden="true"><p class="echoo-demo-context-title">A reply that follows the conversation.</p><p>On your screen · Priya: âCan you review the Q3 report before 2pm?â</p></div><div class="echoo-demo-reserve" aria-hidden="true"><p class="echoo-demo-context-title">The right words, remembered.</p><p>From an earlier request · âSend the Q3 deck to Nuvantis before Thursday.â</p></div><div><p class="echoo-demo-context-title">Your words. Another language.</p><p>Translate your draft into natural English, keeping your meaning and tone.</p></div></div></div><div class="echoo-demo-context-detail"><span>Illustrative example · Try another feature above</span></div></div></div></div><div class="echoo-writing-apps" id="supported-apps"><h3 id="supported-apps-title" class="sr-only">Mac apps Echoo works in</h3><p class="text-muted-foreground">Write in Slack, Gmail, Notion, or any other Mac apps you already use.</p><ul role="list" aria-labelledby="supported-apps-title"><li class=""><img src="/icons/apps/slack.svg" alt="Slack" width="28" height="28" class="dark:invert" loading="lazy"></li><li class=""><img src="/icons/apps/visualstudiocode.svg" alt="VS Code" width="28" height="28" class="dark:invert" loading="lazy"></li><li class=""><img src="/icons/apps/googlechrome.svg" alt="Chrome" width="28" height="28" class="dark:invert" loading="lazy"></li><li class=""><img src="/icons/apps/notion.svg" alt="Notion" width="28" height="28" class="dark:invert" loading="lazy"></li><li class=""><img src="/icons/apps/gmail.svg" alt="Gmail" width="28" height="28" class="dark:invert" loading="lazy"></li><li class=""><img src="/icons/apps/figma.svg" alt="Figma" width="28" height="28" class="dark:invert" loading="lazy"></li><li class="">
69<img src="/icons/apps/linear.svg" alt="Linear" width="28" height="28" class="dark:invert" loading="lazy"></li><li class=""><img src="/icons/apps/x.svg" alt="X" width="28" height="28" class="dark:invert" loading="lazy"></li></ul></div></div></section><section id="testimonials" class="field-base lamp-left py-20 md:py-32" aria-labelledby="testimonials-title"><div class="container mx-auto max-w-7xl px-4 md:px-6"><div><h2 id="testimonials-title" class="headword text-4xl font-semibold text-foreground md:text-5xl">What people say about Echoo.</h2><p class="mt-6 max-w-[62ch] text-lg leading-relaxed text-muted-foreground">Read their feedback, or see Echoo <a href="https://vvmac.fr/wordpress_b/?p=10025" target="_blank" rel="noopener noreferrer" class="rounded-sm font-medium text-foreground underline underline-offset-2 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">featured in VVMac Magazine<span class="sr-only"> (opens in new tab)</span></a>.</p></div><div class="mt-12 grid grid-cols-1 border-t border-border md:grid-cols-2"><div class="border-b border-border py-8 md:border-b-0 md:border-r md:pr-10 lg:pr-14"><div class="flex gap-0.5" role="img" aria-label="5 out of 5 stars"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div><blockquote class="mt-5 max-w-[46ch] text-lg leading-relaxed text-foreground md:text-xl">It is exactly what an AI assistant should be, with the minimum interface necessary and very transparent, I just wrote an article on it in <a href="https://vvmac.fr/wordpress_b/?p=10025" target="_blank" rel="noopener noreferrer" class="text-primary hover:text-primary/90 transition-colors underline underline-offset-4 decoration-primary/30 hover:decoration-primary/80 font-bold relative z-10">VVMac Magazine</a>.</blockquote><div class="mt-5 text-sm text-muted-foreground"><span class="font-semibold text-foreground">Bernard</span><span>, Writer, VVMac Magazine</span><span class="label-gram ml-3 inline-flex items-center gap-1 align-middle"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-check h-3.5 w-3.5" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"></path><path d="m9 12 2 2 4-4"></path></svg>Verified</span></div></div><div class="py-8 md:pl-10 lg:pl-14"><div class="flex gap-0.5" role="img" aria-label="5 out of 5 stars"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-3.5 w-3.5 text-accent" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div><blockquote class="mt-5 max-w-[46ch] text-lg leading-relaxed text-foreground md:text-xl">I've tried many tools claiming to do something similar, but none are even remotely as intuitive and user-friendly.<br class="hidden md:block"> Love it!</blockquote><div class="mt-5 text-sm text-muted-foreground"><span class="font-semibold text-foreground">Dvir</span><span>
69, CEO</span><span class="label-gram ml-3 inline-flex items-center gap-1 align-middle"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-check h-3.5 w-3.5" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"></path><path d="m9 12 2 2 4-4"></path></svg>Verified</span></div></div></div></div></section><section id="commands" class="field-ink lamp-left flex items-center py-16 md:min-h-[100dvh] md:py-24" aria-labelledby="video-demo-title"><div class="container mx-auto w-full max-w-7xl px-4 md:px-6"><div class=""><h2 id="video-demo-title" class="headword text-center text-4xl font-semibold text-foreground md:text-5xl">See how it works.</h2><p class="mx-auto mt-4 max-w-[54ch] text-center text-base leading-relaxed text-muted-foreground">Watch Echoo turn a Spanish draft into clear, natural English in Gmail, then rewrite it to sound like you. One shortcut. No copy-paste.</p></div><div class="mx-auto mt-10 max-w-4xl"><div class="box overflow-hidden" role="group" aria-label="Echoo demo video"><div class="relative"><video class="w-full bg-muted" width="1920" height="1080" loop="" playsinline="" poster="/echoo-demo-poster-dark.webp" preload="none" aria-label="Echoo demo: a draft in your language becomes clear, natural English in any Mac app" aria-describedby="video-demo-description"><source src="/echoo-demo-av1-dark.mp4" type="video/mp4; codecs="av01.0.08M.08, mp4a.40.2""><source src="/echoo-demo-dark.mp4" type="video/mp4; codecs="avc1.640028, mp4a.40.2""><track kind="captions" src="/echoo-demo.en.vtt" srclang="en" label="English"></video><div class="absolute bottom-3 right-3 flex gap-2"><button type="button" class="inline-flex h-11 w-11 items-center justify-center rounded-full bg-background/70 text-foreground backdrop-blur-sm transition-colors hover:bg-background/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:h-9 sm:w-9" aria-label="Play video"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play h-4 w-4" aria-hidden="true"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></button><button type="button" class="inline-flex h-11 w-11 items-center justify-center rounded-full bg-background/70 text-foreground backdrop-blur-sm transition-colors hover:bg-background/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:h-9 sm:w-9" aria-label="Unmute video"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-volume-x h-4 w-4" aria-hidden="true"><path d="M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z"></path><line x1="22" x2="16" y1="9" y2="15"></line><line x1="16" x2="22" y1="9" y2="15"></line></svg></button></div></div></div><div id="video-demo-description" class="sr-only"><p>Music and interface sound effects only; no spoken narration.</p><ol><li>Write in your own language: a Spanish reply is typed in Gmail.</li><li>One shortcut, Option+E, turns it into clear, natural English in place. No copy-paste.</li><li>Tell Echoo about you once: in Personalization you add what you do, who you write for, and how you like to write.</li><li>Same draft, now it sounds like you: Option+R rewrites it in your voice. Rewrite, To English and Translate all use your profile.</li><li>In Slack, Screen Context lets Echoo see the message you are replying to, so the reply names Priya, the Q3 report and the 2pm deadline.</li><li>On LinkedIn, Memory learns your names and terms, so Echoo is spelled right the next time.</li><li>Edit any commandâs system prompt and shortcut, and use it in any app: Gmail, Slack, LinkedIn, Docs and your IDE.</li><li>The video ends with: Donât translate. Just write. Download free for Mac, 10 free credits, no credit card.</li></ol></div></div></div></section><section id="how-it-works" class="field-base lamp-right flex -scroll-mt-20 items-center py-20 md:-scroll-mt-32 md:min-h-[100dvh] md:py-32" aria-labelledby="entry-title"><div class="container mx-auto w-full max-w-7xl px-4 md:px-6"><div class="max-w-3xl"><h2 id="entry-title" class="headword text-balance text-4xl font-semibold text-foreground md:text-5xl">Your writing. Your rules.</h2></div><ul class="mt-12 grid gap-3 sm:grid-cols-2 lg:grid-cols-3" role="list"><li class="feature-title box relative flex min-h-44 flex-col p-6 md:p-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check h-5 w-5 shrink-0 text-accent-ink" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><div class="pt-10"><h3 class="text-balance text-xl font-semibold tracking-[-0.02em] text-foreground">Privacy first</h3><p class="mt-3 max-w-[54ch] text-pretty text-sm leading-relaxed text-muted-foreground">Your text goes straight to the AI providerâs API, not through Echooâs servers.</p></div></li><li class="feature-title box relative flex min-h-44 flex-col p-6 md:p-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-5 w-5 shrink-0 text-accent-ink" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><div class="pt-10"><h3 class="text-balance text-xl font-semibold tracking-[-0.02em] text-foreground">One shortcut</h3><p class="mt-3 max-w-[54ch] text-pretty text-sm leading-relaxed text-muted-foreground">Press a shortcut. Your text changes in place. Thatâs the whole writing interface.</p></div></li><li class="feature-title box relative flex min-h-44 flex-col p-6 md:p-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-horizontal h-5 w-5 shrink-0 text-accent-ink" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line>
69<line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg><div class="pt-10"><h3 class="text-balance text-xl font-semibold tracking-[-0.02em] text-foreground">Your prompts</h3><p class="mt-3 max-w-[54ch] text-pretty text-sm leading-relaxed text-muted-foreground">Edit any default prompt. Create your own commands. Set a shortcut for each.</p></div></li><li class="feature-title box relative flex min-h-44 flex-col p-6 md:p-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user-round h-5 w-5 shrink-0 text-accent-ink" aria-hidden="true"><circle cx="12" cy="8" r="5"></circle><path d="M20 21a8 8 0 0 0-16 0"></path></svg><div class="pt-10"><h3 class="text-balance text-xl font-semibold tracking-[-0.02em] text-foreground">Sounds more like you</h3><p class="mt-3 max-w-[54ch] text-pretty text-sm leading-relaxed text-muted-foreground">Personalize with your role, age, and audience. Get rewrites and translations that sound like you.</p></div></li><li class="feature-title box relative flex min-h-44 flex-col p-6 md:p-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain h-5 w-5 shrink-0 text-accent-ink" aria-hidden="true"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><div class="pt-10"><h3 class="text-balance text-xl font-semibold tracking-[-0.02em] text-foreground">Memory</h3><p class="mt-3 max-w-[54ch] text-pretty text-sm leading-relaxed text-muted-foreground">Commands learn your names, terms, and tone from past requests. You choose when itâs on.</p></div></li><li class="feature-title box relative flex min-h-44 flex-col p-6 md:p-7"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scan-text h-5 w-5 shrink-0 text-accent-ink" aria-hidden="true"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><path d="M7 8h8"></path><path d="M7 12h10"></path><path d="M7 16h6"></path></svg><div class="pt-10"><h3 class="text-balance text-xl font-semibold tracking-[-0.02em] text-foreground">Screen Context</h3><p class="mt-3 max-w-[54ch] text-pretty text-sm leading-relaxed text-muted-foreground">Add a screenshot to your command. Give replies the context they need to fit the conversation.</p></div></li></ul><div class="mt-14 border-t-2 border-accent pt-8"><div class="flex flex-col gap-6 md:flex-row md:items-end md:justify-between"><p class="max-w-[52ch] text-xl leading-relaxed text-foreground md:text-2xl"><span class="font-semibold">Start with 10 free credits.</span> Pick a plan when you need more.</p><a href="#plans" class="inline-flex min-h-12 shrink-0 items-center gap-2 rounded-lg bg-accent-solid px-6 text-base font-semibold text-accent-foreground transition-transform active:translate-y-px focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background">See plans<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-4 w-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></div></section><section id="plans" class="echoo-plans field-ink lamp-right py-20 md:py-32" aria-labelledby="plans-title"><div class="container mx-auto max-w-7xl px-4 md:px-6"><div class="max-w-3xl"><h2 id="plans-title" class="headword text-balance text-4xl font-semibold text-foreground md:text-5xl">10 credits on us. Then pick your plan.</h2><p class="mt-6 text-pretty text-lg leading-relaxed text-muted-foreground">AI included. No API key needed. Your prompts, shortcuts, and optional Memory on every paid plan.</p></div><div class="mt-12 grid items-stretch gap-4 lg:grid-cols-3"><div class="flex flex-col p-6 md:p-8 box-marked"><h3 class="text-xl font-semibold text-foreground">Pro</h3><div class="mt-5 flex flex-wrap items-baseline gap-x-2 gap-y-1" data-numeric="true"><span class="headword text-4xl font-semibold text-foreground">$6.99</span><span class="text-sm text-muted-foreground">/month</span><span class="text-base text-muted-foreground line-through">$9.99</span><span class="label-gram text-accent-ink">30% off</span></div><p class="mt-3 text-sm leading-relaxed text-muted-foreground">300 credits a month</p><div class="mt-auto pt-8"><a href="/get/Echoo.dmg" download="Echoo.dmg" class="inline-flex min-h-11 w-full items-center justify-center gap-2 rounded-lg bg-accent-solid px-6 text-sm font-semibold text-accent-foreground transition-transform active:translate-y-
69px focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download h-4 w-4" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg>Try for free</a><p class="mt-3 text-center text-xs text-muted-foreground">Cancel anytime.</p></div></div><div class="flex flex-col p-6 md:p-8 box"><h3 class="text-xl font-semibold text-foreground">Max</h3><div class="mt-5 flex flex-wrap items-baseline gap-x-2 gap-y-1" data-numeric="true"><span class="headword text-4xl font-semibold text-foreground">$9.99</span><span class="text-sm text-muted-foreground">/month</span><span class="text-base text-muted-foreground line-through">$12.99</span><span class="label-gram text-accent-ink">23% off</span></div><p class="mt-3 text-sm leading-relaxed text-muted-foreground">600 credits a month</p><div class="mt-auto pt-8"><a href="/get/Echoo.dmg" download="Echoo.dmg" class="inline-flex min-h-11 w-full items-center justify-center gap-2 rounded-lg bg-accent-solid px-6 text-sm font-semibold text-accent-foreground transition-transform active:translate-y-px focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download h-4 w-4" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg>Try for free</a><p class="mt-3 text-center text-xs text-muted-foreground">Cancel anytime.</p></div></div><div class="flex flex-col p-6 md:p-8 box"><h3 class="text-xl font-semibold text-foreground">Business</h3><div class="mt-5 flex flex-wrap items-baseline gap-x-2 gap-y-1" data-numeric="true"><span class="headword text-4xl font-semibold text-foreground">Custom</span><span class="text-sm text-muted-foreground">/seat/month</span></div><p class="mt-3 text-sm leading-relaxed text-muted-foreground">Choose monthly credits per person. One company bill.</p><div class="mt-auto pt-8"><a class="inline-flex min-h-11 w-full items-center justify-center gap-2 rounded-lg border border-border-strong px-6 text-sm font-semibold text-foreground hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background" href="/business">Get a quote<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-4 w-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><p class="mt-3 text-center text-xs text-muted-foreground">Billed monthly to the company.</p></div></div></div><div class="mt-6 flex flex-col gap-3 text-sm text-muted-foreground sm:flex-row sm:items-center sm:justify-between"><p>One credit = one successful command. Unused credits donât roll over.</p><a class="inline-flex min-h-11 shrink-0 items-center gap-1 rounded-sm font-semibold text-foreground hover:text-accent-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" href="/pricing">Compare plans<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-4 w-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></section><section class="echoo-faq field-base lamp-left py-20 md:py-32" aria-labelledby="faq-title"><div class="container mx-auto w-full max-w-7xl px-4 md:px-6"><div class=""><h2 id="faq-title" class="headword text-4xl font-semibold text-foreground md:text-5xl">A few answers.</h2></div><div class="mt-10 grid gap-3 md:grid-cols-2 md:gap-x-6"><div class="space-y-3"><div class="box overflow-hidden"><h3><button id=":r0:-button" type="button" aria-expanded="false" aria-controls=":r0:-panel" class="w-full flex items-center justify-between p-4 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"><span class="font-medium text-sm pr-4">What do I get for free?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-4 h-4 text-muted-foreground flex-shrink-0 transition-transform" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div id=":r0:-panel" role="region" aria-labelledby=":r0:-button" hidden="" class="px-4 pb-4"><p class="max-w-[68ch] text-sm text-muted-foreground">10 credits to try Echoo. No credit card or API key needed. One successful command uses one credit. Choose Pro, Max, or Business when you need more.</p></div></div><div class="box overflow-hidden"><h3><button id=":r1:-button" type="button" aria-expanded="false" aria-controls=":r1:-panel" class="w-full flex items-center justify-between p-4 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"><span class="font-medium text-sm pr-4">Can I change the prompts?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-4 h-4 text-muted-foreground flex-shrink-0 transition-transform" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div id=":r1:-panel" role="region" aria-labelledby=":r1:-button" hidden="" class="px-4 pb-4"><p class="max-w-[68ch] text-sm text-muted-foreground">Yes. Edit any default commandâs prompt, create your own commands, and assign your own shortcuts. All paid plans include this.</p></div></div><div class="box overflow-hidden"><h3><button id=":r2:-button" type="button" aria-expanded="false" aria-controls=":r2:-panel" class="w-full flex items-center justify-between p-4 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"><span class="font-medium text-sm pr-4">Which plan should I choose?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-4 h-4 text-muted-foreground flex-shrink-0 transition-transform" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div id=":r2:-panel" role="region" aria-labelledby=":r2:-button" hidden="" class="px-4 pb-4"><p class="max-w-[68ch] text-sm text-muted-foreground">Pro includes 300 credits a month for $6.99. Max includes 600 for $9.99. Business offers custom credits per person and one company bill. All three include AI access and optional Memory.</p></div></div></div><div class="space-y-3"><div class="box overflow-hidden"><h3><button id=":r3:-button" type="button" aria-expanded="false" aria-controls=":r3:-panel" class="w-full flex items-center justify-between p-4 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"><span class="font-medium text-sm pr-4">Where does my writing go?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-4 h-4 text-muted-foreground flex-shrink-0 transition-transform" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div id=":r3:-panel" role="region" aria-labelledby=":r3:-button" hidden="" class="px-4 pb-4"><p class="max-w-[68ch] text-sm text-muted-foreground">Straight from your Mac to the AI providerâs API, on every plan. For the free credits and paid plans, Echoo issues a dedicated API key for your account and the app calls the provider directly with it; your text never passes through Echooâs servers, which only receive usage counts. Optional Memory keeps command history with the AI provider until reset or its size limit. Memory is off by default.</p></div></div><div class="box overflow-hidden"><h3><button id=":r4:-button" type="button" aria-expanded="false" aria-controls=":r4:-panel" class="w-full flex items-center justify-between p-4 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"><span class="font-medium text-sm pr-4">How do I install Echoo on Mac?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-4 h-4 text-muted-foreground flex-shrink-0 transition-transform" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div id=":r4:-panel" role="region" aria-labelledby=":r4:-button" hidden="" class="px-4 pb-4"><p class="max-w-[68ch] text-sm text-muted-foreground">Move Echoo to Applications, open it, and allow Accessibility access so it can read and replace text. Requires macOS 14 or later.</p></div></div><div class="box overflow-hidden"><h3><button id=":r5:-button" type="button" aria-expanded="false" aria-controls=":r5:-panel" class="w-full flex items-center justify-between p-4 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"><span class="font-medium text-sm pr-4">Which Mac apps does Echoo support?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-4 h-4 text-muted-foreground flex-shrink-0 transition-transform" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div id=":r5:-panel" role="region" aria-labelledby=":r5:-button" hidden="" class="px-4 pb-4"><p class="max-w-[68ch] text-sm text-muted-foreground">Most Mac apps, including Slack, Mail, Notion, and Gmail in your browser. Text fields must support macOS Accessibility; some apps and fields do not.</p></div></div></div></div><p class="mt-8 text-sm text-muted-foreground">Already use another writing tool? <a class="font-medium text-foreground underline underline-offset-2 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/compare">See comparisons</a>.</p></div></section><section class="echoo-final-cta field-ink lamp-left flex items-center py-20 md:min-
69h-[70dvh] md:py-32" aria-labelledby="final-cta-title"><div class="container mx-auto w-full max-w-7xl px-4 md:px-6"><div class="grid gap-8 lg:grid-cols-[1fr_auto] lg:items-end"><div><h2 id="final-cta-title" class="headword text-4xl font-semibold text-foreground md:text-5xl">Write your next message your way.</h2><p class="mt-6 max-w-2xl text-lg leading-relaxed text-muted-foreground">10 free credits. No credit card. No API key.</p></div><div class="flex lg:justify-end"><a href="/get/Echoo.dmg" download="Echoo.dmg" class="inline-flex min-h-12 items-center justify-center gap-2 rounded-lg bg-accent-solid px-7 text-base font-semibold text-accent-foreground transition-transform active:translate-y-px focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download h-4 w-4" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" x2="12" y1="15" y2="3"></line></svg>Try for free</a></div></div></div></section></main><footer class="border-t border-border bg-background"><div class="container mx-auto max-w-7xl px-4 py-12 md:py-16"><nav aria-label="Footer navigation"><div class="grid grid-cols-2 gap-8 md:grid-cols-3 md:gap-12 lg:grid-cols-6"><div><h3 class="mb-4 text-sm font-semibold text-foreground">Product</h3><ul class="space-y-3" role="list"><li><a href="/get/Echoo.dmg" class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm">Download</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/marketplace">Command Marketplace</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/pricing">Pricing</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/business">For teams</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/blog">Blog</a></li></ul></div><div><h3 class="mb-4 text-sm font-semibold text-foreground">Community</h3><ul class="space-y-3" role="list"><li><a href="https://discord.gg/T4DshzkPDG" target="_blank" rel="noopener noreferrer" class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm">Discord<span class="sr-only"> (opens in new tab)</span></a></li><li><a href="https://github.com/michael-elkabetz/echoo" target="_blank" rel="noopener noreferrer" class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm">GitHub<span class="sr-only"> (opens in new tab)</span></a></li><li><a href="https://github.com/michael-elkabetz/echoo/issues" target="_blank" rel="noopener noreferrer" class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm">Report an Issue<span class="sr-only"> (opens in new tab)</span></a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/about">About</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/contact">Contact</a></li></ul></div><div><h3 class="mb-4 text-sm font-semibold text-foreground">Legal</h3><ul class="space-y-3" role="list"><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/pricing">Pricing</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/legal/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/legal">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/legal/refund">Refund Policy</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/legal/accessibility">Accessibility</a></li></ul></div><div><h3 class="mb-4 text-sm font-semibold text-foreground">Explore</h3><ul class="space-y-3" role="list"><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/use-cases">Use Cases</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/compare">Comparisons</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/alternative">Alternatives</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/translate">Translations</a></li></ul></div><div><h3 class="mb-4 text-sm font-semibold text-foreground">Resources</h3><ul class="space-y-3" role="list"><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/docs">Echoo API & developer docs</a></li><li><a href="/openapi.json" class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm">OpenAPI 3.1 spec</a></li><li><a href="/llms.txt" class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm">llms.txt</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/integrations">Integrations</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/how-to">How-To Guides</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/workflows">Workflows</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/for">For Your Role</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/learn">Learn</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/learn/best-ai-writing-tools-macos">Best AI writing tools</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/learn/best-ai-proofreading-tools">Best AI proofreaders</a></li></ul></div><div><h3 class="mb-4 text-sm font-semibold text-foreground">Switching to Echoo</h3><ul class="space-y-3" role="list"><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/alternative/grammarly">Grammarly alternative</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/alternative/deepl">DeepL alternative</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/alternative/apple-intelligence">Apple Intelligence alternative</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/alternative/chatgpt-desktop">ChatGPT desktop alternative</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/compare/copilot-for-mac">Echoo vs Microsoft Copilot</a></li><li><a class="text-muted-foreground hover:text-foreground transition-colors duration-200 text-sm cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm" href="/compare/grammarly">Echoo vs Grammarly</a></li></ul></div></div></nav><div class="mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 sm:flex-row"><div class="flex flex-col items-center gap-3 text-sm text-muted-foreground sm:items-start"><p>© 2026 Echoo. Built for Mac workflows. Third-party trademarks belong to their owners.</p><button type="button" class="rounded-sm underline underline-offset-4 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">Cookie preferences</button></div><p class="flex items-center gap-1.5 text-sm text-muted-foreground">Built for speed<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-3.5 w-3.5 fill-warning text-warning" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></p></div></div></footer></div></div> 70 <!--email_on--> 71 72 73</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.