- Bringing AI to
your Desktop
+
+
+
+
+
+
+ Meet Jan
+
+
+
+ Bringing AI to
your Desktop{" "}
+
+
+
-
- Open-source ChatGPT alternative that runs 100% offline on your
+
+ Open-source ChatGPT alternative that runs{" "}
+
100% offline on your
computer.
-
+ handleAnchorLink()}
+ className="inline-flex px-4 py-3 rounded-lg text-lg font-semibold cursor-pointer justify-center items-center space-x-2 dark:bg-white dark:text-black bg-black text-white dark:hover:text-black hover:text-white scroll-smooth"
+ >
+ Download Jan for PC
+
+
+
+ handleAnchorLink()}
+ className="hidden lg:inline-block cursor-pointer"
+ >
+
+ Find out more
+
+
-
-
+
+
- {/*
- */}
- {/*
+
- */}
+
- {/*
-
- Explore Jan
-
-
-
-
-
- Take Control
-
- Jan runs 100% on your own machine, privately, predictably
- and even in offline, with no surprise bills
-
-
+
+
+
-
-
-
-
- 100% Open Source
-
- Say goodbye to black boxes. Jan has well-documented code and
- stores data in open-format files that you can inspect,
- verify and tinker with.
-
-
-
-
-
-
-
- Extensions
-
- Jan has a powerful Extensions API inspired by VSCode. In
- fact, most of Jan's core services are built as extensions.
-
-
-
-
-
- */}
-
- {/*
-
- No-fuss Compatibility
-
- Jan's API aims to be a drop-in replacement for OpenAI's REST
- API,
with a local server that runs at port{" "}
-
- 1337
-
-
-
-
- Endpoints
-
-
-
- /chat/completions
-
-
-
- Partial
-
-
-
-
-
- /models
-
-
- Complete
-
+
+
+
+
+
+ View Roadmap
+
+
+
-
-
-
- /threads
-
-
- Partial
-
-
-
-
-
-
- /messages
-
-
- Partial
-
-
-
-
-
-
- /runs
-
-
- Partial
-
+
+ 100% open source
+
+ Our core team believes that AI should be open source, and
+ Jan is built in public.
+
+
+
- */}
+
+
+
+
+
+
+
+ Desktop App
+
+
+ 10x productivity
+ {" "}
+ with customizable AI
{" "}
+ assistants, global hotkeys, and in-line AI.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mobile App
+
+ Coming Soon
+
+
+
+ Take your AI assistants on the go.{" "}
+
Seamless integration
+ into your
+
+ mobile
workflows
+
+ with elegant features.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Offline and Local First
+
+
+ Conversations, preferences, and model usage stay on{" "}
+
your computerāsecure,
+ exportable, and can be deleted at any time.
+
+
+
+
+
+
+ OpenAI Compatible
+
+
+ Jan provides an OpenAI-equivalent API{" "}
+
server at
+ localhost:
+
+ 1337
+ {" "}
+ that can be used as a drop-in replacement with
+ compatible apps.
+
+
+
+
+
+
+ /chats/completions
+
+
+
+
+
+
+ Local server and API
+
+
+
+
+
+
+ Assistants framework
+
+ Coming Soon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
>
diff --git a/docs/src/styles/components/base.scss b/docs/src/styles/components/base.scss
index a9f3b800a..b99ff21c2 100644
--- a/docs/src/styles/components/base.scss
+++ b/docs/src/styles/components/base.scss
@@ -1,5 +1,4 @@
@layer base {
-
html[data-theme="light"] {
--custom-radial-blur: #e1e7fd;
--ifm-background-color: #fff;
@@ -53,12 +52,12 @@
display: inline-block;
padding: 2px 8px;
margin: 0;
- background-color: #228B22;
+ background-color: #228b22;
color: #000;
font-size: 13px;
vertical-align: middle;
line-height: 1.6;
border-radius: 4px;
font-weight: var(--ifm-font-weight-bold);
-}
+ }
}
diff --git a/docs/src/styles/components/card.scss b/docs/src/styles/components/card.scss
index 853088a33..0bd29b3c4 100644
--- a/docs/src/styles/components/card.scss
+++ b/docs/src/styles/components/card.scss
@@ -1,17 +1,33 @@
@layer components {
+ .card-gradient {
+ background: radial-gradient(
+ 58.83% 95.12% at 62.37% 97.91%,
+ rgba(238, 203, 255, 0.59) 0%,
+ rgba(255, 255, 255, 0) 100%
+ ),
+ linear-gradient(
+ 155deg,
+ rgba(50, 107, 255, 0.8) 68.16%,
+ rgba(194, 226, 255, 0.8) 94.33%
+ );
+
+ backdrop-filter: blur(7.174633026123047px);
+ }
+
.card-link-bg {
- background: linear-gradient(180deg, #fff 0%, #fff 100%);
+ background: linear-gradient(180deg, #fafafa 0%, #ededed 100%);
box-shadow:
- 0px 10px 10px -5px rgba(0, 0, 0, 0.1),
- 0px 20px 25px -5px rgba(0, 0, 0, 0.1),
- 0px 1px 2px 0px #f1f1f1 inset;
+ 0px 4px 12px 0px rgba(0, 0, 0, 0.12),
+ 0px -1px 1px 0px rgba(0, 0, 0, 0.1) inset,
+ 0px 1px 1px 0px #fff inset;
}
.card-link-bg-dark {
- background: linear-gradient(180deg, #101118 0%, #101118 100%);
+ background: var(--color-bg-elevated, #27272a);
box-shadow:
- 0px 10px 10px -5px rgba(0, 0, 0, 0.3),
- 0px 1px 2px 0px #525154 inset;
+ 0px 4px 12px 0px rgba(0, 0, 0, 0.12),
+ 0px -1px 1px 0px rgba(0, 0, 0, 0.1) inset,
+ 0px 1px 1px 0px #4c4c4c inset;
}
.card {
@apply rounded-xl border bg-gray-50 border-gray-50 dark:border-[#202231] dark:bg-[#111217]/50;
diff --git a/docs/src/styles/tweaks/navbar.scss b/docs/src/styles/tweaks/navbar.scss
index 3bdc5ec7a..789c2f48a 100644
--- a/docs/src/styles/tweaks/navbar.scss
+++ b/docs/src/styles/tweaks/navbar.scss
@@ -2,7 +2,7 @@
@apply bg-transparent py-0 shadow-none px-0;
&__inner {
- @apply border border-gray-200 dark:border-gray-800 bg-[#E4E4E7]/20 dark:bg-[#09090B]/50 backdrop-blur-md flex items-center h-14 px-8 relative;
+ @apply border border-gray-200 dark:border-gray-800 bg-white/80 dark:bg-[#09090B]/50 backdrop-blur-md flex items-center h-14 px-4 lg:px-8 relative;
}
&__logo {
diff --git a/docs/src/styles/tweaks/sidebar.scss b/docs/src/styles/tweaks/sidebar.scss
index b849d67fb..5508a3bfa 100644
--- a/docs/src/styles/tweaks/sidebar.scss
+++ b/docs/src/styles/tweaks/sidebar.scss
@@ -7,7 +7,11 @@
}
[class*="sidebar_"] {
- padding-top: 0 !important;
+ padding-top: 0px !important;
+}
+
+.navbar-sidebar__back {
+ padding-top: 20px !important;
}
[class*="sidebarViewport_"] {
diff --git a/docs/static/img/homepage/app-base-screen-dark.png b/docs/static/img/homepage/app-base-screen-dark.png
index b9421e846..88d65f87e 100644
Binary files a/docs/static/img/homepage/app-base-screen-dark.png and b/docs/static/img/homepage/app-base-screen-dark.png differ
diff --git a/docs/static/img/homepage/app-base-screen-light.png b/docs/static/img/homepage/app-base-screen-light.png
index c8d35b42e..5e8105a65 100644
Binary files a/docs/static/img/homepage/app-base-screen-light.png and b/docs/static/img/homepage/app-base-screen-light.png differ
diff --git a/docs/static/img/homepage/desktop-app-dark.png b/docs/static/img/homepage/desktop-app-dark.png
new file mode 100644
index 000000000..961159276
Binary files /dev/null and b/docs/static/img/homepage/desktop-app-dark.png differ
diff --git a/docs/static/img/homepage/desktop-app-light.png b/docs/static/img/homepage/desktop-app-light.png
new file mode 100644
index 000000000..03f2a7c90
Binary files /dev/null and b/docs/static/img/homepage/desktop-app-light.png differ
diff --git a/docs/static/img/homepage/element-bg-open-source.png b/docs/static/img/homepage/element-bg-open-source.png
new file mode 100644
index 000000000..9314290e0
Binary files /dev/null and b/docs/static/img/homepage/element-bg-open-source.png differ
diff --git a/docs/static/img/homepage/element-hero-blur.png b/docs/static/img/homepage/element-hero-blur.png
new file mode 100644
index 000000000..5df882fea
Binary files /dev/null and b/docs/static/img/homepage/element-hero-blur.png differ
diff --git a/docs/static/img/homepage/element-hero-heading.png b/docs/static/img/homepage/element-hero-heading.png
new file mode 100644
index 000000000..672c8ec6f
Binary files /dev/null and b/docs/static/img/homepage/element-hero-heading.png differ
diff --git a/docs/static/img/homepage/ic-folder.png b/docs/static/img/homepage/ic-folder.png
new file mode 100644
index 000000000..dbf54acf9
Binary files /dev/null and b/docs/static/img/homepage/ic-folder.png differ
diff --git a/docs/static/img/homepage/ic-offline.png b/docs/static/img/homepage/ic-offline.png
new file mode 100644
index 000000000..85c57417d
Binary files /dev/null and b/docs/static/img/homepage/ic-offline.png differ
diff --git a/docs/static/img/homepage/ic-private.png b/docs/static/img/homepage/ic-private.png
new file mode 100644
index 000000000..bbebdd9d2
Binary files /dev/null and b/docs/static/img/homepage/ic-private.png differ
diff --git a/docs/static/img/homepage/mobile-app-dark.png b/docs/static/img/homepage/mobile-app-dark.png
new file mode 100644
index 000000000..3d1b1ce20
Binary files /dev/null and b/docs/static/img/homepage/mobile-app-dark.png differ
diff --git a/docs/static/img/homepage/mobile-app-light.png b/docs/static/img/homepage/mobile-app-light.png
new file mode 100644
index 000000000..30001b31c
Binary files /dev/null and b/docs/static/img/homepage/mobile-app-light.png differ
diff --git a/docs/static/img/homepage/roadmap.png b/docs/static/img/homepage/roadmap.png
new file mode 100644
index 000000000..3dbed37b4
Binary files /dev/null and b/docs/static/img/homepage/roadmap.png differ
diff --git a/docs/static/img/homepage/status.png b/docs/static/img/homepage/status.png
new file mode 100644
index 000000000..7d618b0b1
Binary files /dev/null and b/docs/static/img/homepage/status.png differ
diff --git a/docs/tailwind.config.js b/docs/tailwind.config.js
index 6cf90b217..7ef39234d 100644
--- a/docs/tailwind.config.js
+++ b/docs/tailwind.config.js
@@ -4,6 +4,42 @@ module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}"],
darkMode: ["class", '[data-theme="dark"]'],
theme: {
+ animation: {
+ wave: "wave 2.5s linear infinite",
+ enter: "enter 200ms ease-out",
+ "slide-in": "slide-in 1.2s cubic-bezier(.41,.73,.51,1.02)",
+ leave: "leave 150ms ease-in forwards",
+ "bounce-down": "bounce-down 3s infinite",
+ },
+ keyframes: {
+ wave: {
+ "0%": { transform: "rotate( 0.0deg)" },
+ "10%": { transform: "rotate(14.0deg)" },
+ "20%": { transform: "rotate(-8.0deg)" },
+ "30%": { transform: "rotate(14.0deg)" },
+ "40%": { transform: "rotate(-4.0deg)" },
+ "50%": { transform: "rotate(10.0deg)" },
+ "60%": { transform: "rotate( 0.0deg)" },
+ "100%": { transform: "rotate( 0.0deg)" },
+ },
+ enter: {
+ "0%": { transform: "scale(0.8)", opacity: "0" },
+ "100%": { transform: "scale(1)", opacity: "1" },
+ },
+ leave: {
+ "0%": { transform: "scale(1)", opacity: "1" },
+ "100%": { transform: "scale(0.8)", opacity: "0" },
+ },
+ "slide-in": {
+ "0%": { transform: "translateY(-100%)" },
+ "100%": { transform: "translateY(0)" },
+ },
+ "bounce-down": {
+ "0%,20%, 50%,80%,100%": { transform: "translateY(0)" },
+ "40%": { transform: "translateY(-8px)" },
+ "60%": { transform: "translateY(-4px)" },
+ },
+ },
container: {
center: true,
padding: "16px",
+
+ Bringing AI to
your Desktop{" "}
+
+
+
- - Open-source ChatGPT alternative that runs 100% offline on your +
+ Open-source ChatGPT alternative that runs{" "}
+
100% offline on your
computer.
Find out more
+Explore Jan
-Take Control
-- Jan runs 100% on your own machine, privately, predictably - and even in offline, with no surprise bills -
-100% Open Source
-- Say goodbye to black boxes. Jan has well-documented code and - stores data in open-format files that you can inspect, - verify and tinker with. -
-Extensions
-- Jan has a powerful Extensions API inspired by VSCode. In - fact, most of Jan's core services are built as extensions. -
-No-fuss Compatibility
-
- Jan's API aims to be a drop-in replacement for OpenAI's REST
- API,
with a local server that runs at port{" "}
-
- 1337
-
-
Endpoints
-/chat/completions
-/models
-
/threads
-/messages
-/runs
-100% open source
++ Our core team believes that AI should be open source, and + Jan is built in public. +
+Desktop App
+
+
+ 10x productivity
+ {" "}
+ with customizable AI
{" "}
+ assistants, global hotkeys, and in-line AI.
+
Mobile App
+ + Coming Soon + +
+ Take your AI assistants on the go.{" "}
+
Seamless integration
+ into your
+
+ mobile
workflows
+
+ with elegant features.
+
+
+
+ + Offline and Local First +
+
+ Conversations, preferences, and model usage stay on{" "}
+
your computerāsecure,
+ exportable, and can be deleted at any time.
+
+ OpenAI Compatible +
+
+ Jan provides an OpenAI-equivalent API{" "}
+
server at
+ localhost:
+
+ 1337
+ {" "}
+ that can be used as a drop-in replacement with
+ compatible apps.
+
+ /chats/completions +
++ Local server and API +
++ Assistants framework + + Coming Soon + +
+
+