diff --git a/.all-contributorsrc b/.all-contributorsrc
index d54f586..6ecedab 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -165,6 +165,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "antopoid",
+ "name": "antopoid",
+ "avatar_url": "https://avatars.githubusercontent.com/u/83502336?v=4",
+ "profile": "https://github.com/antopoid",
+ "contributions": [
+ "doc"
+ ]
}
],
"files": [
diff --git a/README.md b/README.md
index 5911416..5a35378 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ ChatGPT-web is a simple one-page web interface to the OpenAI ChatGPT API. To use
## Features
* **Open source**: ChatGPT-web is open source ([GPL-3.0](/LICENSE)), so you can host it yourself and make changes as you want.
* **Private**: All chats and messages are stored in your browser's local storage, so everything is private.
-* **Customizable**: You can customize the prompt, the temperature, and other model settings. Multiple models (including GTP-4) are supported.
+* **Customizable**: You can customize the prompt, the temperature, and other model settings. Multiple models (including GPT-4) are supported.
* **Cheaper**: ChatGPT-web uses the commercial OpenAI API, so it's much cheaper than a ChatGPT Plus subscription.
* **Fast**: ChatGPT-web is a single-page web app, so it's [fast and responsive](https://pagespeed.web.dev/analysis/https-niek-github-io-chatgpt-web/8xv5uwrnes).
* **Mobile-friendly**: ChatGPT-web is mobile-friendly, so you can use it on your phone.
@@ -83,6 +83,7 @@ You can also use ChatGPT-web as a desktop app. To do so, [install Rust first](ht
 Webifi 💻 🤔 |
 Daniel Dengler 💻 |
 Ashkan 💻 |
+  antopoid 📖 |
diff --git a/package-lock.json b/package-lock.json
index e93028b..91348e2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,26 +15,26 @@
"@microsoft/fetch-event-source": "^2.0.1",
"@rollup/plugin-dsv": "^3.0.2",
"@sveltejs/vite-plugin-svelte": "^2.4.1",
- "@tauri-apps/cli": "^1.2.3",
+ "@tauri-apps/cli": "^1.4.0",
"@tsconfig/svelte": "^4.0.1",
"@types/marked": "^5.0.0",
- "@types/node": "^20.3.0",
+ "@types/node": "^20.3.1",
"bulma": "^0.9.4",
"bulma-prefers-dark": "^0.1.0-beta.1",
"copy-to-clipboard": "^3.3.3",
- "dexie": "^4.0.1-alpha.20",
+ "dexie": "^4.0.1-alpha.22",
"eslint-config-standard-with-typescript": "^35.0.0",
"eslint-plugin-svelte3": "^4.0.0",
"flourite": "^1.2.3",
"gpt-tokenizer": "^2.0.0",
"postcss": "^8.4.24",
- "sass": "^1.63.3",
+ "sass": "^1.63.4",
"stacking-order": "^2.0.0",
"svelte": "^3.58.0",
"svelte-check": "^3.4.3",
"svelte-fa": "^3.0.3",
"svelte-highlight": "^7.2.1",
- "svelte-local-storage-store": "^0.4.0",
+ "svelte-local-storage-store": "^0.5.0",
"svelte-markdown": "^0.2.3",
"svelte-modals": "^1.2.1",
"svelte-spa-router": "^3.3.0",
@@ -708,9 +708,9 @@
}
},
"node_modules/@tauri-apps/cli": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.3.1.tgz",
- "integrity": "sha512-o4I0JujdITsVRm3/0spfJX7FcKYrYV1DXJqzlWIn6IY25/RltjU6qbC1TPgVww3RsRX63jyVUTcWpj5wwFl+EQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.4.0.tgz",
+ "integrity": "sha512-VXYr2i2iVFl98etQSQsqLzXgX96bnWiNZd1YADgatqwy/qecbd6Kl5ZAPB5R4ynsgE8A1gU7Fbzh7dCEQYFfmA==",
"dev": true,
"bin": {
"tauri": "tauri.js"
@@ -723,21 +723,22 @@
"url": "https://opencollective.com/tauri"
},
"optionalDependencies": {
- "@tauri-apps/cli-darwin-arm64": "1.3.1",
- "@tauri-apps/cli-darwin-x64": "1.3.1",
- "@tauri-apps/cli-linux-arm-gnueabihf": "1.3.1",
- "@tauri-apps/cli-linux-arm64-gnu": "1.3.1",
- "@tauri-apps/cli-linux-arm64-musl": "1.3.1",
- "@tauri-apps/cli-linux-x64-gnu": "1.3.1",
- "@tauri-apps/cli-linux-x64-musl": "1.3.1",
- "@tauri-apps/cli-win32-ia32-msvc": "1.3.1",
- "@tauri-apps/cli-win32-x64-msvc": "1.3.1"
+ "@tauri-apps/cli-darwin-arm64": "1.4.0",
+ "@tauri-apps/cli-darwin-x64": "1.4.0",
+ "@tauri-apps/cli-linux-arm-gnueabihf": "1.4.0",
+ "@tauri-apps/cli-linux-arm64-gnu": "1.4.0",
+ "@tauri-apps/cli-linux-arm64-musl": "1.4.0",
+ "@tauri-apps/cli-linux-x64-gnu": "1.4.0",
+ "@tauri-apps/cli-linux-x64-musl": "1.4.0",
+ "@tauri-apps/cli-win32-arm64-msvc": "1.4.0",
+ "@tauri-apps/cli-win32-ia32-msvc": "1.4.0",
+ "@tauri-apps/cli-win32-x64-msvc": "1.4.0"
}
},
"node_modules/@tauri-apps/cli-darwin-arm64": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.3.1.tgz",
- "integrity": "sha512-QlepYVPgOgspcwA/u4kGG4ZUijlXfdRtno00zEy+LxinN/IRXtk+6ErVtsmoLi1ZC9WbuMwzAcsRvqsD+RtNAg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.4.0.tgz",
+ "integrity": "sha512-nA/ml0SfUt6/CYLVbHmT500Y+ijqsuv5+s9EBnVXYSLVg9kbPUZJJHluEYK+xKuOj6xzyuT/+rZFMRapmJD3jQ==",
"cpu": [
"arm64"
],
@@ -751,9 +752,9 @@
}
},
"node_modules/@tauri-apps/cli-darwin-x64": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.3.1.tgz",
- "integrity": "sha512-fKcAUPVFO3jfDKXCSDGY0MhZFF/wDtx3rgFnogWYu4knk38o9RaqRkvMvqJhLYPuWaEM5h6/z1dRrr9KKCbrVg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.4.0.tgz",
+ "integrity": "sha512-ov/F6Zr+dg9B0PtRu65stFo2G0ow2TUlneqYYrkj+vA3n+moWDHfVty0raDjMLQbQt3rv3uayFMXGPMgble9OA==",
"cpu": [
"x64"
],
@@ -767,9 +768,9 @@
}
},
"node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.3.1.tgz",
- "integrity": "sha512-+4H0dv8ltJHYu/Ma1h9ixUPUWka9EjaYa8nJfiMsdCI4LJLNE6cPveE7RmhZ59v9GW1XB108/k083JUC/OtGvA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.4.0.tgz",
+ "integrity": "sha512-zwjbiMncycXDV7doovymyKD7sCg53ouAmfgpUqEBOTY3vgBi9TwijyPhJOqoG5vUVWhouNBC08akGmE4dja15g==",
"cpu": [
"arm"
],
@@ -783,9 +784,9 @@
}
},
"node_modules/@tauri-apps/cli-linux-arm64-gnu": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.3.1.tgz",
- "integrity": "sha512-Pj3odVO1JAxLjYmoXKxcrpj/tPxcA8UP8N06finhNtBtBaxAjrjjxKjO4968KB0BUH7AASIss9EL4Tr0FGnDuw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.4.0.tgz",
+ "integrity": "sha512-5MCBcziqXC72mMXnkZU68mutXIR6zavDxopArE2gQtK841IlE06bIgtLi0kUUhlFJk2nhPRgiDgdLbrPlyt7fw==",
"cpu": [
"arm64"
],
@@ -799,9 +800,9 @@
}
},
"node_modules/@tauri-apps/cli-linux-arm64-musl": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.3.1.tgz",
- "integrity": "sha512-tA0JdDLPFaj42UDIVcF2t8V0tSha40rppcmAR/MfQpTCxih6399iMjwihz9kZE1n4b5O4KTq9GliYo50a8zYlQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.4.0.tgz",
+ "integrity": "sha512-7J3pRB6n6uNYgIfCeKt2Oz8J7oSaz2s8GGFRRH2HPxuTHrBNCinzVYm68UhVpJrL3bnGkU0ziVZLsW/iaOGfUg==",
"cpu": [
"arm64"
],
@@ -815,9 +816,9 @@
}
},
"node_modules/@tauri-apps/cli-linux-x64-gnu": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.3.1.tgz",
- "integrity": "sha512-FDU+Mnvk6NLkqQimcNojdKpMN4Y3W51+SQl+NqG9AFCWprCcSg62yRb84751ujZuf2MGT8HQOfmd0i77F4Q3tQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.4.0.tgz",
+ "integrity": "sha512-Zh5gfAJxOv5AVWxcwuueaQ2vIAhlg0d6nZui6nMyfIJ8dbf3aZQ5ZzP38sYow5h/fbvgL+3GSQxZRBIa3c2E1w==",
"cpu": [
"x64"
],
@@ -831,9 +832,9 @@
}
},
"node_modules/@tauri-apps/cli-linux-x64-musl": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.3.1.tgz",
- "integrity": "sha512-MpO3akXFmK8lZYEbyQRDfhdxz1JkTBhonVuz5rRqxwA7gnGWHa1aF1+/2zsy7ahjB2tQ9x8DDFDMdVE20o9HrA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.4.0.tgz",
+ "integrity": "sha512-OLAYoICU3FaYiTdBsI+lQTKnDHeMmFMXIApN0M+xGiOkoIOQcV9CConMPjgmJQ867+NHRNgUGlvBEAh9CiJodQ==",
"cpu": [
"x64"
],
@@ -846,10 +847,26 @@
"node": ">= 10"
}
},
+ "node_modules/@tauri-apps/cli-win32-arm64-msvc": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.4.0.tgz",
+ "integrity": "sha512-gZ05GENFbI6CB5MlOUsLlU0kZ9UtHn9riYtSXKT6MYs8HSPRffPHaHSL0WxsJweWh9nR5Hgh/TUU8uW3sYCzCg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/@tauri-apps/cli-win32-ia32-msvc": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.3.1.tgz",
- "integrity": "sha512-9Boeo3K5sOrSBAZBuYyGkpV2RfnGQz3ZhGJt4hE6P+HxRd62lS6+qDKAiw1GmkZ0l1drc2INWrNeT50gwOKwIQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.4.0.tgz",
+ "integrity": "sha512-JsetT/lTx/Zq98eo8T5CiRyF1nKeX04RO8JlJrI3ZOYsZpp/A5RJvMd/szQ17iOzwiHdge+tx7k2jHysR6oBlQ==",
"cpu": [
"ia32"
],
@@ -863,9 +880,9 @@
}
},
"node_modules/@tauri-apps/cli-win32-x64-msvc": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.3.1.tgz",
- "integrity": "sha512-wMrTo91hUu5CdpbElrOmcZEoJR4aooTG+fbtcc87SMyPGQy1Ux62b+ZdwLvL1sVTxnIm//7v6QLRIWGiUjCPwA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.4.0.tgz",
+ "integrity": "sha512-z8Olcnwp5aYhzqUAarFjqF+oELCjuYWnB2HAJHlfsYNfDCAORY5kct3Fklz8PSsubC3U2EugWn8n42DwnThurg==",
"cpu": [
"x64"
],
@@ -917,9 +934,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.3.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz",
- "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==",
+ "version": "20.3.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz",
+ "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==",
"dev": true
},
"node_modules/@types/pug": {
@@ -1603,9 +1620,9 @@
}
},
"node_modules/dexie": {
- "version": "4.0.1-alpha.20",
- "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.0.1-alpha.20.tgz",
- "integrity": "sha512-q/nMsCQiTWTmnw11aseJLfAsGQ/9t05sjWltgw1/r2TbfnIkmfjdTt8ATSIwmtKXuSznEZ5czazvL5LO5rR+6w==",
+ "version": "4.0.1-alpha.22",
+ "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.0.1-alpha.22.tgz",
+ "integrity": "sha512-fCAlox70CSS4uSBxnP9PBisK1wx/hQBTZMEQM9VKnOcTFu9SfVVlNu2xZ7rLWSQDIJ4sZjzPhCDGQ2kQW3Lq3A==",
"dev": true
},
"node_modules/dir-glob": {
@@ -3882,9 +3899,9 @@
}
},
"node_modules/sass": {
- "version": "1.63.3",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.3.tgz",
- "integrity": "sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==",
+ "version": "1.63.4",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.4.tgz",
+ "integrity": "sha512-Sx/+weUmK+oiIlI+9sdD0wZHsqpbgQg8wSwSnGBjwb5GwqFhYNwwnI+UWZtLjKvKyFlKkatRK235qQ3mokyPoQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
@@ -4171,15 +4188,15 @@
}
},
"node_modules/svelte-local-storage-store": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/svelte-local-storage-store/-/svelte-local-storage-store-0.4.0.tgz",
- "integrity": "sha512-ctPykTt4S3BE5bF0mfV0jKiUR1qlmqLvnAkQvYHLeb9wRyO1MdIFDVI23X+TZEFleATHkTaOpYZswIvf3b2tWA==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/svelte-local-storage-store/-/svelte-local-storage-store-0.5.0.tgz",
+ "integrity": "sha512-SEDrpapeia6fUqta+r1NvSLlJYPkZ4pBcl15EYIOSPNzy6vhpoXu8cnzUDmZxsWl7fZGAHxrVH9UyZCbyO4W+g==",
"dev": true,
"engines": {
"node": ">=0.14"
},
"peerDependencies": {
- "svelte": "^3.48.0"
+ "svelte": "^3.48.0 || ^4.0.0"
}
},
"node_modules/svelte-markdown": {
diff --git a/package.json b/package.json
index 2eba101..58719ca 100644
--- a/package.json
+++ b/package.json
@@ -21,26 +21,26 @@
"@microsoft/fetch-event-source": "^2.0.1",
"@rollup/plugin-dsv": "^3.0.2",
"@sveltejs/vite-plugin-svelte": "^2.4.1",
- "@tauri-apps/cli": "^1.2.3",
+ "@tauri-apps/cli": "^1.4.0",
"@tsconfig/svelte": "^4.0.1",
"@types/marked": "^5.0.0",
- "@types/node": "^20.3.0",
+ "@types/node": "^20.3.1",
"bulma": "^0.9.4",
"bulma-prefers-dark": "^0.1.0-beta.1",
"copy-to-clipboard": "^3.3.3",
- "dexie": "^4.0.1-alpha.20",
+ "dexie": "^4.0.1-alpha.22",
"eslint-config-standard-with-typescript": "^35.0.0",
"eslint-plugin-svelte3": "^4.0.0",
"flourite": "^1.2.3",
"gpt-tokenizer": "^2.0.0",
"postcss": "^8.4.24",
- "sass": "^1.63.3",
+ "sass": "^1.63.4",
"stacking-order": "^2.0.0",
"svelte": "^3.58.0",
"svelte-check": "^3.4.3",
"svelte-fa": "^3.0.3",
"svelte-highlight": "^7.2.1",
- "svelte-local-storage-store": "^0.4.0",
+ "svelte-local-storage-store": "^0.5.0",
"svelte-markdown": "^0.2.3",
"svelte-modals": "^1.2.1",
"svelte-spa-router": "^3.3.0",