/chatgpt.js

🤖 A powerful client-side JavaScript library for ChatGPT

Primary LanguageJavaScriptMIT LicenseMIT

English | 简体中文



🤖 A powerful client-side JavaScript library for ChatGPT

About

chatgpt.js is a powerful JavaScript library that allows for super easy interaction w/ the ChatGPT DOM.

  • Feature-rich
  • Object-oriented
  • Easy-to-use
  • Lightweight (yet optimally performant)

Importing the library

ES6:

(async () => {
    await import('https://code.chatgptjs.org/chatgpt-latest.min.js');    
    // Your code here...
})();

ES5:

var xhr = new XMLHttpRequest()
xhr.open('GET', 'https://code.chatgptjs.org/chatgpt-latest.min.js')
xhr.onload = function() {
    if (xhr.status === 200) {
        var chatgptJS = document.createElement('script')
        chatgptJS.textContent = xhr.responseText
        document.head.appendChild(chatgptJS)
        yourCode() // runs your code
    }
}
xhr.send()

function yourCode() {
    // Your code here...
}

Greasemonkey:

Userscript repositories like Greasy Fork maintain a whitelist of pre-approved CDNs (such as commit-specific references from cdn.jsdelivr.net) so the import URL is substantially lengthier to preserve publishability to these sites:

...
// @require https://cdn.jsdelivr.net/gh/kudoai/chatgpt.js@8483b553675c3444db5c6b40a8686531c11b2a35/dist/chatgpt-1.11.0.min.js
// ==/UserScript==

// Your code here...

If you don't plan on publishing to these repos, the simpler https://code.chatgptjs.org/chatgpt-latest.min.js can be used instead to import the latest minified release.

Chrome:

Since Google will eventually phase out Manifest V2, remote code will no longer be allowed, so importing chatgpt.js locally is ideal:

  1. Save https://raw.githubusercontent.com/kudoai/chatgpt.js/main/chatgpt.js to a subdirectory (lib in this example)

  2. Add ES6 export statement to end of lib/chatgpt.js

...
export { chatgpt }
  1. In project's (V3) manifest.json, add lib/chatgpt.js as a web accessible resource
    "web_accessible_resources": [{
        "matches": ["<all_urls>"],
        "resources": ["lib/chatgpt.js"]
    }],
  1. In scripts that need chatgpt.js (foreground/background alike), import it like so:
(async () => {
    const { chatgpt } = await import(chrome.runtime.getURL('lib/chatgpt.js'));
    // Your code here...
})();

Usage

chatgpt.js was written w/ ultra flexibility in mind.

For example:

chatgpt.getLastResponse()
chatgpt.getLastReply()
chatgpt.response.getLast()
chatgpt.get('reply', 'last')

Each call equally fetches the last response. If you think it works, it probabily will... so just type it! (Who has time for docs?)

If it didn't, simply submit an issue or PR and it will be integrated, ezpz!

Made with chatgpt.js

Auto-clear your ChatGPT query history for maximum privacy.
Install / Readme / Discuss

Automatically send DAN prompts to ChatGPT.
Install / Readme / Discuss

Display ChatGPT answers in Brave Search sidebar (powered by GPT-4!)
Install / Readme / Discuss

Automatically continue generating multiple ChatGPT responses.
Install / Readme / Discuss

Keeps ChatGPT sessions fresh to eliminate network errors + Cloudflare checks.
Install / Readme / Discuss

Display ChatGPT answers in DuckDuckGo sidebar (powered by GPT-4!)
Install / Readme / Discuss




If you've made something w/ chatgpt.js you want to share, email showcase@chatgptjs.org or just open a pull request!

Contributors

This library exists thanks to code, translations, issues & ideas from the following contributors:


Releases / Discuss / Back to top ↑