release v0.4.0
122
README.md
@ -9,35 +9,123 @@
|
|||||||
|
|
||||||
## Feature
|
## Feature
|
||||||
|
|
||||||
- Support for loading any URL and system tray
|
Introducing Noi: an AI-enhanced, customizable browser designed to streamline your digital experience:
|
||||||
- Theme Mode (Light/Dark)
|
|
||||||
- Multiple Languages
|
- **Browser**: Noi not only includes curated AI websites but also allows the addition of any URL, providing a tailored browsing experience ([Noi Configs](./configs)).
|
||||||
- Prompt Management
|
- **Prompts Management**: Offers robust customization options including the addition, synchronization, batch tagging, and removal of prompts.
|
||||||
- AI Batch Questioning
|
- **Noi Ask**: Enables sending batch messages to multiple AI chats, streamlining the process of interacting with various AI services simultaneously ([Noi Extensions](./extensions)). Entries made via Noi Ask are stored locally, ensuring easy access for future review or bookmarking.
|
||||||
- ...
|
- **Themes**: `Light`/`Dark`/`System`/`Monochromatic`/`Frosted Texture`
|
||||||
|
- **Noi Cache Mode**: Noi reimagines interaction without the traditional concept of browser tabs. In this mode, links accessed via the sidebar are cached for quick swapping (accessible via `Menu -> Settings -> Noi Cache Mode`).
|
||||||
|
- **Cookie Data Isolation**: Supports the use of multiple accounts on the same website, catering to diverse user requirements.
|
||||||
|
- **Discover More**: There are numerous details waiting for your discovery...
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
[🕒 History versions...](https://github.com/lencx/Noi/releases)
|
[🕒 History versions...](https://github.com/lencx/Noi/releases)
|
||||||
|
|
||||||
- **macOS**
|
- **macOS**
|
||||||
- [⬇️ x64](https://github.com/lencx/Noi/releases/download/v0.3.0/Noi_macos_0.3.0.dmg)
|
- [⬇️ x64](https://github.com/lencx/Noi/releases/download/v0.4.0/Noi_macos_0.4.0.dmg)
|
||||||
- [⬇️ arm64](https://github.com/lencx/Noi/releases/download/v0.3.0/Noi_macos_0.3.0-arm64.dmg)
|
- [⬇️ arm64](https://github.com/lencx/Noi/releases/download/v0.4.0/Noi_macos_0.4.0-arm64.dmg)
|
||||||
- **Windows**
|
- **Windows**
|
||||||
- [⬇️ x64](https://github.com/lencx/Noi/releases/download/v0.3.0/Noi-win32-x64-0.3.0-setup.exe)
|
- [⬇️ x64](https://github.com/lencx/Noi/releases/download/v0.4.0/Noi-win32-x64-0.4.0-setup.exe)
|
||||||
- **Linux**
|
- **Linux**
|
||||||
- [⬇️ AppImage](https://github.com/lencx/Noi/releases/download/v0.3.0/Noi_linux_0.3.0.AppImage)
|
- [⬇️ AppImage](https://github.com/lencx/Noi/releases/download/v0.4.0/Noi_linux_0.4.0.AppImage)
|
||||||
- [⬇️ amd64.deb](https://github.com/lencx/Noi/releases/download/v0.3.0/noi_linux_amd64_0.3.0.deb)
|
- [⬇️ amd64.deb](https://github.com/lencx/Noi/releases/download/v0.4.0/noi_linux_amd64_0.4.0.deb)
|
||||||
|
|
||||||
|Preview|Preview|
|
|Preview|Preview|
|
||||||
|---|---|
|
|---|---|
|
||||||
|![theme-dark](./website/static/readme/noi-theme-dark.jpg)|![noi-settings](./website/static/readme/noi-settings.jpg)|
|
|![theme-dark-1](./website/static/readme/noi-theme-dark-1.png)|![theme-dark-2](./website/static/readme/noi-theme-dark-2.png)|
|
||||||
|![settings-prompts](./website/static/readme/noi-prompt.jpg)|![batch-ask](./website/static/readme/noi-prompt-use.jpg)|
|
|![theme-light-1](./website/static/readme/noi-theme-light-1.png)|![theme-light-2](./website/static/readme/noi-theme-light-2.png)|
|
||||||
|
|![noi-settings](./website/static/readme/noi-settings.png)|![noi-prompts](./website/static/readme/noi-prompts.png)|
|
||||||
|
|
||||||
---
|
## Noi Configs
|
||||||
|
|
||||||
|
[📁 configs](./configs)
|
||||||
|
|
||||||
|
### Noi Mode
|
||||||
|
|
||||||
|
To set up a custom sync link, follow the steps below:
|
||||||
|
|
||||||
|
- **Step 1**: Open the settings (on macOS: `cmd`+`,`, on Windows: `ctrl`+`,`)
|
||||||
|
- **Step 2**: Edit the URL in `Mode Sync`
|
||||||
|
- **Step 3** or **Step 4**: Click the `sync` button to start synchronizing data
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> The `custom url` will not be overwritten. If you wish to use your own URL as a data source, please refer to the data format in `noi.mode.json`.
|
||||||
|
|
||||||
|
![Mode Sync](./website/static/configs/noi-mode-sync.png)
|
||||||
|
|
||||||
|
#### Sync URL
|
||||||
|
|
||||||
|
- [AI](./noi.mode.json): Popular AI websites and communities (e.g., ChatGPT, Bard, Claude, Poe, etc.).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
https://raw.githubusercontent.com/lencx/Noi/main/configs/noi.mode.json
|
||||||
|
```
|
||||||
|
|
||||||
|
- [AI(内陆版)](./noi.mode.cn.json): 主流 AI 及国内 AI(如:通义千问、扣子、豆包、智谱清言、讯飞星火、文心一言等)。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
https://raw.githubusercontent.com/lencx/Noi/main/configs/noi.mode.cn.json
|
||||||
|
```
|
||||||
|
|
||||||
|
#### noi.mode.json
|
||||||
|
|
||||||
|
Here is a detailed description of some fields:
|
||||||
|
|
||||||
|
- `name`: Name (optional, has no significance)
|
||||||
|
- `version`: Version change
|
||||||
|
- `sync`: URL information (optional, has no significance)
|
||||||
|
- `modes[]`:
|
||||||
|
- `id`: A unique identifier (use a random string; do not use formats like `noi:xxx` or `noi@xxx` as these are reserved for internal use within Noi)
|
||||||
|
- `parent`: The parent folder this item belongs to (supports nesting)
|
||||||
|
- `text`: Name
|
||||||
|
- `url`: Link
|
||||||
|
- `dir`: Whether it is a folder, default is `false`
|
||||||
|
|
||||||
|
### Proxy
|
||||||
|
|
||||||
|
Learn more: [electronjs/docs](https://www.electronjs.org/docs/latest/api/session#sessetproxyconfig)
|
||||||
|
|
||||||
|
- `proxyRules`: Rules indicating which proxies to use.
|
||||||
|
- `proxyBypassRules`: Rules indicating which URLs should bypass the proxy settings.
|
||||||
|
|
||||||
|
## Noi Extensions
|
||||||
|
|
||||||
|
[📁 extensions](./extensions)
|
||||||
|
|
||||||
|
Note that Noi does not support the full range of Chrome extensions APIs. See Supported Extensions APIs for more details on what is supported.
|
||||||
|
|
||||||
|
Learn more: [electronjs/doc](https://www.electronjs.org/docs/latest/api/extensions)
|
||||||
|
|
||||||
|
<!-- EXTENSIONS_START -->
|
||||||
|
| Name | Version | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [@noi/ask](https://github.com/lencx/Noi/tree/main/extensions/noi-ask) | 0.1.7 | The best assistant for batch asking and quick typing of prompts. |
|
||||||
|
| [@noi/ask-custom](https://github.com/lencx/Noi/tree/main/extensions/noi-ask-custom) | 0.1.0 | The best assistant for batch asking and quick typing of prompts. |
|
||||||
|
| [@noi/export-chatgpt](https://github.com/lencx/Noi/tree/main/extensions/noi-export-chatgpt) | 0.1.0 | ChatGPT chat history export, supports PDF, Image, and Markdown formats. |
|
||||||
|
| [@noi/reset](https://github.com/lencx/Noi/tree/main/extensions/noi-reset) | 0.1.0 | Reset certain website styles to enhance compatibility with Noi. |
|
||||||
|
<!-- EXTENSIONS_END -->
|
||||||
|
|
||||||
[![Star History Chart](https://api.star-history.com/svg?repos=lencx/Noi&type=Timeline)](https://star-history.com/#lencx/Noi&Timeline)
|
[![Star History Chart](https://api.star-history.com/svg?repos=lencx/Noi&type=Timeline)](https://star-history.com/#lencx/Noi&Timeline)
|
||||||
|
|
||||||
|
# Noi Languages
|
||||||
|
|
||||||
|
[📁 locales](./locales)
|
||||||
|
|
||||||
|
- `en`: English
|
||||||
|
- `zh`: 简体中文
|
||||||
|
- `zh_Hant`: 繁體中文
|
||||||
|
- `ja`: 日本語
|
||||||
|
- `ko`: 한국어
|
||||||
|
- `fr`: Français
|
||||||
|
- `es`: Español
|
||||||
|
- `pt`: Português
|
||||||
|
- `ru`: Русский
|
||||||
|
- `de`: Deutsch
|
||||||
|
- `it`: Italiano
|
||||||
|
- `tr`: Türkçe
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
@ -50,12 +138,6 @@ xattr -cr /Applications/Noi.app
|
|||||||
|
|
||||||
![mac-install-error](./website/static/readme/mac-install-error.jpg)
|
![mac-install-error](./website/static/readme/mac-install-error.jpg)
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
- Notes
|
|
||||||
- Toolset
|
|
||||||
- Plugin system
|
|
||||||
|
|
||||||
## 中国用户
|
## 中国用户
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
|
33
configs/noi.conf.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"language": "en",
|
||||||
|
"theme": "dark",
|
||||||
|
"stay_on_top": false,
|
||||||
|
"sidebar_fixed": true,
|
||||||
|
"tray": true,
|
||||||
|
"x_quit": true,
|
||||||
|
"theme_monochromatic": false,
|
||||||
|
"theme_frosted_texture": true,
|
||||||
|
"ask_prompt": false,
|
||||||
|
"ask_prompt_size": "middle",
|
||||||
|
"proxy_rules": "",
|
||||||
|
"proxy_bypass_rules": "",
|
||||||
|
"proxy_rules_enable": false,
|
||||||
|
"proxy_bypass_rules_enable": false,
|
||||||
|
"prompt_type": "prompt",
|
||||||
|
"prompt_favorite": false,
|
||||||
|
"prompt_log_max": 300,
|
||||||
|
"prompt_log_archive_max": 1000,
|
||||||
|
"prompt_favorite_max": 300,
|
||||||
|
"prompt_favorite_archive_max": 1000,
|
||||||
|
"view_prompt_edit": false,
|
||||||
|
"view_prompt_type": "prompt",
|
||||||
|
"view_prompt_favorite": false,
|
||||||
|
"noi_cache_mode": false,
|
||||||
|
"shortcut_prompt_send": "CmdOrCtrl+Enter",
|
||||||
|
"shortcut_prompt_up": "Up",
|
||||||
|
"shortcut_prompt_down": "Down",
|
||||||
|
"global_shortcut": "CmdOrCtrl+Shift+N",
|
||||||
|
"global_shortcut_tray": "CmdOrCtrl+Shift+M",
|
||||||
|
"global_shortcut_prompt": "CmdOrCtrl+Alt+P",
|
||||||
|
"mode_sync": "https://raw.githubusercontent.com/lencx/Noi/main/configs/noi.mode.json"
|
||||||
|
}
|
15
configs/user.mode.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "Noi User Mode",
|
||||||
|
"mode_main": "noi://about",
|
||||||
|
"mode_tray": "https://chat.openai.com",
|
||||||
|
"mode_partition": "",
|
||||||
|
"ua_main": "",
|
||||||
|
"ua_tray": "",
|
||||||
|
"noi_ask": [
|
||||||
|
"noi:chatgpt",
|
||||||
|
"noi:claude",
|
||||||
|
"noi:gemini",
|
||||||
|
"noi:poe"
|
||||||
|
],
|
||||||
|
"modes": []
|
||||||
|
}
|
@ -12,5 +12,5 @@ Learn more: [electronjs/doc](https://www.electronjs.org/docs/latest/api/extensio
|
|||||||
| [@noi/ask](https://github.com/lencx/Noi/tree/main/extensions/noi-ask) | 0.1.7 | The best assistant for batch asking and quick typing of prompts. |
|
| [@noi/ask](https://github.com/lencx/Noi/tree/main/extensions/noi-ask) | 0.1.7 | The best assistant for batch asking and quick typing of prompts. |
|
||||||
| [@noi/ask-custom](https://github.com/lencx/Noi/tree/main/extensions/noi-ask-custom) | 0.1.0 | The best assistant for batch asking and quick typing of prompts. |
|
| [@noi/ask-custom](https://github.com/lencx/Noi/tree/main/extensions/noi-ask-custom) | 0.1.0 | The best assistant for batch asking and quick typing of prompts. |
|
||||||
| [@noi/export-chatgpt](https://github.com/lencx/Noi/tree/main/extensions/noi-export-chatgpt) | 0.1.0 | ChatGPT chat history export, supports PDF, Image, and Markdown formats. |
|
| [@noi/export-chatgpt](https://github.com/lencx/Noi/tree/main/extensions/noi-export-chatgpt) | 0.1.0 | ChatGPT chat history export, supports PDF, Image, and Markdown formats. |
|
||||||
| [@noi/reset](https://github.com/lencx/Noi/tree/main/extensions/noi-reset) | 0.1.0 | Reset certain website styles to enhance compatibility with Noi. |
|
| [@noi/reset](https://github.com/lencx/Noi/tree/main/extensions/noi-reset) | 0.1.1 | Reset certain website styles to enhance compatibility with Noi. |
|
||||||
<!-- EXTENSIONS_END -->
|
<!-- EXTENSIONS_END -->
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "@noi/reset",
|
"name": "@noi/reset",
|
||||||
"version": "0.1.0",
|
"version": "0.1.1",
|
||||||
"homepage": "https://github.com/lencx/Noi/tree/main/extensions/noi-reset",
|
"homepage": "https://github.com/lencx/Noi/tree/main/extensions/noi-reset",
|
||||||
"description": "Reset certain website styles to enhance compatibility with Noi.",
|
"description": "Reset certain website styles to enhance compatibility with Noi.",
|
||||||
"content_scripts": [
|
"content_scripts": [
|
||||||
@ -9,7 +9,15 @@
|
|||||||
"matches": [
|
"matches": [
|
||||||
"https://vscode.dev/*"
|
"https://vscode.dev/*"
|
||||||
],
|
],
|
||||||
"js": ["main.js"],
|
"js": ["darg.js"],
|
||||||
|
"run_at": "document_end",
|
||||||
|
"world": "MAIN"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matches": [
|
||||||
|
"<all_urls>"
|
||||||
|
],
|
||||||
|
"js": ["scrollbar.js"],
|
||||||
"run_at": "document_end",
|
"run_at": "document_end",
|
||||||
"world": "MAIN"
|
"world": "MAIN"
|
||||||
}
|
}
|
||||||
|
25
extensions/noi-reset/scrollbar.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
if (navigator.platform.toUpperCase().indexOf('MAC') < 0) {
|
||||||
|
const style = document.createElement('style');
|
||||||
|
style.innerHTML = `
|
||||||
|
html {
|
||||||
|
--noi-scrollbarBG: rgba(250, 250, 250, 0.1);
|
||||||
|
--noi-thumbBG: #d8d8d8;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-corner {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background: var(--noi-scrollbarBG);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: var(--noi-thumbBG);
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
document.head.appendChild(style);
|
||||||
|
}
|
@ -29,7 +29,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@noi/reset",
|
"name": "@noi/reset",
|
||||||
"description": "Reset certain website styles to enhance compatibility with Noi.",
|
"description": "Reset certain website styles to enhance compatibility with Noi.",
|
||||||
"version": "0.1.0",
|
"version": "0.1.1",
|
||||||
"url": "https://github.com/lencx/Noi/tree/main/extensions/noi-reset",
|
"url": "https://github.com/lencx/Noi/tree/main/extensions/noi-reset",
|
||||||
"dirname": "noi-reset",
|
"dirname": "noi-reset",
|
||||||
"disabled": false
|
"disabled": false
|
||||||
|
@ -43,10 +43,12 @@ export default function Home(): JSX.Element {
|
|||||||
|
|
||||||
<h2 className="mt-5">Preview</h2>
|
<h2 className="mt-5">Preview</h2>
|
||||||
<div className="grid sm:grid-cols-1 lg:grid-cols-2 gap-4 max-w-[960px] m-auto">
|
<div className="grid sm:grid-cols-1 lg:grid-cols-2 gap-4 max-w-[960px] m-auto">
|
||||||
<img className="rounded-lg shadow-lg" src="/readme/noi-theme-dark.jpg" />
|
<img className="rounded-lg shadow-lg" src="/readme/noi-theme-dark-1.png" />
|
||||||
<img className="rounded-lg shadow-lg" src="/readme/noi-settings.jpg" />
|
<img className="rounded-lg shadow-lg" src="/readme/noi-theme-dark-2.png" />
|
||||||
<img className="rounded-lg shadow-lg" src="/readme/noi-prompt.jpg" />
|
<img className="rounded-lg shadow-lg" src="/readme/noi-theme-light-1.png" />
|
||||||
<img className="rounded-lg shadow-lg" src="/readme/noi-prompt-use.jpg" />
|
<img className="rounded-lg shadow-lg" src="/readme/noi-theme-light-2.png" />
|
||||||
|
<img className="rounded-lg shadow-lg" src="/readme/noi-settings.png" />
|
||||||
|
<img className="rounded-lg shadow-lg" src="/readme/noi-prompts.png" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2 className="mt-5">FAQ</h2>
|
<h2 className="mt-5">FAQ</h2>
|
||||||
|
Before Width: | Height: | Size: 162 KiB |
BIN
website/static/configs/noi-mode-sync.png
Normal file
After Width: | Height: | Size: 697 KiB |
Before Width: | Height: | Size: 251 KiB |
Before Width: | Height: | Size: 291 KiB |
BIN
website/static/readme/noi-prompts.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 172 KiB |
BIN
website/static/readme/noi-settings.png
Normal file
After Width: | Height: | Size: 427 KiB |
BIN
website/static/readme/noi-theme-dark-1.png
Normal file
After Width: | Height: | Size: 2.1 MiB |
BIN
website/static/readme/noi-theme-dark-2.png
Normal file
After Width: | Height: | Size: 817 KiB |
Before Width: | Height: | Size: 237 KiB |
BIN
website/static/readme/noi-theme-light-1.png
Normal file
After Width: | Height: | Size: 987 KiB |
BIN
website/static/readme/noi-theme-light-2.png
Normal file
After Width: | Height: | Size: 162 KiB |