diff --git a/README.md b/README.md index ef4efa032..f7321e2e6 100644 --- a/README.md +++ b/README.md @@ -20,63 +20,62 @@ > ⚠️ **Jan is currently in Development**: Expect breaking changes and bugs! -Jan lets you run AI on your own hardware, with helpful tools to manage models and monitor your hardware performance. +**Use offline LLMs with your own data.** Run open source models like Llama2 or Falcon on your internal computers/servers. -In the background, Jan runs [Nitro](https://nitro.jan.ai), a C++ inference engine. It runs various model formats (GGUF/TensorRT) on various hardware (Mac M1/M2/Intel, Windows, Linux, and datacenter-grade Nvidia GPUs) with optional GPU acceleration. +**Jan runs on any hardware.** From PCs to multi-GPU clusters, Jan supports universal architectures: -> See the Nitro codebase at https://nitro.jan.ai. +- [x] Nvidia GPUs (fast) +- [x] Apple M-series (fast) +- [x] Apple Intel +- [x] Linux Debian +- [x] Windows x64 - - +> Download Jan at https://jan.ai/ ## Demo

- Jan Web GIF + Jan Web GIF

+_Screenshot: Jan v0.1.3 on Mac M1 Pro, 16GB Sonoma_ + ## Quicklinks -- Developer documentation: https://jan.ai/docs (Work in Progress) -- Desktop app: Download at https://jan.ai/ -- Mobile app shell: Download via [App Store](https://apps.apple.com/us/app/jan-on-device-ai-cloud-ais/id6449664703) | [Android](https://play.google.com/store/apps/details?id=com.jan.ai) -- Nitro (C++ AI Engine): https://nitro.jan.ai +- [Developer docs](https://jan.ai/docs) (WIP) +- Mobile App shell: [App Store](https://apps.apple.com/us/app/jan-on-device-ai-cloud-ais/id6449664703) | [Android](https://play.google.com/store/apps/details?id=com.jan.ai) +- [Nitro Github](https://nitro.jan.ai): Jan's AI engine ## Plugins Jan supports core & 3rd party extensions: - [x] **LLM chat**: Self-hosted Llama2 and LLMs -- [x] **Model Manager**: 1-click to install, swap, and delete models -- [x] **Storage**: Optionally store your conversation history and other data in SQLite/your storage of choice +- [x] **Model Manager**: 1-click to install, swap, and delete models with HuggingFace integration +- [x] **Storage**: Optionally save conversation history and other data in SQLite - [ ] **3rd-party AIs**: Connect to ChatGPT, Claude via API Key (in progress) - [ ] **Cross device support**: Mobile & Web support for custom shared servers (in progress) -- [ ] **File retrieval**: User can upload private and run a vectorDB (planned) +- [ ] **File retrieval**: User can chat with docs - [ ] **Multi-user support**: Share a single server across a team/friends (planned) - [ ] **Compliance**: Auditing and flagging features (planned) -## Hardware Support +## Nitro (Jan's AI engine) -Nitro provides both CPU and GPU support, via [llama.cpp](https://github.com/ggerganov/llama.cpp) and [TensorRT](https://github.com/NVIDIA/TensorRT), respectively. +In the background, Jan runs [Nitro](https://nitro.jan.ai), an open source, C++ inference engine. It runs various model formats (GGUF/TensorRT) on various hardware (Mac M1/M2/Intel, Windows, Linux, and datacenter-grade Nvidia GPUs) with optional GPU acceleration. -- [x] Nvidia GPUs (accelerated) -- [x] Apple M-series (accelerated) -- [x] Linux DEB -- [x] Windows x64 - -Not supported yet: Apple Intel, Linux RPM, Windows x86|ARM64, AMD ROCm - -> See [developer docs](https://docs.jan.ai/docs/) for detailed installation instructions. +> See the open source Nitro codebase at https://nitro.jan.ai. ## Contributing Contributions are welcome! Please read the [CONTRIBUTING.md](CONTRIBUTING.md) file ### Pre-requisites + - node >= 20.0.0 - yarn >= 1.22.0 ### Use as complete suite (in progress) + ### For interactive development Note: This instruction is tested on MacOS only. @@ -98,28 +97,29 @@ Note: This instruction is tested on MacOS only. yarn build:plugins ``` -4. **Run development and Using Jan Desktop** +3. **Run development and Using Jan Desktop** ``` yarn dev ``` + This will start the development server and open the desktop app. In this step, there are a few notification about installing base plugin, just click `OK` and `Next` to continue. ### For production build - ```bash - # Do step 1 and 2 in previous section - git clone https://github.com/janhq/jan - cd jan - yarn install - yarn build:plugins +```bash +# Do step 1 and 2 in previous section +git clone https://github.com/janhq/jan +cd jan +yarn install +yarn build:plugins - # Build the app - yarn build - ``` +# Build the app +yarn build +``` - This will build the app MacOS m1/m2 for production (with code signing already done) and put the result in `dist` folder. +This will build the app MacOS m1/m2 for production (with code signing already done) and put the result in `dist` folder. ## License diff --git a/docs/src/components/Elements/dropdown.js b/docs/src/components/Elements/dropdown.js index 6d9bd0697..4145f0fda 100644 --- a/docs/src/components/Elements/dropdown.js +++ b/docs/src/components/Elements/dropdown.js @@ -3,25 +3,25 @@ import { Fragment } from "react"; import { Menu, Transition } from "@headlessui/react"; import { ChevronDownIcon } from "@heroicons/react/20/solid"; -const items = [ +const systems = [ { name: "Download for Mac (M1/M2)", - href: "https://github.com/janhq/jan/releases/download/v0.1.2/Jan-0.1.2-arm64.dmg", + href: "https://github.com/janhq/jan/releases/download/v0.1.3/jan-electron-mac-arm64-0.1.3.dmg", logo: require("@site/static/img/apple-logo-white.png").default, }, { name: "Download for Mac (Intel)", - href: "https://github.com/janhq/jan/releases/download/v0.1.2/Jan-0.1.2-arm64.dmg", + href: "https://github.com/janhq/jan/releases/download/v0.1.3/jan-electron-mac-x64-0.1.3.dmg", logo: require("@site/static/img/apple-logo-white.png").default, }, { name: "Download for Windows", - href: "https://static.vecteezy.com/system/resources/previews/004/243/615/non_2x/creative-coming-soon-teaser-background-free-vector.jpg", + href: "https://github.com/janhq/jan/releases/download/v0.1.3/jan-electron-win-x64-0.1.3.exe", logo: require("@site/static/img/windows-logo-white.png").default, }, { name: "Download for Linux", - href: "https://static.vecteezy.com/system/resources/previews/004/243/615/non_2x/creative-coming-soon-teaser-background-free-vector.jpg", + href: "https://github.com/janhq/jan/releases/download/v0.1.3/jan-electron-linux-amd64-0.1.3.deb", logo: require("@site/static/img/linux-logo-white.png").default, }, ]; @@ -31,19 +31,32 @@ function classNames(...classes) { } export default function Dropdown() { + const uAgent = window.navigator.userAgent; + let defaultSystem; + + if (uAgent.indexOf("Win") !== -1) { + defaultSystem = systems[2]; + } else if (uAgent.indexOf("Mac") !== -1) { + // Note: There's no way to detect ARM architecture from browser. Hardcoding to M1/M2 for now. + defaultSystem = systems[0]; + } else if (uAgent.indexOf("Linux") !== -1) { + defaultSystem = systems[3]; + } else { + defaultSystem = systems[0]; + } + return (
- {/* TODO dynamically detect users OS through browser */} Logo - Download for Mac (Silicon) + {defaultSystem.name} @@ -61,11 +74,11 @@ export default function Dropdown() { >
- {items.map((item) => ( - + {systems.map((system) => ( + {({ active }) => ( Logo - {item.name} + {system.name} )} diff --git a/docs/src/components/Homepage/downloads.js b/docs/src/components/Homepage/downloads.js index 01dd6665a..f14ebf8f6 100644 --- a/docs/src/components/Homepage/downloads.js +++ b/docs/src/components/Homepage/downloads.js @@ -5,7 +5,7 @@ import { LockClosedIcon, } from "@heroicons/react/20/solid"; -const features = [ +const systems = [ { name: "Mac", description: @@ -47,20 +47,20 @@ export default function HomepageDownloads() {
- {features.map((feature) => ( -
+ {systems.map((system) => ( +
-
-

{feature.description}

+

{system.description}

Learn more diff --git a/docs/src/components/Homepage/hero.js b/docs/src/components/Homepage/hero.js index f6cdf58e3..a9a56f6fe 100644 --- a/docs/src/components/Homepage/hero.js +++ b/docs/src/components/Homepage/hero.js @@ -8,7 +8,7 @@ export default function HomepageHero() { return (

-
+
{/* Background top gradient styling */} {colorMode === "dark" ? (
+
{/* Hero text and buttons */}
@@ -47,7 +47,7 @@ export default function HomepageHero() { Run your own AI

- Jan lets you run AI on your own hardware. 1-click to install the + Jan lets you run AI on your own hardware. 1-click to install the latest open-source models. Monitor and manage software-hardware performance.

@@ -79,14 +79,15 @@ export default function HomepageHero() { src={ colorMode === "dark" ? // TODO replace with darkmode image - require("@site/static/img/desktop-llm-chat-dark.png").default - : require("@site/static/img/desktop-llm-chat-light.png").default + require("@site/static/img/desktop-llm-chat-dark.png") + .default + : require("@site/static/img/desktop-llm-chat-light.png") + .default } alt="App screenshot" width={2432} className="mt-16 rounded-lg md:rounded-2xl lg:rounded-3xl bg-white/5 shadow-2xl ring-1 ring-white/10 sm:mt-24" /> -

{/* Background top gradient styling */}