Node.js client for the unofficial ChatGPT API.
 
 
 
Go to file
Travis Fischer c361da937f docs: improve readme for new version 2022-12-05 01:32:30 -06:00
.github feat: init 2022-12-02 17:43:59 -06:00
.husky feat: init 2022-12-02 17:43:59 -06:00
docs feat: convert from browser to REST API 2022-12-05 01:32:27 -06:00
media docs: improve readme for new version 2022-12-05 01:32:30 -06:00
src docs: improve readme for new version 2022-12-05 01:32:30 -06:00
.env.example feat: convert from browser to REST API 2022-12-05 01:32:27 -06:00
.gitignore feat: init 2022-12-02 17:43:59 -06:00
.npmrc feat: init 2022-12-02 17:43:59 -06:00
.prettierignore feat: init 2022-12-02 17:43:59 -06:00
.prettierrc.cjs feat: init 2022-12-02 17:43:59 -06:00
license feat: init 2022-12-02 17:43:59 -06:00
package.json feat: convert from browser to REST API 2022-12-05 01:32:27 -06:00
pnpm-lock.yaml feat: convert from browser to REST API 2022-12-05 01:32:27 -06:00
readme.md docs: improve readme for new version 2022-12-05 01:32:30 -06:00
tsconfig.json feat: init 2022-12-02 17:43:59 -06:00
tsup.config.ts build: add cjs export 2022-12-05 12:23:08 +08:00
typedoc.json feat: init 2022-12-02 17:43:59 -06:00

readme.md

ChatGPT API

Node.js client for the unofficial ChatGPT API.

NPM Build Status MIT License Prettier Code Formatting

Intro

This package is a Node.js wrapper around ChatGPT by OpenAI. TS batteries included.

You can use it to start building projects powered by ChatGPT like chatbots, websites, etc...

How it works

This package requires a valid session token from ChatGPT to access it's unofficial REST API.

To get a session token:

  1. Go to https://chat.openai.com/chat and log in or sign up.
  2. Open dev tools.
  3. Open Application > Cookies. ChatGPT cookies
  4. Copy the value for __Secure-next-auth.session-token and save it to your environment.

If you want to run the built-in demo, store this value as SESSION_TOKEN in a local .env file.

Note This package will switch to using the official API once it's released.

Note Prior to v1.0.0, this package used a headless browser via Playwright to automate the web UI. Here are the docs for the initial browser version.

Install

npm install --save chatgpt
# or
yarn add chatgpt
# or
pnpm add chatgpt

Usage

import { ChatGPTAPI } from 'chatgpt'

async function example() {
  const api = new ChatGPTAPI({ sessionToken: process.env.SESSION_TOKEN })

  // ensure the API is properly authenticated (optional)
  await api.ensureAuth()

  // send a message and wait for the response
  const response = await api.sendMessage(
    'Write a python version of bubble sort. Do not include example usage.'
  )

  // response is a markdown-formatted string
  console.log(response)
}

By default, the response will be formatted as markdown. If you want to work with plaintext only, you can use:

const api = new ChatGPTAPI({
  sessionToken: process.env.SESSION_TOKEN,
  markdown: false
})

A full example is included for testing purposes:

# 1. clone repo
# 2. install node deps
# 3. set `SESSION_TOKEN` in .env
# 4. run:
npx tsx src/example.ts

Docs

See the auto-generated docs for more info on methods and parameters.

Examples

All of these awesome projects use the chatgpt package. 🤯

If you create a cool integration, feel free to open a PR and add it to the list.

Credit

License

MIT © Travis Fischer

Support my open source work by following me on twitter twitter