diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader.tsx
deleted file mode 100644
index b51c2ab9292..00000000000
--- a/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import { LuLayers } from "react-icons/lu";
-
-export function WorkspaceSidebarHeader() {
- return (
-
-
-
- Workspaces
-
-
- );
-}
diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/NewWorkspaceButton.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/NewWorkspaceButton.tsx
new file mode 100644
index 00000000000..0f392fe62e5
--- /dev/null
+++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/NewWorkspaceButton.tsx
@@ -0,0 +1,30 @@
+import { LuPlus } from "react-icons/lu";
+import { trpc } from "renderer/lib/trpc";
+import { useOpenNewWorkspaceModal } from "renderer/stores/new-workspace-modal";
+
+export function NewWorkspaceButton() {
+ const openModal = useOpenNewWorkspaceModal();
+ const { data: activeWorkspace, isLoading } =
+ trpc.workspaces.getActive.useQuery();
+
+ const handleClick = () => {
+ // projectId may be undefined if no workspace is active or query failed
+ // openModal handles undefined by opening without a pre-selected project
+ const projectId = activeWorkspace?.projectId;
+ openModal(projectId);
+ };
+
+ return (
+
+ );
+}
diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/WorkspaceSidebarHeader.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/WorkspaceSidebarHeader.tsx
new file mode 100644
index 00000000000..a5aff06d598
--- /dev/null
+++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/WorkspaceSidebarHeader.tsx
@@ -0,0 +1,18 @@
+import { LuLayers } from "react-icons/lu";
+import { NewWorkspaceButton } from "./NewWorkspaceButton";
+
+export function WorkspaceSidebarHeader() {
+ return (
+
+ );
+}
diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/index.ts
new file mode 100644
index 00000000000..844ddc41ea7
--- /dev/null
+++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceSidebar/WorkspaceSidebarHeader/index.ts
@@ -0,0 +1 @@
+export { WorkspaceSidebarHeader } from "./WorkspaceSidebarHeader";