Updated Extensions pages
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 171 KiB |
BIN
docs/src/pages/docs/_assets/extensions-02.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
docs/src/pages/docs/_assets/extensions-03.png
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
docs/src/pages/docs/_assets/extensions-04.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/src/pages/docs/_assets/extensions-05.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
docs/src/pages/docs/_assets/extensions-06.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
docs/src/pages/docs/_assets/extensions-07.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/src/pages/docs/_assets/extensions-08.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/src/pages/docs/_assets/extensions-09.png
Normal file
|
After Width: | Height: | Size: 195 KiB |
BIN
docs/src/pages/docs/_assets/extensions-10.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
@ -35,8 +35,8 @@
|
|||||||
},
|
},
|
||||||
"extensions": "Overview",
|
"extensions": "Overview",
|
||||||
"extensions-settings": "Extensions Settings",
|
"extensions-settings": "Extensions Settings",
|
||||||
"installing-extension": "Install Extension",
|
|
||||||
"configure-extensions": "Configure Extensions",
|
"configure-extensions": "Configure Extensions",
|
||||||
|
"installing-extension": "Install Extensions",
|
||||||
"troubleshooting-separator": {
|
"troubleshooting-separator": {
|
||||||
"title": "TROUBLESHOOTING",
|
"title": "TROUBLESHOOTING",
|
||||||
"type": "separator"
|
"type": "separator"
|
||||||
|
|||||||
@ -16,26 +16,30 @@ description: Learn about Jan's default extensions and explore how to configure t
|
|||||||
]
|
]
|
||||||
---
|
---
|
||||||
|
|
||||||
# Configure an Extension Settings
|
# Configure Extensions
|
||||||
|
Extensions in Jan are configured through a JSON file that defines their behavior and metadata. While most users won't need to modify this file directly, advanced users can customize extension settings for specific needs.
|
||||||
|
|
||||||
To configure an extension settings:
|
## Access extensions.json
|
||||||
|
|
||||||
1. Navigate to the `~/jan/data/extensions`.
|
1. Navigate to [Jan Data Folder](/docs/data-folder):
|
||||||
2. Open the `extensions.json` file
|
2. Open the `extensions.json` file in any text editor
|
||||||
3. Edit the file with options including:
|
|
||||||
|
|
||||||
| Option | Description |
|
## Configuration Options
|
||||||
| ---------------- | ----------------------------------- |
|
|
||||||
| `_active` | Enable/disable the extension. |
|
| Option | Description | Example |
|
||||||
| `listeners` | Default listener setting. |
|
|--------|-------------|---------|
|
||||||
| `origin` | Extension file path. |
|
| `_active` | Enable/disable the extension | `true` or `false` |
|
||||||
| `installOptions` | Version and metadata configuration. |
|
| `listeners` | Event listeners configuration | `{}` for default |
|
||||||
| `name` | Extension name. |
|
| `origin` | Installation path of the extension | `"C:\\Users\\...\\jan\\resources\\app.asar.unpacked\\..."` |
|
||||||
| `productName` | Extension display name. |
|
| `installOptions` | Installation configuration | `{"version": false, "fullMetadata": true}` |
|
||||||
| `version` | Extension version. |
|
| `name` | Internal extension identifier | `"@janhq/conversational-extension"` |
|
||||||
| `main` | Main file path. |
|
| `productName` | Display name shown in UI | `"Conversational"` |
|
||||||
| `description` | Extension description. |
|
| `version` | Extension version number | `"1.0.0"` |
|
||||||
| `url` | Extension URL. |
|
| `main` | Entry point file path | `"dist/index.js"` |
|
||||||
|
| `description` | Extension description | `"This extension enables conversations..."` |
|
||||||
|
| `url` | Extension repository URL | `"extension://@janhq/conversational-extension/dist/index.js"` |
|
||||||
|
|
||||||
|
## Full Example Configuration
|
||||||
|
|
||||||
```json title="~/jan/data/extensions/extensions.json"
|
```json title="~/jan/data/extensions/extensions.json"
|
||||||
{
|
{
|
||||||
@ -265,4 +269,33 @@ To configure an extension settings:
|
|||||||
"url": "extension://@janhq/inference-cortex-extension/dist/index.js"
|
"url": "extension://@janhq/inference-cortex-extension/dist/index.js"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Common Use Cases
|
||||||
|
|
||||||
|
1. **Disable an Extension**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"@janhq/example-extension": {
|
||||||
|
"_active": false
|
||||||
|
// other settings...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Update Entry Point**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"@janhq/example-extension": {
|
||||||
|
"main": "new/path/index.js"
|
||||||
|
// other settings...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Important Notes
|
||||||
|
|
||||||
|
- Always backup the `extensions.json` file before making changes
|
||||||
|
- Invalid JSON syntax can prevent Jan from starting properly
|
||||||
|
- Most users should manage extensions through Jan's Settings UI
|
||||||
|
- Changes require restarting Jan to take effect
|
||||||
|
|||||||
@ -17,4 +17,104 @@ keywords:
|
|||||||
]
|
]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
import { Callout } from 'nextra/components'
|
||||||
|
import { Settings } from 'lucide-react'
|
||||||
|
|
||||||
|
# Cortex
|
||||||
|
|
||||||
|
Configure how [Cortex.cpp](/docs/extensions#cortexcpp) runs AI models. Access these settings through **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Core Extensions** > **Cortex**:
|
||||||
|
|
||||||
|
## Performance Settings
|
||||||
|
|
||||||
|
### Continuous Batching
|
||||||
|
- Enables processing multiple requests simultaneously
|
||||||
|
- Improves throughput for concurrent operations, which usually improves performance
|
||||||
|
|
||||||
|
**Continuous Batching** is turned on by default:
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
### Parallel Operations
|
||||||
|
- Number of prompts to run in parallel
|
||||||
|
- Affects model inference speed
|
||||||
|
|
||||||
|
By default, **Parallel Operations** is 4:
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
### CPU Threads
|
||||||
|
- Number of CPU cores to use when running without GPU
|
||||||
|
- Adjust based on your system's capabilities
|
||||||
|
|
||||||
|
<Callout type="info">
|
||||||
|
Higher thread counts may improve performance but increase CPU usage.
|
||||||
|
</Callout>
|
||||||
|
|
||||||
|
Leave blank at **CPU Threads** to use system defaults:
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
## Memory Settings
|
||||||
|
|
||||||
|
### Flash Attention
|
||||||
|
- Optimizes attention computation
|
||||||
|
- Reduces memory usage
|
||||||
|
- Recommended for most cases
|
||||||
|
|
||||||
|
**Flash Attention** is turned on by default:
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
### Caching
|
||||||
|
- Enable to store recent prompts and responses
|
||||||
|
- Improves response time for repeated prompts
|
||||||
|
|
||||||
|
**Caching** is turned on by default:
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
### KV Cache Type
|
||||||
|
- KV cache implementation type; controls memory usage and precision trade-off.
|
||||||
|
- Options:
|
||||||
|
- f16 (most stable)
|
||||||
|
- q8_0 (balanced)
|
||||||
|
- q4_0 (lowest memory)
|
||||||
|
|
||||||
|
<Callout type="warning">
|
||||||
|
Changing KV cache type from default (f16) may affect model stability.
|
||||||
|
</Callout>
|
||||||
|
|
||||||
|
By default, **KV Cache Type** is f16:
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
### MMAP
|
||||||
|
- Enables memory-mapped model loading
|
||||||
|
- Reduces memory usage
|
||||||
|
- Recommended for large models
|
||||||
|
|
||||||
|
**MMAP** is turned on by default:
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
> **Best Practices:**
|
||||||
|
> - Start with default settings
|
||||||
|
> - Adjust based on your hardware capabilities
|
||||||
|
> - Monitor system performance
|
||||||
|
> - Test changes with your specific use case
|
||||||
|
|
||||||
|
<Callout type="info">
|
||||||
|
Performance impact varies by hardware, model size, and usage patterns.
|
||||||
|
</Callout>
|
||||||
|
|
||||||
|
|||||||
@ -22,34 +22,22 @@ import { Settings, EllipsisVertical, Plus, FolderOpen, Pencil } from 'lucide-rea
|
|||||||
|
|
||||||
# Model Management
|
# Model Management
|
||||||
|
|
||||||
Configure how Jan handles model downloads and management. Access these settings through **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Extensions** > **Model Management**:
|
This extension configures how Jan handles model downloads and management:
|
||||||
|
- Model discovery and browsing
|
||||||
|
- Version control & configuration handling
|
||||||
|
- Download management
|
||||||
|
|
||||||
## Hugging Face Access Token
|
## Hugging Face Access Token
|
||||||
|
|
||||||
Access tokens authenticate your identity to Hugging Face Hub for model downloads.
|
Access tokens authenticate your identity to Hugging Face Hub for model downloads.
|
||||||
|
1. Get your token from [Hugging Face Tokens](https://huggingface.co/docs/hub/en/security-tokens)
|
||||||
|
2. Navigate to **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Core Extensions** > **Model Management**
|
||||||
|
2. Enter your token in Jan: `hf_************************`
|
||||||
Enter your token in the format: `hf_************************`
|
|
||||||
|
|
||||||
<Callout type="info">
|
|
||||||
Get your Hugging Face token from [Hugging Face Settings](https://huggingface.co/settings/tokens)
|
|
||||||
</Callout>
|
|
||||||
|
|
||||||
## Log Management
|
|
||||||
|
|
||||||
### Enable App Logs
|
|
||||||
Toggle to save logs locally on your computer for:
|
|
||||||
- Debugging model issues
|
|
||||||
- Crash reports
|
|
||||||
- Download troubleshooting
|
|
||||||
|
|
||||||
### Log Cleaning Interval
|
|
||||||
Set automatic log deletion interval in milliseconds:
|
|
||||||
- Default: 120000 (2 minutes)
|
|
||||||
- Controls disk space usage
|
|
||||||
- Prevents log accumulation
|
|
||||||
|
|
||||||
<Callout type="warning">
|
<Callout type="warning">
|
||||||
Keep your access tokens secure and never share them. Enable logs temporarily when needed for troubleshooting.
|
Keep your access tokens secure and never share them.
|
||||||
</Callout>
|
</Callout>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
@ -20,15 +20,35 @@ import { Callout } from 'nextra/components'
|
|||||||
import { Settings, EllipsisVertical } from 'lucide-react'
|
import { Settings, EllipsisVertical } from 'lucide-react'
|
||||||
|
|
||||||
|
|
||||||
## System Monitor
|
# System Monitoring
|
||||||
The System Monitor extension now offers enhanced customization for app logging. Users can toggle the application logging feature on or off and set a custom interval for clearing the app logs. To configure the app log feature, follow these steps:
|
Provides system health and OS level data:
|
||||||
1. Navigate to the main dashboard.
|
- Hardware utilization tracking
|
||||||
2. Click the **Gear Icon (⚙️)** on the bottom left of your screen.
|
- Performance monitoring
|
||||||
3. Under the **Core Extensions** section, select the **System Monitoring** extension.
|
- Error logging
|
||||||
4. Use the **slider** to turn the app logging feature on or off.
|
|
||||||
5. Specify the log cleaning interval in milliseconds.
|
You can configure your logs in Jan in **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Core Extensions** > **System Monitoring**:
|
||||||
|
|
||||||
|
|
||||||
|
## Enable App Logs
|
||||||
|
Jan can save logs locally on your computer for:
|
||||||
|
- Debugging model issues
|
||||||
|
- Crash reports
|
||||||
|
- Download troubleshooting
|
||||||
|
|
||||||
|
To enable, toggle on **Enable App Logs**:
|
||||||
|
|
||||||
|
<br/>
|
||||||
|

|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
## Log Cleaning Interval
|
||||||
|
Set automatic log deletion interval in milliseconds:
|
||||||
|
- Default: 120000 (2 minutes); however, there's no minimum or maximum intervals
|
||||||
|
- Controls disk space usage
|
||||||
|
- Prevents log accumulation
|
||||||
|
|
||||||
<Callout type='info'>
|
<Callout type='info'>
|
||||||
- You can clear the app logs manually by clicking the **Clear logs** button in the advanced settings.
|
You can clear Jan logs manually with [Clear logs](/docs/settings#log-management) in **Privacy**.
|
||||||
- There are no minimum or maximum intervals for setting the time. However, invalid inputs will default to `120000ms (2 minutes)`.
|
|
||||||
</Callout>
|
</Callout>
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Install Extension
|
title: Install Extensions
|
||||||
description: A step-by-step guide on installing an extension.
|
description: A step-by-step guide on installing an extension.
|
||||||
keywords:
|
keywords:
|
||||||
[
|
[
|
||||||
@ -20,25 +20,70 @@ keywords:
|
|||||||
import { Callout } from 'nextra/components'
|
import { Callout } from 'nextra/components'
|
||||||
|
|
||||||
|
|
||||||
## Install Extension
|
# Install Extensions
|
||||||
|
|
||||||
Jan automatically installs 11 default extensions when you set up the application. You can also add a custom third-party extension at your own risk.
|
Jan comes with several [pre-installed extensions](/docs/extensions#core-extensions) that provide core functionalities. You can manually add custom third-party extensions at your own risk.
|
||||||
|
|
||||||
|
## Creating Extensions
|
||||||
|
|
||||||
Here are the steps to install a custom extension:
|
|
||||||
<Callout type="info">
|
<Callout type="info">
|
||||||
Jan only accepts the `.tgz` file format for installing a custom extension.
|
Jan currently only accepts `.tgz` file format for extensions.
|
||||||
</Callout>
|
</Callout>
|
||||||
|
|
||||||
1. Click the **Gear Icon (⚙️)** on the bottom left of your screen.
|
> **Heads Up:**
|
||||||
|
> - Please use the following structure and setup as a **reference** only.
|
||||||
|
> - You're free to develop extensions using any approach or structure that works for your needs. As long as your extension can be packaged as a `.tgz` file, it can be installed in Jan. Feel free to experiment and innovate!
|
||||||
|
> - If you already have your own `.tgz` extension file, please move forward to [install extension](/docs/installing-extension#install-extensions) step.
|
||||||
|
|
||||||
|
#### Extension Structure
|
||||||
|
Your extension should follow this basic structure:
|
||||||
|
|
||||||
|
```
|
||||||
|
my-extension/
|
||||||
|
├── package.json # Extension metadata and dependencies
|
||||||
|
├── dist/ # Compiled JavaScript files
|
||||||
|
│ └── index.js # Main extension entry point
|
||||||
|
├── src/ # Source code
|
||||||
|
│ └── index.ts # TypeScript source
|
||||||
|
└── README.md # Extension documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Required package.json Fields
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "@your-org/extension-name",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"main": "dist/index.js",
|
||||||
|
"types": "dist/index.d.ts",
|
||||||
|
"jan": {
|
||||||
|
"type": "extension",
|
||||||
|
"displayName": "Your Extension Name",
|
||||||
|
"description": "Description of what your extension does"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "tsc",
|
||||||
|
"package": "npm pack"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
// List your dependencies
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"typescript": "^5.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Example Extension Template
|
||||||
|
|
||||||
|
You can find a template for creating Jan extensions in our [example repository](https://github.com/janhq/extension-template).
|
||||||
|
## Install Extensions
|
||||||
|
|
||||||
|
To install a custom extension in Jan:
|
||||||
|
|
||||||
|
1. Navigate to [Jan Data Folder](/docs/data-folder):
|
||||||
|
2. Copy `.tgz` extension file into the extensions directory
|
||||||
|
3. Extract the `.tgz` file into its own folder under the extensions directory
|
||||||
|
4. Restart Jan
|
||||||
|
|
||||||
|
After restart, the `~/jan/data/extensions/extensions.json` file will be updated automatically to include your new extension.
|
||||||
|
|
||||||
2. Click the **Extensions** button.
|
|
||||||
<br/>
|
|
||||||

|
|
||||||
<br/>
|
|
||||||
2. Select **Install Extension** on top right corner.
|
|
||||||
<br/>
|
|
||||||

|
|
||||||
<br/>
|
|
||||||
3. Select a `.tgz` extension file.
|
|
||||||
4. Restart the Jan application.
|
|
||||||
5. Then, the `~/jan/data/extensions/extensions.json` file will be updated automatically.
|
|
||||||