diff --git a/src/renderer/components/Welcome.tsx b/src/renderer/components/Welcome.tsx
index 5b3f4251f6ce8cd9e7bb6476736ee1aa6a729ba2..0f263579bd9c7776a067f33c452492e3e9fe4bad 100644
--- a/src/renderer/components/Welcome.tsx
+++ b/src/renderer/components/Welcome.tsx
@@ -1,5 +1,6 @@
 /* eslint-disable jsx-a11y/anchor-is-valid */
 import { useState } from 'react';
+import useSWRImmutable from 'swr';
 
 import { Button, Sheet, Stack, Typography } from '@mui/joy';
 
@@ -14,13 +15,15 @@ import {
   PlayCircle,
   PlayCircleIcon,
 } from 'lucide-react';
-import { useServerStats } from 'renderer/lib/transformerlab-api-sdk';
+import * as chatAPI from 'renderer/lib/transformerlab-api-sdk';
 
 import { Link as ReactRouterLink, useNavigate } from 'react-router-dom';
 
 import DownloadFirstModelModal from './DownloadFirstModelModal';
 import HexLogo from './Shared/HexLogo';
 
+const fetcher = (url) => fetch(url).then((res) => res.json());
+
 function recommendedModel(cpu, os, device) {
   if (!cpu || !os || !device) return '';
 
@@ -47,10 +50,22 @@ function typeOfComputer(cpu, os, device) {
 }
 
 export default function Welcome() {
+
+  // Check number of downloaded models
+  let model_count = 0;
+  const { data: modelCountResponse } = useSWRImmutable(
+    chatAPI.Endpoints.Models.CountDownloaded(),
+    fetcher
+  );
+  if (modelCountResponse && modelCountResponse!.data) {
+    model_count = modelCountResponse!.data;
+  }
+
+  // Open DownloadFirstModelModal if the user has no models
   const [modelDownloadModalOpen, setModelDownloadModalOpen] =
-    useState<boolean>(false);
+    useState<boolean>(model_count == 0);
 
-  const { server, isLoading, isError } = useServerStats();
+  const { server, isLoading, isError } = chatAPI.useServerStats();
 
   const navigate = useNavigate();