{ "name": "open-whispr", "version": "1.11.1", "description": "A desktop dictation application using whisper.cpp for speech-to-text transcription", "main": "main.js", "private": true, "engines": { "node": ">=24" }, "scripts": { "compile:globe": "node scripts/build-globe-listener.js", "compile:fast-paste": "node scripts/build-macos-fast-paste.js", "compile:winkeys": "node scripts/build-windows-key-listener.js", "compile:linuxkeys": "node scripts/build-linux-key-listener.js", "compile:text-monitor": "node scripts/build-text-monitor.js", "compile:winpaste": "node scripts/build-windows-fast-paste.js", "compile:linux-paste": "node scripts/build-linux-fast-paste.js", "compile:linux-system-audio": "node scripts/build-linux-system-audio.js", "compile:media-remote": "node scripts/build-media-remote.js", "compile:mediaremote-adapter": "node scripts/build-mediaremote-adapter.js", "compile:mic-listener": "node scripts/build-macos-mic-listener.js", "compile:calendar-listener": "node scripts/build-macos-calendar-listener.js", "compile:audio-tap": "node scripts/build-macos-audio-tap.js", "compile:window-bounds": "node scripts/build-macos-window-bounds.js", "compile:native": "npm run compile:globe && npm run compile:fast-paste && npm run compile:winkeys && npm run compile:linuxkeys && npm run compile:winpaste && npm run compile:linux-paste && npm run compile:linux-system-audio && npm run compile:text-monitor && npm run compile:media-remote && npm run compile:mediaremote-adapter && npm run compile:mic-listener && npm run compile:calendar-listener && npm run compile:audio-tap && npm run compile:window-bounds", "prestart": "npm run compile:native && npm run download:meeting-aec-helper && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:embedding-model && npm run download:whisper-vad-model", "start": "electron .", "dev": "concurrently -k -r \"npm:dev:renderer\" \"npm:dev:main\"", "predev:main": "npm run compile:native && npm run download:meeting-aec-helper && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:embedding-model && npm run download:whisper-vad-model && npm run download:brand-fonts", "dev:main": "cross-env NODE_ENV=development node scripts/run-electron.js --dev", "dev:renderer": "cd src && vite", "prebuild": "npm run compile:native && npm run download:whisper-cpp && npm run download:llama-server && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:meeting-aec-helper && npm run download:whisper-vad-model && npm run download:embedding-model -- --for-build && npm run download:diarization-models -- --output-dir resources/bin/diarization-models && npm run download:brand-fonts", "build": "cd src && vite build && cd .. && electron-builder", "postinstall": "electron-builder install-app-deps", "build:renderer": "cd src && vite build", "compile:mac-icon": "node scripts/compile-macos-icon.js", "prebuild:mac": "npm run compile:native && npm run compile:mac-icon && npm run download:whisper-cpp && npm run download:llama-server && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:meeting-aec-helper && npm run download:whisper-vad-model && npm run download:diarization-models -- --output-dir resources/bin/diarization-models && npm run download:brand-fonts", "build:mac": "npm run build:renderer && electron-builder --mac", "build:mac:arm64": "npm run build:renderer && electron-builder --mac --arm64", "build:mac:x64": "npm run build:renderer && electron-builder --mac --x64", "prebuild:win": "npm run compile:native && npm run download:whisper-cpp && npm run download:llama-server && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:meeting-aec-helper && npm run download:whisper-vad-model && npm run download:diarization-models -- --output-dir resources/bin/diarization-models && npm run download:nircmd && npm run download:windows-fast-paste && npm run download:windows-key-listener && npm run download:windows-mic-listener && npm run download:windows-system-audio-helper && npm run download:brand-fonts", "build:win": "npm run build:renderer && electron-builder --win", "prebuild:linux": "npm run compile:native && npm run download:whisper-cpp && npm run download:llama-server && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:meeting-aec-helper && npm run download:whisper-vad-model && npm run download:diarization-models -- --output-dir resources/bin/diarization-models && npm run download:brand-fonts", "build:linux": "npm run build:renderer && electron-builder --linux", "build:linux:appimage": "npm run build:renderer && electron-builder --linux AppImage", "build:linux:deb": "npm run build:renderer && electron-builder --linux deb", "build:linux:rpm": "npm run build:renderer && electron-builder --linux rpm", "build:linux:tar": "npm run build:renderer && electron-builder --linux tar.gz", "prepack": "npm run compile:native && npm run download:whisper-cpp && npm run download:llama-server && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:meeting-aec-helper && npm run download:whisper-vad-model && npm run download:diarization-models -- --output-dir resources/bin/diarization-models", "pack": "npm run build:renderer && cross-env CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder --dir", "predist": "npm run compile:native && npm run download:whisper-cpp && npm run download:llama-server && npm run download:sherpa-onnx && npm run download:yt-dlp && npm run download:qdrant && npm run download:meeting-aec-helper && npm run download:whisper-vad-model && npm run download:diarization-models -- --output-dir resources/bin/diarization-models", "dist": "npm run build:renderer && electron-builder", "download:whisper-cpp": "node scripts/download-whisper-cpp.js --current", "download:whisper-cpp:all": "node scripts/download-whisper-cpp.js --all", "download:llama-server": "node scripts/download-llama-server.js --current", "download:llama-server:all": "node scripts/download-llama-server.js --all", "download:sherpa-onnx": "node scripts/download-sherpa-onnx.js --current", "download:sherpa-onnx:all": "node scripts/download-sherpa-onnx.js --all", "download:yt-dlp": "node scripts/download-yt-dlp.js --current", "download:yt-dlp:all": "node scripts/download-yt-dlp.js --all", "download:nircmd": "node scripts/download-nircmd.js", "download:windows-fast-paste": "node scripts/download-windows-fast-paste.js", "download:windows-key-listener": "node scripts/download-windows-key-listener.js", "download:windows-mic-listener": "node scripts/download-windows-mic-listener.js", "download:windows-system-audio-helper": "node scripts/download-windows-system-audio-helper.js", "download:meeting-aec-helper": "node scripts/download-meeting-aec-helper.js --current", "download:meeting-aec-helper:all": "node scripts/download-meeting-aec-helper.js --all", "download:qdrant": "node scripts/download-qdrant.js --current", "download:qdrant:all": "node scripts/download-qdrant.js --all", "download:embedding-model": "node scripts/download-minilm.js", "download:diarization-models": "node scripts/download-diarization-models.js", "download:whisper-vad-model": "node scripts/download-whisper-vad-model.js", "download:brand-fonts": "node scripts/download-brand-fonts.js", "format:js": "eslint . --fix && cd src && eslint . --fix && prettier --write \"**/*.{js,jsx,ts,tsx,json,css,md}\"", "format": "npm run format:js", "format:check": "eslint . && cd src && eslint . && prettier --check \"**/*.{js,jsx,ts,tsx,json,css,md}\"", "lint": "eslint . && cd src && eslint .", "test": "node --import tsx --test \"test/**/*.test.js\"", "typecheck": "cd src && tsc --noEmit", "quality-check": "npm run model-registry:verify && npm run format:check && npm run typecheck", "i18n:check": "node scripts/check-i18n.js", "preview": "cd src && vite preview", "clean": "node cleanup.js", "model-registry:verify": "node scripts/sync-model-registry.mjs --check", "model-registry:sync": "node scripts/sync-model-registry.mjs", "model-registry:release-check": "node scripts/sync-model-registry.mjs --release-check" }, "keywords": [ "dictation", "speech-to-text", "whisper", "whisper.cpp", "electron", "desktop-app" ], "author": { "name": "OpenWhispr Team", "email": "support@openwhispr.com" }, "license": "MIT", "devDependencies": { "@electron/notarize": "^3.0.1", "@eslint/js": "^10.0.1", "@tailwindcss/vite": "^4.2.2", "@types/canvas-confetti": "^1.9.0", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.2", "@vitejs/plugin-react": "^6.0.1", "autoprefixer": "^10.5.0", "concurrently": "^10.0.3", "cross-env": "^10.0.0", "electron": "^43.8.3", "electron-builder": "^26.4.0", "emojibase-data": "^17.0.0", "eslint": "^10.7.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.2", "espree": "^11.2.0", "globals": "17.5.0", "happy-dom": "^21.0.4", "postcss": "^8.5.10", "prettier": "^3.8.3", "tailwindcss": "^4.1.10", "tsx": "^4.23.1", "typescript": "^6.0.2", "typescript-eslint": "^8.58.1", "vite": "^8.1.6" }, "dependencies": { "@ai-sdk/amazon-bedrock": "^4.0.129", "@ai-sdk/anthropic": "^3.0.58", "@ai-sdk/azure": "^3.0.53", "@ai-sdk/google": "^3.0.43", "@ai-sdk/google-vertex": "^4.0.108", "@ai-sdk/groq": "^3.0.29", "@ai-sdk/openai": "^3.0.41", "@ai-sdk/provider": "^3.0.14", "@aws-sdk/client-bedrock": "^3.1090.0", "@aws-sdk/credential-providers": "^3.1152.0", "@better-auth/sso": "1.7.14", "@fontsource-variable/caveat": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@homebridge/dbus-native": "^0.7.9", "@napi-rs/keyring": "^1.3.0", "@qdrant/js-client-rest": "^1.12.0", "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-progress": "^1.2.1", "@radix-ui/react-select": "^2.2.5", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.2.1", "@tanstack/react-virtual": "^3.13.2", "@tiptap/core": "3.31.3", "@tiptap/extension-bubble-menu": "3.31.3", "@tiptap/extension-floating-menu": "3.31.3", "@tiptap/extension-horizontal-rule": "3.31.3", "@tiptap/extension-mention": "3.31.3", "@tiptap/extension-placeholder": "3.31.3", "@tiptap/extension-table": "3.31.3", "@tiptap/extension-task-item": "3.31.3", "@tiptap/extension-task-list": "3.31.3", "@tiptap/pm": "3.31.3", "@tiptap/react": "3.31.3", "@tiptap/starter-kit": "3.31.3", "@tiptap/suggestion": "3.31.3", "agent-base": "^7.1.4", "ai": "^6.0.116", "better-auth": "1.7.14", "better-sqlite3": "12.11.1", "canvas-confetti": "^1.9.4", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "dotenv": "^17.4.1", "electron-updater": "^6.6.2", "ffmpeg-static": "^5.2.0", "flatted": "^3.4.4", "https-proxy-agent": "^7.0.6", "i18next": "^26.3.6", "js-yaml": "^5.5.0", "kysely": "^0.28.17", "object-assign": "^4.1.1", "onnxruntime-node": "^1.21.0", "opencc-js": "^1.4.1", "ps-list": "^9.0.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-i18next": "^17.0.10", "react-markdown": "^10.1.0", "remark-gfm": "^4.0.1", "shadcn-ui": "^0.9.5", "tailwind-merge": "^3.3.1", "tar": "^7.5.22", "tinfoil": "^1.1.8", "tiptap-markdown": "^0.9.0", "tw-animate-css": "^1.3.4", "unbzip2-stream": "^1.4.3", "unzipper": "^0.12.3", "ws": "8.21.0", "zod": "^4.6.7", "zustand": "^5.0.11" }, "overrides": { "adm-zip": "^0.6.1", "@tiptap/extension-blockquote": "3.31.3", "@tiptap/extension-bold": "3.31.3", "@tiptap/extension-bubble-menu": "3.31.3", "@tiptap/extension-bullet-list": "3.31.3", "@tiptap/extension-code": "3.31.3", "@tiptap/extension-code-block": "3.31.3", "@tiptap/extension-document": "3.31.3", "@tiptap/extension-dropcursor": "3.31.3", "@tiptap/extension-floating-menu": "3.31.3", "@tiptap/extension-gapcursor": "3.31.3", "@tiptap/extension-hard-break": "3.31.3", "@tiptap/extension-heading": "3.31.3", "@tiptap/extension-horizontal-rule": "3.31.3", "@tiptap/extension-italic": "3.31.3", "@tiptap/extension-link": "3.31.3", "@tiptap/extension-list": "3.31.3", "@tiptap/extension-list-item": "3.31.3", "@tiptap/extension-list-keymap": "3.31.3", "@tiptap/extension-ordered-list": "3.31.3", "@tiptap/extension-paragraph": "3.31.3", "@tiptap/extension-strike": "3.31.3", "@tiptap/extension-text": "3.31.3", "@tiptap/extension-underline": "3.31.3", "@tiptap/extensions": "3.31.3", "@tiptap/pm": "3.31.3", "@xmldom/xmldom@^0.8.0": "0.8.15", "fast-xml-builder": "1.2.0", "ip-address": "10.2.0", "markdown-it": "14.3.3", "shell-quote": "1.12.0", "tmp": "0.2.7" } }