LegacyAI is a ChatGPT client designed for Macintosh System 7 - 10.11 El Capitan. LegacyAI allows you to converse with OpenAI's ChatGPT from your Mac OS Desktop.
Key commands:
Command + N: New chat/clear the chat window
Command + O: Load a saved conversation
Command + S: Save your current conversation
Command + U: Check for updates
Commanad + P: Open the Preferences window
Command + M: Open the Conversations window
Other:
Click the "Manticore Software" text at the bottom the the application window to access a secret settings window!! This is intended for early feature testing in future versions.
There are several more Easter eggs hidden within the application!
Due to compilation limitations, loading previous conversations in the 68k app build won't split the conversation history into individual messages. Instead, the full history is loaded as one message. This means that once the defined token limit is exceed the original loaded conversation will be removed/"forgotten" from the chat history since it's read as a single message, but all additional messages will be retained until the token limit is reached again. This issue does not affect PPC+ builds.
LegacyAI Classic and Universal Binary (OSX) builds now transfer and receive all message prompts over HTTPS. The Classic build uses TLS 1.0 (the latest version possible), while the Universal Binary supports TLS 1.2. The message transfer process is detailed below:

LegacyAI can work with any AI service as long as you configure your proxy server to work within these constraints.
To configure LegacyAI to work with your proxy server, you need to open the Settings window. Then open the Proxy tab to see the configurable proxy server values.
Within this field, you need to enter the endpoint for receiving chat POSTs. LegacyAI will perform POST requests to this URL, where your server functions will then forward these to whichever AI service you plan to use. You then need to handle returning the response to LegacyAI.
Example endpoint: "http://myproxy.com/chat/"
Content payload sent by LegacyAI:
{
"prompt": "ChatPrompt",
"max_tokens": MaxTokens,
"stop": [
"User: ",
"AI:"
]
}Headers sent with the POST request:
AI-Model: The AI model requested by LegacyAI - see below
App-Version: App metrics
App-Client: App metrics
API-Key: Available If you want to provide your AI service API key via the client
URL-Encoded: Indicates whether 68k response formatting is necessary
Tokens: Max token number for the AI service to return
Temperature: AI temperature tuning setting
LegacyAI does not send POST requests in the format that OpenAI expects by default. This is where the proxy server steps in and builds the request from what LegacyAI has sent it. To send a request with the form that OpenAI expects, see the Force OpenAI based POST requests below.
If you want to enable HTTPS encryption with your proxy server you need to create an endpoint for HTTPS verification.
Example endpoint: "https://myproxy.com/https/"
LegacyAI will perform a GET request to your HTTPS endpoint, and expects a "true"/"false" response from your server telling it whether the request was made over HTTPS. You will need to implement the logic for this on your server.
Important Note: LegacyAI will only work via HTTPS if your server accepts TLS 1.0 for Mac OS 9 and under, and TLS 1.2 for OSX.
Enter your server's DALL-E endpoint into this field. This is what LegacyAI will call when making image generation requests. Generation limits are removed if you're using your own server/API key.
Optionally suppy your API key to be sent with the request. This will be sent in the Authorization header when Force OpenAI based POST request is enabled.
LegacyAI is hardcoded with AI models provided by OpenAI. If you use another service you can specify the requested AI model in this input. This will be sent in the headers when making a POST request.
If you're running an AI service that is compatible with POST requests formatted for OpenAI, enabling this option will override LegacyAI's default request structure, and POST requests in the form that OpenAI would expect.
Example:
Headers:
Authorization: Bearer API_KEY
Content-Type: application/jsonJSON Body:
{
"model": "gpt-3.5-turbo",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "What's the weather like today?" }
],
"temperature": 0.7,
"top_p": 1,
"n": 1,
"stream": false,
"stop": null
}