// ==UserScript== // @name ChatGPT Auto-Continue ⏩ // @name:af ChatGPT Auto-Aangaan ⏩ // @name:am ChatGPT Auto-ተጨባጭ ማሳያ ⏩ // @name:ar ChatGPT الاستمرار التلقائي ⏩ // @name:az ChatGPT Avtomatik Davam et ⏩ // @name:be ChatGPT Аўтаматычнае Працягванне ⏩ // @name:bg ChatGPT Автоматично Продължаване ⏩ // @name:bn ChatGPT স্বয়ংক্রিয় চালিয়ে যাওয়া ⏩ // @name:bo ChatGPT རེད་འཐུམ་བཅོས་པ། ⏩ // @name:bs ChatGPT Automatski Nastavi ⏩ // @name:ca ChatGPT Auto-Continua ⏩ // @name:ceb ChatGPT Auto-Padayon ⏩ // @name:ckb ChatGPT دهستكاری خۆکار ⏩ // @name:cs ChatGPT Automatické Pokračování ⏩ // @name:cy ChatGPT Auto-Parhau ⏩ // @name:da ChatGPT Auto-Fortsæt ⏩ // @name:de ChatGPT Automatisches Fortfahren ⏩ // @name:dv ChatGPT އައިނާދު ހިސާބަތް ⏩ // @name:dz ChatGPT རེད་འཐུམ་གཅིག་ཁྱེར། ⏩ // @name:el ChatGPT Αυτόματη Συνέχιση ⏩ // @name:eo ChatGPT Aŭtomata Daŭrigado ⏩ // @name:es ChatGPT Auto-Continuar ⏩ // @name:et ChatGPT Automaatne Jätkamine ⏩ // @name:eu ChatGPT Auto-Jarraitu ⏩ // @name:fa ChatGPT ادامه خودکار ⏩ // @name:fi ChatGPT Automaattinen Jatkaminen ⏩ // @name:fo ChatGPT Auto-Verða ⏩ // @name:fr ChatGPT Auto-Continuer ⏩ // @name:fr-CA ChatGPT Auto-Continuer ⏩ // @name:gd ChatGPT Auto-Leantainn ⏩ // @name:gl ChatGPT Auto-Continuar ⏩ // @name:gu ChatGPT સ્વચાલિત-ચાલુ રાખો ⏩ // @name:haw ChatGPT Auto-Kōkua ⏩ // @name:he ChatGPT המשך אוטומטי ⏩ // @name:hi ChatGPT स्वचालित-प्रचालित रखें ⏩ // @name:hr ChatGPT Auto-Nastavi ⏩ // @name:ht ChatGPT Otomatik Kontinye ⏩ // @name:hu ChatGPT Automatikus Folytatás ⏩ // @name:hy ChatGPT Ինքնաշխատում Շարունակումը ⏩ // @name:id ChatGPT Lanjut Otomatis ⏩ // @name:is ChatGPT Sjálfvirk Framhald ⏩ // @name:it ChatGPT Auto-Continua ⏩ // @name:ja ChatGPT 自動継続 ⏩ // @name:jv ChatGPT Lanjut Otomatis ⏩ // @name:ka ChatGPT ავტომატური გაგრძელება ⏩ // @name:kab ChatGPT Yemmeslayen Avrid n Tizwaru ⏩ // @name:kk ChatGPT Автоматты Жалғастыру ⏩ // @name:km ChatGPT បន្តទៅមកដល់ដោយស្វ័យប្រវត្តិ ⏩ // @name:kn ChatGPT ಸ್ವಯಂಚಾಲಿತ ಮುಂದುವರಿಕೆ ⏩ // @name:ko ChatGPT 자동 계속 ⏩ // @name:ku ChatGPT Berdewamkirina Auto ⏩ // @name:ky ChatGPT Автоматтык Жалгастыруу ⏩ // @name:la ChatGPT Auto-Continuare ⏩ // @name:lb ChatGPT Auto-Weiderginn ⏩ // @name:lo ChatGPT ດຽວນີ້ບໍ່ຮອດຄວາມເລີຍ ⏩ // @name:lt ChatGPT Automatinis Tęsti ⏩ // @name:lv ChatGPT Automātiska Turpināšana ⏩ // @name:mg ChatGPT Miverina Automatically ⏩ // @name:mi ChatGPT Whakareri Tūmau ⏩ // @name:mk ChatGPT Автоматско Продолжување ⏩ // @name:ml ChatGPT ഓട്ടോ-തുടരുക ⏩ // @name:mn ChatGPT Автомат Үргэлжлүүлэх ⏩ // @name:ms ChatGPT Auto-Sambung ⏩ // @name:mt ChatGPT Awto-Kontinwa ⏩ // @name:my ChatGPT အလိုအလျောက်-ဆက်လက်လုပ်ကိုင်တယ် ⏩ // @name:ne ChatGPT स्वचालित-तत्परता ⏩ // @name:nl ChatGPT Auto-Doorgaan ⏩ // @name:no ChatGPT Auto-Fortsette ⏩ // @name:ny ChatGPT Auto-Endeleza ⏩ // @name:pa ChatGPT ਸਵੈ-ਚਲੋ ⏩ // @name:pap ChatGPT Sigui Automátikamente ⏩ // @name:pl ChatGPT Automatyczne Kontynuowanie ⏩ // @name:ps ChatGPT خپلکار تسلیم ⏩ // @name:pt ChatGPT Auto-Continuar ⏩ // @name:ro ChatGPT Auto-Continuare ⏩ // @name:ru ChatGPT Авто-Продолжение ⏩ // @name:rw ChatGPT Kugerageza Auto ⏩ // @name:si ChatGPT ස්වයංක්‍රීය-දියවැඩියාව ⏩ // @name:sk ChatGPT Auto-Pokračovať ⏩ // @name:sl ChatGPT Samodejno Nadaljuj ⏩ // @name:sm ChatGPT Aunoa'i-Taulaga ⏩ // @name:so ChatGPT Isdhaaf Caruureed ⏩ // @name:sr ChatGPT Аутоматски Настави ⏩ // @name:sv ChatGPT Auto-Fortsätt ⏩ // @name:sw ChatGPT Kusonga Kiotomatiki ⏩ // @name:ta ChatGPT தானியங்கி தொடர்ந்து செல்லுங்கள் ⏩ // @name:te ChatGPT ఆటో-కంటిన్యూ ⏩ // @name:tg ChatGPT Давомоти автоматӣ ⏩ // @name:th ChatGPT ดำเนินการต่ออย่างอัตโนมัติ ⏩ // @name:ti ChatGPT ኣበይቲ ድሕሪ ተረኺቡ ⏩ // @name:tk ChatGPT Avtomatik Dowam etmek ⏩ // @name:to ChatGPT Tonu-'Aofa ⏩ // @name:tpi ChatGPT Otomatik Kontinyu ⏩ // @name:tr ChatGPT Otomatik Devam ⏩ // @name:uk ChatGPT Автоматичне Продовження ⏩ // @name:ur ChatGPT خودکار جاری رکھیں ⏩ // @name:uz ChatGPT Avtomatik Davom ⏩ // @name:vi ChatGPT Tự Động Tiếp Tục ⏩ // @name:xh ChatGPT Ukuphela Okuqukethweyo ⏩ // @name:yi ChatGPT אַווטאָ-קאַנטיניוירן ⏩ // @name:zh ChatGPT 自动继续 ⏩ // @name:zh-CN ChatGPT 自动继续 ⏩ // @name:zh-HK ChatGPT 自動繼續 ⏩ // @name:zh-SG ChatGPT 自动继续 ⏩ // @name:zh-TW ChatGPT 自動繼續 ⏩ // @name:zu ChatGPT Ngokugcwele Ukuphela ⏩ // @description ⚡ Automatically continue generating multiple ChatGPT responses // @description:af ⚡ Outomaties voortgaan met die opwekking van meerdere ChatGPT-antwoorde // @description:am ⚡ እንዴትስ እንዲደርስ ያለብሳል የተወሰነ ምርጫዎች ለChatGPT // @description:ar ⚡ استمر في توليد استجابات متعددة لـ ChatGPT تلقائيًا // @description:az ⚡ ChatGPT cavablarını avtomatik olaraq çoxaldmağa davam edin // @description:be ⚡ Аўтаматычна працягвайце генерацыю некалькіх адказаў ChatGPT // @description:bem ⚡ Tontonkanyani kupitika kuwambo wanthu wokha-wokha wa ChatGPT // @description:bg ⚡ Продължете автоматично да генерирате множество отговори от ChatGPT // @description:bn ⚡ ChatGPT প্রতিক্রিয়া উত্পাদন অটোমেটিকভাবে চালিয়ে যান // @description:bo ⚡ ཡིག་ཆ་འཚོལ་ལག་སྤྱོད་རོགས་བྱུང་གནང་ནུས་པའི་ChatGPTལྕེབ་གསོར་བརྡ་འཕྲོ་ཤོག་ནང་བསྐྱོད་པ། // @description:bs ⚡ Nastavite automatski generirati više odgovora ChatGPT-a // @description:ca ⚡ Continua generant automàticament múltiples respostes de ChatGPT // @description:ceb ⚡ Magpadayon sa pag-generate og daghang mga Tugbang sa ChatGPT nga Otomatik // @description:ckb ⚡ بەردەوامبوون بە سەرجەم وەڵامەکانی ChatGPT // @description:cs ⚡ Automaticky pokračujte v generování více odpovědí ChatGPT // @description:cy ⚡ Parhewch i gynhyrchu nifer o ymatebion ChatGPT yn awtomatig // @description:da ⚡ Forsæt automatisk med at generere flere ChatGPT-responser // @description:de ⚡ Generieren Sie automatisch mehrere ChatGPT-Antworten weiterhin // @description:dv ⚡ އައުތީ ހުންނަވާ މެއިންމު ChatGPT އަޕް ކޮންޓެއް ބަދަލުކުރުމުގެ ރަނގަޅަ // @description:dz ⚡ འཕྲོས་མེད་པར་དུག་ཞིབ་པ་བསྐུགས་པར་ཡོད་མི་ChatGPTལྕེབ་གསོར་བརྡ་འཕྲོ་ཤོག་ནང་བསྐྱོད་པ། // @description:el ⚡ Συνεχίστε αυτόματα να δημιουργείτε πολλαπλές απαντήσεις ChatGPT // @description:eo ⚡ Daŭrigu aŭtomate generi plurajn respondojn ChatGPT // @description:es ⚡ Continúa generando automáticamente múltiples respuestas de ChatGPT // @description:et ⚡ Jätkake automaatselt mitme ChatGPT-vastuse genereerimist // @description:eu ⚡ Jarraitu automatikoki ChatGPT erantzun anitzak sortzen // @description:fa ⚡ ادامه تولید خودکار چندین پاسخ ChatGPT // @description:fi ⚡ Jatka automaattisesti useiden ChatGPT-vastausten generointia // @description:fo ⚡ Halda áfram við at framleiða fleiri ChatGPT svar // @description:fr ⚡ Continuez automatiquement à générer plusieurs réponses ChatGPT // @description:fr-CA ⚡ Continuez automatiquement à générer plusieurs réponses ChatGPT // @description:gd ⚡ Lean air adhart a' gabhail air adhart na freagairtean ChatGPT le bhith a' riochdachadh nas mòr // @description:gl ⚡ Continúa xerando automaticamente múltiples respostas de ChatGPT // @description:gu ⚡ આપોઆપ વધતા ચાર્જો આપતી કરો ChatGPT પ્રતિભાઓ // @description:haw ⚡ E mālama i ka hōʻoluʻolu ʻana i nā pane ʻelua a i ʻole iā ChatGPT // @description:he ⚡ המשך ליצור באופן אוטומטי מספר תגובות ChatGPT // @description:hi ⚡ स्वचालित रूप से बहुत सारे ChatGPT प्रतिक्रियाएँ उत्पन्न करना जारी रखें // @description:hr ⚡ Automatski nastavite generirati više ChatGPT odgovora // @description:ht ⚡ Kontinye otomatikman kontinye jenerasyon plizyè repons ChatGPT // @description:hu ⚡ Folytassa automatikusan több ChatGPT-válasz generálását // @description:hy ⚡ Շարունակեք ավտոմատ ստեղծել մեկից ավելի ChatGPT պատասխաններ // @description:id ⚡ Lanjutkan secara otomatis menghasilkan beberapa respons ChatGPT // @description:is ⚡ Halda áfram að framleiða fjölda ChatGPT-svara sjálfkrafa // @description:it ⚡ Continua automaticamente a generare più risposte di ChatGPT // @description:ja ⚡ ChatGPTの複数の応答を自動的に継続的に生成し続ける // @description:jv ⚡ Terus ngasilake balasan multipel ChatGPT kasebut otomatis // @description:ka ⚡ გაგრძელეთ ავტომატურად გენერირებას რამდენიმე ChatGPT პასუხის // @description:kab ⚡ Sekcem seg yilmeẓyen deg usefru n tufat ChatGPT // @description:kk ⚡ ChatGPT-ның бірнеше жауаптарын автоматты түрде жалғастыруға жалғастырыңыз // @description:km ⚡ បន្តទៀតហើយបន្តការបង្កើតចម្លើយជាច្រើននៃ ChatGPT ដោយស្វ័យប្រវត្តិ // @description:kn ⚡ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ChatGPT ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಮುಂದುವರಿಸಿ // @description:ko ⚡ ChatGPT 응답을 자동으로 계속 생성하세요 // @description:ku ⚡ Parvekirina otomatîk a berdevkêya çêkirina gelek bersivên ChatGPT // @description:ky ⚡ Тууралуу даярдалган көптөгөн ChatGPT каражаттарын жалгастыр // @description:la ⚡ Automatica continua generatio plurium responsionum ChatGPT // @description:lb ⚡ Fuert mat der Automatiséierung vum generéieren vun méi ChatGPT Äntwerten // @description:lo ⚡ ຕະຫຼາດໃນການຜະລິດທັງເຫລົ່າຂອງການສ້າງຄໍາອະທິບາຍຂອງ ChatGPT // @description:lt ⚡ Tęskite automatiškai generuoti daugelį ChatGPT atsakymų // @description:lv ⚡ Turpiniet automātiski ģenerēt vairākas ChatGPT atbildes // @description:mg ⚡ Mihatra ny famokarana an-taonana momba ny fijery maromaro amin'ny ChatGPT // @description:mi ⚡ Whakapau tonu i te whakaputa i ngā whakahoki ā-ipurangi maha mō te ChatGPT // @description:mk ⚡ Настани се автоматски да генерираш повеќе одговори на ChatGPT // @description:ml ⚡ ChatGPT പ്രതികരണങ്ങൾക്ക് സ്വയംഭാവതന്നെ തുടങ്ങുക // @description:mn ⚡ ChatGPT хариултуудыг автоматаар үүсгэнэ үү // @description:ms ⚡ Terus menghasilkan beberapa respons ChatGPT secara automatik // @description:mt ⚡ Kompluta b'mod awtomatiku jipproduċi iktar risposti tal-ChatGPT // @description:my ⚡ ချောတောင်းကိုလည်း ChatGPT အတွက် အလိုအလျောက် ထပ်တိုးထားသည်ကိုနှိပ်ပါ // @description:ne ⚡ क्याटजीपीटी प्रतिक्रियाहरूलाई स्वतः सार्नुहोस् // @description:nl ⚡ Ga automatisch door met het genereren van meerdere ChatGPT-reacties // @description:no ⚡ Fortsett automatisk med å generere flere ChatGPT-responser // @description:ny ⚡ Kwezalitsa mabuku achinsinsi amakono apamwamba a ChatGPT // @description:pa ⚡ ਆਪਣੇ ਆਪ ਕਈ ChatGPT ਜਵਾਬਾਂ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਦੇ ਨਾਲ ਜਾਰੀ ਰੱਖੋ // @description:pap ⚡ Kontinua generando automaticamente varios respondenan di ChatGPT // @description:pl ⚡ Kontynuuj automatyczne generowanie wielu odpowiedzi ChatGPT // @description:ps ⚡ په خپله خوښه خپور شه کړه چې د ChatGPT پاسخونه وویشتل // @description:pt ⚡ Continue gerando automaticamente várias respostas do ChatGPT // @description:pt-BR ⚡ Continue gerando automaticamente várias respostas do ChatGPT // @description:rn ⚡ Komeza automatik kugenera ibyanditswe byinshi bya ChatGPT // @description:ro ⚡ Continuați să generați automat mai multe răspunsuri ChatGPT // @description:ru ⚡ Продолжайте автоматически генерировать несколько ответов ChatGPT // @description:rw ⚡ Angana gusuzumira kongera amakuru adahindurwa ya ChatGPT // @description:sg ⚡ Kwâandâ mbele mbanzi mêlêba mêvâmba ya tâ ChatGPT // @description:si ⚡ ChatGPT හි බහුතරක් ස්වයංක්රීයව පවතී // @description:sk ⚡ Automaticky pokračujte v generovaní viacerých odpovedí ChatGPT // @description:sl ⚡ Samodejno nadaljujte z generiranjem več odgovorov ChatGPT // @description:sm ⚡ Alofa faauaogaina ona faaaogāina ni tali i le mafaufau ChatGPT // @description:sn ⚡ Enda kusvika pachigadzirwa chekugadzirisa vashandisi vairambidzwi vechi ChatGPT // @description:so ⚡ Sii wadnaansho badan oo ChatGPT ka heli // @description:sr ⚡ Настави аутоматски да генеришеш више ChatGPT одговора // @description:sv ⚡ Fortsätt att automatiskt generera flera ChatGPT-svar // @description:sw ⚡ Endelea kuzalisha majibu mengi ya ChatGPT kiotomatiki // @description:ta ⚡ தானியங்கி மீண்டும் பல விளக்கங்களை உருவாக்கத் தொடர்ந்துவிடுங்கள் ChatGPT // @description:te ⚡ ఆటోమేటిక్గా మరియు మరిన్ని ChatGPT సమాధానాలను రచించండి // @description:tg ⚡ Идомаи автоматӣ барои иҷод кардани чанд ҷавоби ChatGPT // @description:th ⚡ ดำเนินการสร้างคำตอบหลาย ๆ ของ ChatGPT อัตโนมัติ // @description:ti ⚡ ደቂቃዎት የሚጠፋ ኮድ ብቻ በኮስታኒክስ በሚገባ ጥሩ ጥያቄዎች ይሰጣል // @description:tk ⚡ Tölegiňizde ChatGPT-e hasapla otomatik toplum // @description:tn ⚡ Koisa ha maele a ChatGPT ho ngola ho tlaleletsa // @description:to ⚡ Tonu ki hono fakahoko ki he fakafofonga ha nonga ai he ChatGPT // @description:tpi ⚡ Kontinyu genaratim planti respons bilong ChatGPT bi autometik // @description:tr ⚡ Otomatik olarak çoklu ChatGPT yanıtları üretmeye devam edin // @description:uk ⚡ Продовжуйте автоматично генерувати багато відповідей ChatGPT // @description:ur ⚡ ChatGPT جو جوابات خودکار طور پر تیار کرنا جاری رکھیں // @description:uz ⚡ Ko'plab ChatGPT javoblarni avtomatik ravishda yaratishni davom ettirish // @description:vi ⚡ Tiếp tục tạo ra nhiều câu trả lời ChatGPT một cách tự động // @description:xh ⚡ Qhubeka ukuqhuba okuqukethweyo lwezibalo eziningi zikaChatGPT // @description:yi ⚡ פֿאָרטזעצן ווײַטער גענערירן מיינערע אַנטוואָרטן פֿון ChatGPT אַװטאָמאַטיש // @description:zh ⚡ 自动继续生成多个 ChatGPT 响应 // @description:zh-CN ⚡ 自动继续生成多个 ChatGPT 响应 // @description:zh-HK ⚡ 自動繼續生成多個 ChatGPT 響應 // @description:zh-SG ⚡ 自动继续生成多个 ChatGPT 响应 // @description:zh-TW ⚡ 自動繼續生成多個 ChatGPT 響應 // @description:zu ⚡ Terus menghasilkan imibuzo eminingi ye-ChatGPT ngokwesizulu // @author Adam Lui // @namespace https://github.com/adamlui // @version 2025.9.5.9 // @license MIT // @icon data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22180%22%20height=%22180%22%20fill=%22none%22%3E%3Cstyle%3E:root%7B--primary-fill:%23000;--secondary-fill:%23fff;%7D@media%20(prefers-color-scheme:dark)%7B:root%7B--primary-fill:%23fff;--secondary-fill:%23000;%7D%7D%3C/style%3E%3Cg%20clip-path=%22url(%23a)%22%3E%3Crect%20width=%22180%22%20height=%22180%22%20fill=%22var(--primary-fill)%22%20rx=%2290%22/%3E%3Cg%20clip-path=%22url(%23b)%22%3E%3Cpath%20fill=%22var(--secondary-fill)%22%20d=%22M75.91%2073.628V62.232c0-.96.36-1.68%201.199-2.16l22.912-13.194c3.119-1.8%206.838-2.639%2010.676-2.639%2014.394%200%2023.511%2011.157%2023.511%2023.032%200%20.839%200%201.799-.12%202.758l-23.752-13.914c-1.439-.84-2.879-.84-4.318%200L75.91%2073.627Zm53.499%2044.383v-27.23c0-1.68-.72-2.88-2.159-3.719L97.142%2069.55l9.836-5.638c.839-.48%201.559-.48%202.399%200l22.912%2013.195c6.598%203.839%2011.035%2011.995%2011.035%2019.912%200%209.116-5.397%2017.513-13.915%2020.992v.001Zm-60.577-23.99-9.836-5.758c-.84-.48-1.2-1.2-1.2-2.16v-26.39c0-12.834%209.837-22.55%2023.152-22.55%205.039%200%209.716%201.679%2013.676%204.678L70.993%2055.516c-1.44.84-2.16%202.039-2.16%203.719v34.787-.002Zm21.173%2012.234L75.91%2098.339V81.546l14.095-7.917%2014.094%207.917v16.793l-14.094%207.916Zm9.056%2036.467c-5.038%200-9.716-1.68-13.675-4.678l23.631-13.676c1.439-.839%202.159-2.038%202.159-3.718V85.863l9.956%205.757c.84.48%201.2%201.2%201.2%202.16v26.389c0%2012.835-9.957%2022.552-23.27%2022.552v.001Zm-28.43-26.75L47.72%20102.778c-6.599-3.84-11.036-11.996-11.036-19.913%200-9.236%205.518-17.513%2014.034-20.992v27.35c0%201.68.72%202.879%202.16%203.718l29.989%2017.393-9.837%205.638c-.84.48-1.56.48-2.399%200Zm-1.318%2019.673c-13.555%200-23.512-10.196-23.512-22.792%200-.959.12-1.919.24-2.879l23.63%2013.675c1.44.84%202.88.84%204.32%200l30.108-17.392v11.395c0%20.96-.361%201.68-1.2%202.16l-22.912%2013.194c-3.119%201.8-6.837%202.639-10.675%202.639Zm29.748%2014.274c14.515%200%2026.63-10.316%2029.39-23.991%2013.434-3.479%2022.071-16.074%2022.071-28.91%200-8.396-3.598-16.553-10.076-22.43.6-2.52.96-5.039.96-7.557%200-17.153-13.915-29.99-29.989-29.99-3.239%200-6.358.48-9.477%201.56-5.398-5.278-12.835-8.637-20.992-8.637-14.515%200-26.63%2010.316-29.39%2023.991-13.434%203.48-22.07%2016.074-22.07%2028.91%200%208.396%203.598%2016.553%2010.075%2022.431-.6%202.519-.96%205.038-.96%207.556%200%2017.154%2013.915%2029.989%2029.99%2029.989%203.238%200%206.357-.479%209.476-1.559%205.397%205.278%2012.835%208.637%2020.992%208.637Z%22/%3E%3C/g%3E%3C/g%3E%3Cdefs%3E%3CclipPath%20id=%22a%22%3E%3Cpath%20d=%22M0%200h180v180H0z%22/%3E%3C/clipPath%3E%3CclipPath%20id=%22b%22%3E%3Cpath%20d=%22M29.487%2029.964h121.035v119.954H29.487z%22/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E // @icon64 data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22180%22%20height=%22180%22%20fill=%22none%22%3E%3Cstyle%3E:root%7B--primary-fill:%23000;--secondary-fill:%23fff;%7D@media%20(prefers-color-scheme:dark)%7B:root%7B--primary-fill:%23fff;--secondary-fill:%23000;%7D%7D%3C/style%3E%3Cg%20clip-path=%22url(%23a)%22%3E%3Crect%20width=%22180%22%20height=%22180%22%20fill=%22var(--primary-fill)%22%20rx=%2290%22/%3E%3Cg%20clip-path=%22url(%23b)%22%3E%3Cpath%20fill=%22var(--secondary-fill)%22%20d=%22M75.91%2073.628V62.232c0-.96.36-1.68%201.199-2.16l22.912-13.194c3.119-1.8%206.838-2.639%2010.676-2.639%2014.394%200%2023.511%2011.157%2023.511%2023.032%200%20.839%200%201.799-.12%202.758l-23.752-13.914c-1.439-.84-2.879-.84-4.318%200L75.91%2073.627Zm53.499%2044.383v-27.23c0-1.68-.72-2.88-2.159-3.719L97.142%2069.55l9.836-5.638c.839-.48%201.559-.48%202.399%200l22.912%2013.195c6.598%203.839%2011.035%2011.995%2011.035%2019.912%200%209.116-5.397%2017.513-13.915%2020.992v.001Zm-60.577-23.99-9.836-5.758c-.84-.48-1.2-1.2-1.2-2.16v-26.39c0-12.834%209.837-22.55%2023.152-22.55%205.039%200%209.716%201.679%2013.676%204.678L70.993%2055.516c-1.44.84-2.16%202.039-2.16%203.719v34.787-.002Zm21.173%2012.234L75.91%2098.339V81.546l14.095-7.917%2014.094%207.917v16.793l-14.094%207.916Zm9.056%2036.467c-5.038%200-9.716-1.68-13.675-4.678l23.631-13.676c1.439-.839%202.159-2.038%202.159-3.718V85.863l9.956%205.757c.84.48%201.2%201.2%201.2%202.16v26.389c0%2012.835-9.957%2022.552-23.27%2022.552v.001Zm-28.43-26.75L47.72%20102.778c-6.599-3.84-11.036-11.996-11.036-19.913%200-9.236%205.518-17.513%2014.034-20.992v27.35c0%201.68.72%202.879%202.16%203.718l29.989%2017.393-9.837%205.638c-.84.48-1.56.48-2.399%200Zm-1.318%2019.673c-13.555%200-23.512-10.196-23.512-22.792%200-.959.12-1.919.24-2.879l23.63%2013.675c1.44.84%202.88.84%204.32%200l30.108-17.392v11.395c0%20.96-.361%201.68-1.2%202.16l-22.912%2013.194c-3.119%201.8-6.837%202.639-10.675%202.639Zm29.748%2014.274c14.515%200%2026.63-10.316%2029.39-23.991%2013.434-3.479%2022.071-16.074%2022.071-28.91%200-8.396-3.598-16.553-10.076-22.43.6-2.52.96-5.039.96-7.557%200-17.153-13.915-29.99-29.989-29.99-3.239%200-6.358.48-9.477%201.56-5.398-5.278-12.835-8.637-20.992-8.637-14.515%200-26.63%2010.316-29.39%2023.991-13.434%203.48-22.07%2016.074-22.07%2028.91%200%208.396%203.598%2016.553%2010.075%2022.431-.6%202.519-.96%205.038-.96%207.556%200%2017.154%2013.915%2029.989%2029.99%2029.989%203.238%200%206.357-.479%209.476-1.559%205.397%205.278%2012.835%208.637%2020.992%208.637Z%22/%3E%3C/g%3E%3C/g%3E%3Cdefs%3E%3CclipPath%20id=%22a%22%3E%3Cpath%20d=%22M0%200h180v180H0z%22/%3E%3C/clipPath%3E%3CclipPath%20id=%22b%22%3E%3Cpath%20d=%22M29.487%2029.964h121.035v119.954H29.487z%22/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E // @match *://chatgpt.com/* // @connect cdn.jsdelivr.net // @connect gm.chatgptautocontinue.com // @connect raw.githubusercontent.com // @require https://cdn.jsdelivr.net/npm/@kudoai/chatgpt.js@3.8.3/dist/chatgpt.min.js#sha256-jeA6TrwGYL3u5epUnl+2cbbGPhvFRocIMwQbQjNedZs= // @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@1e84c2e/assets/js/lib/dom.js/dist/dom.min.js#sha256-xovdxRnmYD/eCgBiGCu5+Vd3+WWIvLUKVtU/MnRueeU= // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@665e5ee/chromium/extension/components/modals.js#sha256-hKrSfQwFo/He0OQEOenmtajiJyHbpF6/jCUG8JPhxL4= // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@b18f2dc/chromium/extension/lib/browser.js#sha256-7teBecqrjkazKH6oetGyxKlBkAk5U9ota/LNCB3Q+Jw= // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@d191a28/chromium/extension/lib/feedback.js#sha256-+pCdFOvlfPkjBY2uk+6waX+K+NPkJ6teEBY2qSlUnuo= // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@502a0b1/chromium/extension/lib/settings.js#sha256-XNkLPq06HQ9TY1hNW0cfuuFbN5ySAv43DhNQ2xZ+DVw= // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@6d1aece/chromium/extension/lib/styles.js#sha256-eFylUQlwNiAAbGJlK0D6MSrDdTOFxQK/L3MJG7YUQG0= // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@2610c74/chromium/extension/lib/sync.js#sha256-rwWIOf90AmV7r1QGzbsidHf7Td37L6pdLt/4ElwBVNA= // @require https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@78d7214/chromium/extension/lib/ui.js#sha256-2yuQbliwz+uaCxUIEeTMWIH5JADHgjDBZD4/8I2T8rE= // @resource rpgCSS https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@727feff/assets/styles/rising-particles/dist/gray.min.css#sha256-48sEWzNUGUOP04ur52G5VOfGZPSnZQfrF3szUr4VaRs= // @resource rpwCSS https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@727feff/assets/styles/rising-particles/dist/white.min.css#sha256-6xBXczm7yM1MZ/v0o1KVFfJGehHk47KJjq8oTktH4KE= // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_getResourceText // @grant GM_xmlhttpRequest // @grant GM.xmlHttpRequest // @noframes // @downloadURL https://gm.chatgptautocontinue.com // @updateURL https://gm.chatgptautocontinue.com // @homepageURL https://chatgptautocontinue.com // @supportURL https://support.chatgptautocontinue.com // @contributionURL https://github.com/sponsors/adamlui // ==/UserScript== // Documentation: https://docs.chatgptautocontinue.com // NOTE: This script relies on the powerful chatgpt.js library @ https://chatgpt.js.org // © 2023–2025 KudoAI & contributors under the MIT license. (async () => { // Init DATA window.env = { browser: { language: chatgpt.getUserLanguage(), isFF: chatgpt.browser.isFirefox(), isMobile: chatgpt.browser.isMobile() }, scriptManager: { name: (() => { try { return GM_info.scriptHandler } catch (err) { return 'unknown' }})(), version: (() => { try { return GM_info.version } catch (err) { return 'unknown' }})() }, ui: { scheme: ui.getScheme() } } env.browser.isPortrait = env.browser.isMobile && ( innerWidth < innerHeight ) env.scriptManager.supportsTooltips = env.scriptManager.name == 'Tampermonkey' && parseInt(env.scriptManager.version.split('.')[0]) >= 5 window.xhr = typeof GM != 'undefined' && GM.xmlHttpRequest || GM_xmlhttpRequest window.app = { version: GM_info.script.version, chatgptjsVer: /chatgpt\.js@([\d.]+)/.exec(GM_info.scriptMetaStr)[1], commitHashes: { app: 'ee34e4a' } // for cached .json } app.urls = { resourceHost: `https://cdn.jsdelivr.net/gh/adamlui/chatgpt-auto-continue@${app.commitHashes.app}` } const remoteData = { app: await new Promise(resolve => xhr({ method: 'GET', url: `${app.urls.resourceHost}/assets/data/app.json`, onload: ({ responseText }) => resolve(JSON.parse(responseText)) })), msgs: await new Promise(resolve => { const msgHostDir = `${app.urls.resourceHost}/chromium/extension/_locales/`, msgLocaleDir = `${ env.browser.language ? env.browser.language.replace('-', '_') : 'en' }/` let msgHref = `${ msgHostDir + msgLocaleDir }messages.json`, msgXHRtries = 0 function fetchMsgs() { xhr({ method: 'GET', url: msgHref, onload: handleMsgs })} function handleMsgs(resp) { try { // to return localized messages.json const msgs = JSON.parse(resp.responseText), flatMsgs = {} for (const key in msgs) // remove need to ref nested keys if (typeof msgs[key] == 'object' && 'message' in msgs[key]) flatMsgs[key] = msgs[key].message resolve(flatMsgs) } catch (err) { // if bad response msgXHRtries++ ; if (msgXHRtries == 3) return resolve({}) // try original/region-stripped/EN only msgHref = env.browser.language.includes('-') && msgXHRtries == 1 ? // if regional lang on 1st try... msgHref.replace(/(_locales\/[^_]+)_[^_]+(\/)/, '$1$2') // ...strip region before retrying : `${msgHostDir}en/messages.json` // else use default English messages fetchMsgs() } } fetchMsgs() }) } Object.assign(app, { ...remoteData.app, urls: { ...app.urls, ...remoteData.app.urls }, msgs: remoteData.msgs }) // Init SETTINGS settings.load(Object.keys(settings.controls)) // Define MENU functions window.toolbarMenu = { state: { symbols: ['❌', '✔️'], separator: env.scriptManager.name == 'Tampermonkey' ? ' — ' : ': ', words: [app.msgs.state_off.toUpperCase(), app.msgs.state_on.toUpperCase()] }, refresh() { if (typeof GM_unregisterMenuCommand == 'undefined') return this.entryIDs.forEach(id => GM_unregisterMenuCommand(id)) this.register() }, register() { // Show "Disabled (extension active)" this.entryIDs = env.extensionActive ? [ GM_registerMenuCommand(`${this.state.symbols[0]} ${ toTitleCase(app.msgs.state_disabled)} (${app.msgs.menuLabel_extensionActive})`, () => modals.open('about'), env.scriptManager.supportsTooltips ? { title: ' ' } : undefined ) ] // ...or add settings toggles : Object.keys(settings.controls).map(key => { const entryData = settings.controls[key] const menuLabel = `${ entryData.symbol || this.state.symbols[+settings.typeIsEnabled(key)] } ${entryData.label} ${ entryData.type == 'toggle' ? this.state.separator + this.state.words[+settings.typeIsEnabled(key)] : entryData.type == 'slider' ? ': ' + config[key] + entryData.labelSuffix || '' : entryData.status ? ` — ${entryData.status}` : '' }` return GM_registerMenuCommand(menuLabel, () => { settings.save(key, !config[key]) ; sync.configToUI({ updatedKey: key }) feedback.notify(`${entryData.label}: ${this.state.words[+settings.typeIsEnabled(key)]}`) }, env.scriptManager.supportsTooltips ? { title: entryData.helptip || ' ' } : undefined) }); // Add About entry this.entryIDs.push(GM_registerMenuCommand( `💡 ${app.msgs.menuLabel_about} ${app.msgs.appName}`, () => modals.open('about'), env.scriptManager.supportsTooltips ? { title: ' ' } : undefined )) } } window.updateCheck = () => xhr({ method: 'GET', url: `${app.urls.update.gm}?t=${Date.now()}`, headers: { 'Cache-Control': 'no-cache' }, onload: ({ responseText }) => { // Compare versions, alert if update found app.latestVer = /@version +(.*)/.exec(responseText)?.[1] if (app.latestVer) for (let i = 0 ; i < 4 ; i++) { // loop thru subver's const currentSubVer = parseInt(app.version.split('.')[i], 10) || 0, latestSubVer = parseInt(app.latestVer.split('.')[i], 10) || 0 if (currentSubVer > latestSubVer) break // out of comparison since not outdated else if (latestSubVer > currentSubVer) // if outdated return modals.open('update', 'available') } // Alert to no update found, nav back to About modals.open('update', 'unavailable') ; modals.open('about') }}) function toTitleCase(str) { if (!str) return '' const words = str.toLowerCase().split(' ') for (let i = 0 ; i < words.length ; i++) // for each word words[i] = words[i][0].toUpperCase() + words[i].slice(1) // title-case it return words.join(' ') // join'em back together } // Define UI functions window.checkBtnsToClick = () => { let continueBtnClicked = false // to increase delay before next check if true to avoid repeated clicks const btnTypesToCheck = ['Continue'] ; if (config.autoScroll) btnTypesToCheck.push('Scroll') const btns = {} ; btnTypesToCheck.forEach(type => btns[type] = chatgpt[`get${type}Btn`]()) Object.entries(btns).forEach(([btnType, btn]) => { if (!btn || btnType == 'Scroll' && ( !config.autoScroll || !chatgpt.isTyping() )) return btn.click() if (btnType == 'Continue') { continueBtnClicked = true feedback.notify(app.msgs.notif_chatAutoContinued, 'bottom-right') if (config.autoScroll) try { chatgpt.scrollToBottom() } catch(err) {} }}) setTimeout(checkBtnsToClick, continueBtnClicked ? 5000 : 500) } modals.update = { width: 377, available() { // Show modal const updateAvailModal = modals.alert(`🚀 ${app.msgs.alert_updateAvail}!`, // title `${app.msgs.alert_newerVer} ${app.msgs.appName} ` // msg + `(v${app.latestVer}) ${app.msgs.alert_isAvail}! ` + '${app.msgs.link_viewChanges}`, function update() { // button modals.safeWinOpen(`${app.urls.update.gm}?t=${Date.now()}`) }, '', modals.update.width ) // Localize button labels if needed if (!env.browser.language.startsWith('en')) { const updateBtns = updateAvailModal.querySelectorAll('button') updateBtns[1].textContent = app.msgs.btnLabel_update updateBtns[0].textContent = app.msgs.btnLabel_dismiss } return updateAvailModal }, unavailable() { return modals.alert(`${app.msgs.alert_upToDate}!`, // title `${app.msgs.appName} (v${app.version}) ${app.msgs.alert_isUpToDate}!`, // msg '', '', modals.update.width ) } } // Run MAIN routine // Init EXTENSION ACTIVE state postMessage({ action: 'getExtensionInfo', source: `${app.slug}.user.js` }, location.origin) addEventListener('message', handleMsgResp) function handleMsgResp(resp) { if (resp.origin != location.origin) return const sender = resp.data.source env.extensionActive = sender.includes(app.slug) && /extension/i.test(sender) } await new Promise(resolve => setTimeout(resolve, 100)) // wait for extension response removeEventListener('message', handleMsgResp) // Create browser TOOLBAR MENU + DISABLE SCRIPT if extension active toolbarMenu.register() ; if (env.extensionActive) return // Add RISING PARTICLES styles ['rpg', 'rpw'].forEach(cssType => document.head.append(dom.create.style(GM_getResourceText(`${cssType}CSS`)))) // Observe DOM for need to continue generating response checkBtnsToClick() // NOTIFY of status on load feedback.notify(`${app.msgs.mode_autoContinue}: ${app.msgs.state_on.toUpperCase()}`) // Monitor SCHEME PREF changes to update sidebar toggle + modal colors new MutationObserver(handleSchemePrefChange).observe( // for site scheme pref changes document.documentElement, { attributes: true, attributeFilter: ['class'] }) window.matchMedia('(prefers-color-scheme: dark)').addEventListener( // for browser/system scheme pref changes 'change', () => requestAnimationFrame(handleSchemePrefChange)) function handleSchemePrefChange() { const displayedScheme = ui.getScheme() if (env.ui.scheme != displayedScheme) { env.ui.scheme = displayedScheme ; modals.stylize() } } })()