npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

chatgpt-relay-server

v0.1.0

Published

Simple REST API server for proxying commands to ChatGPT

Downloads

2

Readme

chatgpt-relay-server

See the blog post for more information!

ChatGPT doesn't have an official API yet, so this is a simple REST API server that proxies messages to a ChatGPT session running in a Puppeteer-controlled browser instance (by way of the chatgpt package). For ease of experimentation, the REST API server is CORS-enabled, and will respond to requests from any origin, without authentication.

Use at your own risk! I'm not responsible if this gets your account banned!

Usage

Google Chrome must be installed on your system, as required by the chatgpt package.

chatgpt-relay-server accepts configuration via environment variables:

  • OPENAI_EMAIL: Email address to auto-populate into the login form. If not supplied via environment variable, will be prompted for interactively.
  • OPENAI_PASSWORD: Password to auto-populate into the login form. If not supplied via environment variable, will be prompted for interactively.
  • OPENAI_IS_GOOGLE_LOGIN: Whether this is a Google account or an OpenAI account. Accepts anything truthy (true, 1, ...) or falsey (false, 0, ...) when parsed as JSON. If not supplied via environment variable, will be prompted for interactively.
  • CHATGPT_RELAY_SERVER_HOST: Host for the REST API server to bind to. Default: 127.0.0.1
  • CHATGPT_RELAY_SERVER_PORT: Host for the REST API server to bind to. Default: 3000

You can also supply additional environment variables containing tokens for CAPTCHA-bypassing services, as described in the documentation for the chatgpt package.

When running the server on the command line, it will first prompt you interactively for any configuration without a default not supplied via environment variables, and will then start up a browser instance and attempt to log into ChatGPT. You may have to complete one or more CAPTCHAs. On successful login, the REST API server will launch and start serving requests.

API

POST /query

Request: A JSON object with the following fields:

  • prompt: The prompt to pass to ChatGPT.
  • conversationId: (optional) The ID of the conversation thread this message should be a part of, if continuing an existing conversation.
  • parentMessageId: (optional) The ID of the message this new message is in response to, if continuing an existing conversation. Can be used to fork off multiple conversation sub-threads.

Success Response: A JSON object with the following fields:

  • response: The text of the response from ChatGPT. Usually Markdown.
  • conversationId: The ID of the conversation containing the response message. Retain to continue the thread.
  • messageId: The ID of the response message. Retain to continue the thread.

Failure Response: A JSON object with the following fields:

  • error: The error message.

Development

pnpm is the recommended package manager. Available scripts:

  • pnpm run fmt:check - Check code style.
  • pnpm run fmt:write - Auto-format all code.
  • pnpm run server:start - Run the REST API server.

License

0BSD

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this work by you shall be licensed as above, without any additional terms or conditions.