diff --git a/frontend/src/views/WorkspaceView.vue b/frontend/src/views/WorkspaceView.vue
index e5d036b..157b975 100644
--- a/frontend/src/views/WorkspaceView.vue
+++ b/frontend/src/views/WorkspaceView.vue
@@ -5,6 +5,8 @@ import { apiGet } from "@/api/client";
import { useChatStore } from "@/stores/chat";
import { useSettingsStore } from "@/stores/settings";
import { useToastStore } from "@/stores/toast";
+import { useListenMode } from "@/composables/useListenMode";
+import { useStreamingTts } from "@/composables/useStreamingTts";
import { renderMarkdown } from "@/utils/markdown";
import ChatMessage from "@/components/ChatMessage.vue";
import ToolCallCard from "@/components/ToolCallCard.vue";
@@ -16,6 +18,13 @@ const route = useRoute();
const chatStore = useChatStore();
const settingsStore = useSettingsStore();
const toast = useToastStore();
+const listenMode = useListenMode();
+const voiceTtsEnabled = computed(() => settingsStore.voiceTtsReady);
+const tts = useStreamingTts({
+ streamingContent: computed(() => chatStore.streamingContent),
+ streaming: computed(() => chatStore.streaming),
+ enabled: computed(() => listenMode.value && voiceTtsEnabled.value),
+});
const projectId = computed(() => Number(route.params.projectId));
@@ -372,6 +381,22 @@ onUnmounted(async () => {
@keydown="onInputKeydown"
@input="autoResize"
>
+
+