* refactor: move Electron app to main directory and enforce ts strict mode * chore: add pre-install plugins * remove duplicated initModel function Signed-off-by: James <james@jan.ai> * chore: correct module path * fix: dynamic import does not work with ts * chore: web should be able to run on target host browser * fix: history panel, should display conversations rather just blank state * chore: init default model * chore: pluggin in ts * fix: pre-pack model management * fix: compiled core should not include plugins * chore: refactor - invoke plugin function * refactor download/delete file Signed-off-by: James <james@jan.ai> * update prebuild lib Signed-off-by: James <james@jan.ai> * chore: yarn workspace * chore: update yarn workspace * chore: yarn workspace with nohoist * fix: llama-cpp-import * chore: fix data-plugin wrong module path * chore: correct build step * chore: - separate inference service (#212) - remove base-plugin Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> * chore: update core plugins * chore: hide installation prompt and fix model load - management plugin * chore: remove legacy files; update readme * fix: refresh page lost the download state Signed-off-by: James <james@jan.ai> * fix: ai prompt not passed to plugin Signed-off-by: James <james@jan.ai> * chore: module import fix for production * chore: auto updater * chore: package is public * chore: fix yarn workspace config * update: model management uses Q4_K_M * chore: fix yarn scripts for publishing * chore: app updater - progress update message * chore: user confirms update action * adding some state for changing page store downloaded model to database Signed-off-by: James <james@jan.ai> * chore: refactor plugins into yarn workspace - a single command to publish all base plugins * chore update readme (#218) Co-authored-by: Hien To <tominhhien97@gmail.com> * change app name and app icon Signed-off-by: James <james@jan.ai> * remove: go-to-nowhere actions * chore: bundle core plugins from root and scan default plugins * fix: app crashes on different field name lookup * chore: css fix * chore: bind download progress to app ui * chore: bind active model * chore: simplify app splash-screen only centered jan icon * feature: system monitoring plugin (#196) * feat: Add function for system monitoring * chore: register plugin functions * chore: move to corresponding directory * chore: bind system monitoring data to UI --------- Co-authored-by: Louis <louis@jan.ai> * chore: add build:plugins step to README * chore: model searching and fix model name * fix: plugin file selected appearance * fix: create new conversation does not work * fix: delete conversation not update state - messages still exist * chore: fix asset path prefix * Add CICD for macos (#221) Co-authored-by: Hien To <tominhhien97@gmail.com> * chore: fix production plugin path * chore: add shell open url in external browser --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> Co-authored-by: NamH <NamNh0122@gmail.com> Co-authored-by: 0xSage <n@pragmatic.vc> Co-authored-by: hiento09 <136591877+hiento09@users.noreply.github.com> Co-authored-by: Hien To <tominhhien97@gmail.com> Co-authored-by: namvuong <22463238+vuonghoainam@users.noreply.github.com>
Jan - Run your own AI
Getting Started - Docs - Changelog - Bug reports - Discord
⚠️ 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.
In the background, Jan runs Nitro, 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.
See the Nitro codebase at https://nitro.jan.ai.
Demo
Quicklinks
- Developer documentation: https://jan.ai/docs (Work in Progress)
- Desktop app: Download at https://jan.ai/
- Mobile app shell: Download via App Store | Android
- Nitro (C++ AI Engine): https://nitro.jan.ai
Plugins
Jan supports core & 3rd party extensions:
- LLM chat: Self-hosted Llama2 and LLMs
- Model Manager: 1-click to install, swap, and delete models
- Storage: Optionally store your conversation history and other data in SQLite/your storage of choice
- 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)
- Multi-user support: Share a single server across a team/friends (planned)
- Compliance: Auditing and flagging features (planned)
Hardware Support
Nitro provides both CPU and GPU support, via llama.cpp and TensorRT, respectively.
- Nvidia GPUs (accelerated)
- Apple M-series (accelerated)
- Linux DEB
- Windows x64
Not supported yet: Apple Intel, Linux RPM, Windows x86|ARM64, AMD ROCm
See developer docs for detailed installation instructions.
Installation and Usage
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.
-
Clone the Repository:
git clone https://github.com/janhq/jan git checkout feature/hackathon-refactor-jan-into-electron-app cd jan -
Install dependencies:
yarn install # Packing base plugins yarn build:plugins -
Run development and Using Jan Desktop
yarn devThis will start the development server and open the desktop app. In this step, there are a few notification about installing base plugin, just click
OKandNextto continue.
For production build
# 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
This will build the app MacOS m1/m2 for production (with code signing already done) and put the result in dist folder.
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md file
# From the root, run:
yarn install
yarn build:plugins
yarn dev
See developer docs for guidelines on how to contribute to this project.
License
Jan is free, open core, and Sustainable Use Licensed.
Acknowledgements
Jan builds on top of other open-source projects:
- llama.cpp
- TensorRT
- Keycloak Community (Apache-2.0)
Contact
- Bugs & requests: file a Github ticket
- For discussion: join our Discord here
- For business inquiries: email hello@jan.ai
- For jobs: please email hr@jan.ai