{"_id":"@carloluisito/omnidesk","_rev":"19-db1b08e014d5e6058c6286ed724c9830","name":"@carloluisito/omnidesk","dist-tags":{"latest":"2.7.1"},"versions":{"1.0.2":{"name":"@carloluisito/omnidesk","version":"1.0.2","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.0.2","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"507b50a613e26bd7e614a262fe35899b0d4554d1","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.0.2.tgz","fileCount":316,"integrity":"sha512-cKjGwlkIWxD+BjiUPaVhJy3jvmDHeUn7vqJcuuZJHrmhXd3RA6pZHAJQ387uTJ0HGu0Qr74ocNThXCqO9j7Zkg==","signatures":[{"sig":"MEUCICKt6Wf5QXyJdXPqajhpGhNNq6QNi7i9g1KHis2NnGsLAiEAjE2H5uwWDnlEynoLaj92QilZ37rs7KFqH2ZChCib6GU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7171346},"main":"dist/main/index.js","gitHead":"f35f9ca7a25c616222d33752a5be98523d74d7de","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.0.2_1772204046461_0.8195540479776533","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@carloluisito/omnidesk","version":"1.0.3","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.0.3","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"6e63351062c2ad6ed3d3691ad0697eccda939414","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.0.3.tgz","fileCount":316,"integrity":"sha512-/I+yplpE0TMLH7mFQcCRA/IwpNVyDZGKnB5uAntl9gkN1d82uz2etYiSfp7YsVkXJBK1uno3+QK7+SSC3toKdA==","signatures":[{"sig":"MEQCICGXwBCiXF+2cx5GAXX848JgDN6Sjs/9z5hFcEmkhW0fAiAc/fMEthGzd6QGKEc7ocAqQOv3k4Mk4CYZMpHrBgXV5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6660726},"main":"dist/main/index.js","gitHead":"a1196fb30b161f08a173da5215db4c876a83e9ba","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.0.3_1772212613045_0.1843630744500364","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@carloluisito/omnidesk","version":"1.0.5","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.0.5","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"1f7a3804b69ab37d494a987f746174b778f6f5be","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.0.5.tgz","fileCount":316,"integrity":"sha512-ylZ4mzVAGJKBEBnky7CoF/K6jPGtbNJYcdH3Hi1qvR/eY+Ujck+BocihOXGxc21mFm/c3HzGgDJwm0zr7uzq7Q==","signatures":[{"sig":"MEUCIEpaRm//MbNyfuR7yrti0U22HZ57o93ZS2dhSsvQYLpZAiEA5a1exML94zj5vF1ryOAcvH8LlP/wddCOgWg3qSR3PEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6661593},"main":"dist/main/index.js","gitHead":"626c9a1c10b8e769e2e63dbb68392588e0034196","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.0.5_1773166867891_0.5942624459414243","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@carloluisito/omnidesk","version":"1.1.0","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.1.0","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"da191953516fa4173dee6e3ba59b8e9927efb901","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.1.0.tgz","fileCount":325,"integrity":"sha512-bb3AsNVAKKaDJCikKByyUr2J0O9jY9QIybFYNCWfqayvAxfGUM6A9RKuTbXiOVjyTfF7fhVBLH45MvZAMzmr1Q==","signatures":[{"sig":"MEUCIEfV6SFOxYy8f7DciI/mJ5saFZIRNMQ9PRhRG6f6QkGqAiEArIDulaD5okiLFKqewe1+18E2oWPf/XJEwC7i7GcSdBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7119628},"main":"dist/main/index.js","gitHead":"e9354b873a9e9533092b9e436a6cd7cc089d6695","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.1.0_1774231413658_0.23653386969363077","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@carloluisito/omnidesk","version":"1.1.1","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.1.1","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"f5f30eb8f2c554fafb069a916d41e46fb864c151","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.1.1.tgz","fileCount":319,"integrity":"sha512-WIp2OPgJWzX8g0CZ5p1MJjafcL/HmG9r75EhHFXGqR+vjxajXQgFbyfKqST/1yQ560yekK0x1wc0iV17ZEz1KA==","signatures":[{"sig":"MEQCIG11/P1dzQsrqVSrhlhm4N3f7iJ9DDOTHfF0TyjKrpB+AiALUJGIMqlmx6W6McbbtBTB8euMML6H1mZ5MVRXaPLzGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6555835},"main":"dist/main/index.js","gitHead":"de9d2f7fdeac731a734dc25545a145ef229cce65","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.1.1_1774380123960_0.4955606849308416","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@carloluisito/omnidesk","version":"1.1.2","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.1.2","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"5367eaff5035026f635302d065b98d9ac6fcb5dc","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.1.2.tgz","fileCount":319,"integrity":"sha512-I/0d/6od7C8wAgIPBGyBTFCOyjshtta/6QybN1n7NjKwCYJkUvjCwAiCgUjcre+GPJcWxW+Uz1kWhZNN7O6hbA==","signatures":[{"sig":"MEUCIQDUVJ+osxW2ojrxoAkFBwZJ+pfVRtqYP12EPs4GJ/osTgIgZgxnZrPK/pM+n4p3NH6FDd2Aq9O3fSa5y+Sx2GNE5hU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6084630},"main":"dist/main/index.js","gitHead":"0b9e9e1f42c29f1385dcf6227c42556d7b5d93d9","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","electron-updater":"^6.8.3","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.1.2_1774384952714_0.7500766310394382","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@carloluisito/omnidesk","version":"1.1.3","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.1.3","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"4ecc48dfd56682d247b55cc3cf11b2d15187d4a1","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.1.3.tgz","fileCount":319,"integrity":"sha512-M5rh9tlF+cyd2ztSRQxYxMQceLyYw8+YCBP6DVC0dPmB8uHUJIANc2Uskim0txLuAXNwlM17BoJKErlwj/rNGA==","signatures":[{"sig":"MEQCIF+GvIga7H1fFYaMh1CNz6nKCtGmEr1Nk8M/tqdMvC5zAiBlzY6Mt4eHpwy/9d64sfmiRaTw0TOfKgTeHa7gGqwjKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6085267},"main":"dist/main/index.js","gitHead":"2190c7e57902ca76290cd5d943f2d5221503dd77","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","electron-updater":"^6.8.3","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.1.3_1774477811051_0.008966220431221528","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@carloluisito/omnidesk","version":"1.1.4","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.1.4","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"1f19d167a852db56979673b0162d1b1bc36a1657","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.1.4.tgz","fileCount":319,"integrity":"sha512-W83fiOHRGxuDJjl0aoN3PFfB1vIkrsqhRQxd5AJN3PvbM0yb4FaJcjVVyVZ94eHFimOM/uclssGMpw/Ua360rg==","signatures":[{"sig":"MEUCIEvVe4j4o4Ya3oqVzlf5odiUHcyiMlArjLyNWD98En+gAiEA7dqgseq4d7zk1eJ/1QVwK1kekUkqSNoQ3JlUy9EpxAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6085548},"main":"dist/main/index.js","gitHead":"cdd7ae7143e6c49ad678a5127953b521dae42e30","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","electron-updater":"^6.8.3","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.1.4_1774479499063_0.9118586382558147","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@carloluisito/omnidesk","version":"1.1.5","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.1.5","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"5b267328ebc22bcfdc2f1e95ad68e71ddb97efc3","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.1.5.tgz","fileCount":319,"integrity":"sha512-sn2QY3jB9npFO3bsFMKbB7ZRnskMlxozXZe5W1w8exv26Sq87zxk9+2v39ITinfgFS+FySvTaWkdjhduTad3kA==","signatures":[{"sig":"MEQCIH2MpDrxqVaghDnZWLJExmY7mSwtcGTRGnNkPznUT6CKAiBDrwiYlwaTl8M1NBN2PlPlvCsMRw/YxJb53so8F8EH/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6085668},"main":"dist/main/index.js","gitHead":"5350fbc3f94103e3d524b62686671822ac10e620","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","electron-updater":"^6.8.3","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.1.5_1774480559837_0.5834070488836376","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@carloluisito/omnidesk","version":"1.2.0","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.2.0","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"b836e160c8cf6ded900c2bdc0f38fa731579d909","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.2.0.tgz","fileCount":333,"integrity":"sha512-Fw9temTtVAhw1J2aALlXxmqKaEdMmdyoa22ua5c5NGEob0UjD3C3puR+V6sudTQT4aJDoaF1s0NxZvdxbvGQ2A==","signatures":[{"sig":"MEUCIA4jnhPAv6ArO1gOSMP6eNLyCZJnFsenA3jVqz2E1anmAiEAxGTONNEBYk6/NIRh2riyYwcbl75SX3CysQa2+9H+/v8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6381589},"main":"dist/main/index.js","gitHead":"2e6d57c07cabfbfdc126d1945e0a07734ebde39d","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","electron-updater":"^6.8.3","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.2.0_1774632863371_0.6603767495919943","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@carloluisito/omnidesk","version":"1.2.1","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@1.2.1","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"b3943bc35350b290b82565b691ddf0a7b5399097","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-1.2.1.tgz","fileCount":333,"integrity":"sha512-cbQeZwdDLQJtZSNvoCKpfEF3I/+8EO4j1q2J3c8yb1yTOmrb2/RHI36uxu435kVNMQEWKv4Tm3w309k1xvh2CA==","signatures":[{"sig":"MEUCIBN+OrWbOGKSoP5oBn3ihLrE0DOEkF/kgzRi92XpP8LtAiEA5NtuhkbDufipYcR/5ydbTnno98CuUNDqnZEng/mq4rc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6383271},"main":"dist/main/index.js","gitHead":"07153408347e5087ca171445dd39bc3c171899a2","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.19.0","uuid":"^9.0.0","xterm":"^5.3.0","node-pty":"^1.2.0-beta.11","lucide-react":"^0.563.0","@xyflow/react":"^12.10.0","xterm-addon-fit":"^0.8.0","electron-updater":"^6.8.3","xterm-addon-web-links":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_1.2.1_1775844513190_0.20058248411610635","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@carloluisito/omnidesk","version":"2.3.1","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@2.3.1","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"1e739698e812f846eed2267d29b1d939afeef950","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.3.1.tgz","fileCount":297,"integrity":"sha512-WZY58sLNUtezStQ4W93iq6hGvDeWRa45/+Nj2SNWlH27geuxHHyJrIXgcLez2uUfqAhhsIZsf/hm4XayvBd/Ug==","signatures":[{"sig":"MEQCIA7HLl5pKV5nUIYQwVeslqLh0+2NLMa/no1nsVBYqhyxAiAqN7dlU1zTpZYtkD7ltAKEgtL1K+zcej55s1Ia/bbobw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2927388},"main":"dist/main/index.js","gitHead":"1ec6c4421f11f0340c06a0e4e80e398af37036bc","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","uuid":"^9.0.0","qrcode":"^1.5.4","node-pty":"^1.2.0-beta.11","@xterm/xterm":"^5.5.0","lucide-react":"^0.563.0","@xterm/addon-fit":"^0.10.0","electron-updater":"^6.8.3","@xterm/addon-web-links":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@types/qrcode":"^1.5.6","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_2.3.1_1783621678081_0.3797819760822625","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@carloluisito/omnidesk","version":"2.3.2","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@2.3.2","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"a0dbd22dafac06105ce0c7e57323eeda470fd80f","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.3.2.tgz","fileCount":299,"integrity":"sha512-guN9bvAZqqlXCGHLwFbA3qFm+mAfDUeHHQksH1KucGe4LLSK/24JrRKdEtp28HD+5CRq0knVXOd6n/TnEq2fvw==","signatures":[{"sig":"MEQCIBGMWdQYDvGFbDeU3sft2y+72l79ufrWSKAlaIjktUq6AiAA5krBvy8d6ECfry84Dd5PgsbFN0AQLvWTJFOhuLXMsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2952724},"main":"dist/main/index.js","gitHead":"60640b60045e0974984f3b598de872f0eea0cab8","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","uuid":"^9.0.0","qrcode":"^1.5.4","node-pty":"^1.2.0-beta.11","@xterm/xterm":"^5.5.0","lucide-react":"^0.563.0","@xterm/addon-fit":"^0.10.0","electron-updater":"^6.8.3","@xterm/addon-web-links":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@types/qrcode":"^1.5.6","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_2.3.2_1783659223949_0.741987841957406","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@carloluisito/omnidesk","version":"2.4.0","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@2.4.0","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"9bce76c9926d941b040fbc27e4d1ca1684cec535","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.4.0.tgz","fileCount":332,"integrity":"sha512-8mfobWGylDmRqQURohXx3wVonCcyFyEAxFcjNi2tF5LKGV+eRNV/zpDEH7ZDurPleOqsetUq03G2AmCL0/5IRQ==","signatures":[{"sig":"MEQCIFcQ6wWzSYu76QdYGQ4HmuPnkvW0n6FAV8ia7AeYhWhNAiAfnolFovWdYZFacn/1Crnc2LGIdhAyDf4mCbbzaHxT6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3097230},"main":"dist/main/index.js","gitHead":"5d748343343f7b1138df0d1c9e8f3853ecfff1ab","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","uuid":"^9.0.0","qrcode":"^1.5.4","node-pty":"^1.2.0-beta.11","@xterm/xterm":"^5.5.0","lucide-react":"^0.563.0","@xterm/addon-fit":"^0.10.0","electron-updater":"^6.8.3","@xenova/transformers":"^2.17.2","@xterm/addon-web-links":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@types/qrcode":"^1.5.6","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_2.4.0_1784346594071_0.7525607981964597","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@carloluisito/omnidesk","version":"2.5.0","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@2.5.0","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"5ba365b28188b2fe7d31c55b95886f5004d9d438","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.5.0.tgz","fileCount":361,"integrity":"sha512-tQpwWFrdKMjvuNJVjbir73zOpx1wMku5VIz2CFmt9/TEUcM5QLpj+mhioI1uWlMKAhjXPtBGohapFl/mXXzLIw==","signatures":[{"sig":"MEUCIQCiBS3Jt8pGRej/xc+GepOFR/WF3DbaLVIEwemKQWObXgIgLu/BYzgpqM4/NEyQyp0adWKIFPpuB6W64876cYtiELQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3327210},"main":"dist/main/index.js","gitHead":"c0e66a7178faee1046241d87da429ece3e6e563c","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node -e \"console.log('\\n⚠️  OmniDesk is a desktop application.\\n\\nYou\\'ve installed the SOURCE CODE. To get the INSTALLABLE APP:\\n→ https://github.com/carloluisito/omnidesk/releases\\n\\nTo build from source: npm run package\\n')\"","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","uuid":"^9.0.0","qrcode":"^1.5.4","node-pty":"^1.2.0-beta.11","@xterm/xterm":"^5.5.0","lucide-react":"^0.563.0","@xterm/addon-fit":"^0.10.0","electron-updater":"^6.8.3","@xenova/transformers":"^2.17.2","@xterm/addon-web-links":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@types/qrcode":"^1.5.6","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_2.5.0_1784470121458_0.9197275508521492","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@carloluisito/omnidesk","version":"2.6.0","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@2.6.0","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"59a68b7610977a476f2aa3946547d6c82416458e","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.6.0.tgz","fileCount":419,"integrity":"sha512-vbRyitctjSO6PSCIuypRG4HQrCAkuWjobM6yhVZoK8ICN27lJVXCcs65uacywilKysfK/eHkYIEY+7xksl3RBw==","signatures":[{"sig":"MEQCIFIaM3Cmk5Qc+20U5C6JaqbCIZMQAGr8yCVudVUkIOgpAiBrMrBLWbQfoFcOMdIQ0+n/X3L/kdSw2fPeM+zvhNtnXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3751032},"main":"dist/main/index.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"8eb75bf8409a44d77a0eb283b4ac1c05b16d54c7","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node scripts/postinstall.mjs","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","uuid":"^9.0.0","qrcode":"^1.5.4","node-pty":"^1.2.0-beta.11","@xterm/xterm":"^5.5.0","lucide-react":"^0.563.0","@xterm/addon-fit":"^0.10.0","electron-updater":"^6.8.3","@xenova/transformers":"^2.17.2","@xterm/addon-web-links":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@types/qrcode":"^1.5.6","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_2.6.0_1784644855955_0.6229807837813277","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@carloluisito/omnidesk","version":"2.6.1","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@2.6.1","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"b896f79437fb8569cc9949f0f6b585c9d0496b5b","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.6.1.tgz","fileCount":425,"integrity":"sha512-ET8nt4I6lHCPR3g9wLrGccodDjClZi9iMgVzxgXNcoMATnt35Cqu2riBfTT8boAd9GQ+xI+xe/9g+Av0/5AXMQ==","signatures":[{"sig":"MEUCIQCNXyfAX06tmzFHYgb1YpxsJ7M8tTQJmNTTsLbyUn3o4AIgXGCSsC5IX/VmSM7FJ+dlccj1bdGVeEAu4Jn1nmwXwrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3827819},"main":"dist/main/index.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"aa6735b71e8992c5668d373162a8d47df609c3c7","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node scripts/postinstall.mjs","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","uuid":"^9.0.0","qrcode":"^1.5.4","node-pty":"^1.2.0-beta.11","@xterm/xterm":"^5.5.0","lucide-react":"^0.563.0","@xterm/addon-fit":"^0.10.0","electron-updater":"^6.8.3","@xenova/transformers":"^2.17.2","@xterm/addon-web-links":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@types/qrcode":"^1.5.6","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_2.6.1_1784691229916_0.3984194173284863","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@carloluisito/omnidesk","version":"2.7.0","author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","_id":"@carloluisito/omnidesk@2.7.0","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"homepage":"https://github.com/carloluisito/omnidesk#readme","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"dist":{"shasum":"6b34a92777873da473ae3db542ba225f946ea895","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.7.0.tgz","fileCount":449,"integrity":"sha512-jvsLVfZPH5R8Y4Yz0MCZRdZWRT+o0AnZm1fSsGTU7j/Iua6xXpDnPw5a/gFytmSZUY3e97QJOcN77prB95PWCg==","signatures":[{"sig":"MEUCIQCBp96FrqeCYoKGsf0e4PVSvL1RSmaN4GWZXPdPHOK7NwIgUinkWoGhI+DbpO3jsHiyw9Tt6jK2n9AiiWltP+2Toqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4081335},"main":"dist/main/index.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"3d29166c025f7ed13c3e938e5d9f51244f015a3f","scripts":{"dev":"vite","test":"vitest run --config vitest.workspace.ts","build":"tsc && vite build","start":"npm run build && npm run build:electron && electron .","package":"npm run build && npm run build:electron && electron-builder","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml","test:e2e":"playwright test","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:watch":"vitest --config vitest.workspace.ts","package:mac":"npm run package -- --mac","package:win":"npm run package -- --win","postinstall":"node scripts/postinstall.mjs","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package:linux":"npm run package -- --linux","test:coverage":"vitest run --config vitest.workspace.ts --coverage","build:electron":"tsc -p tsconfig.main.json","electron:watch":"tsc -p tsconfig.main.json && electron .","test:integration":"vitest run --config vitest.workspace.ts --project renderer"},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"repository":{"url":"git+https://github.com/carloluisito/omnidesk.git","type":"git"},"_npmVersion":"10.8.2","description":"A multi-provider Electron desktop application for AI coding CLIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","uuid":"^9.0.0","qrcode":"^1.5.4","node-pty":"^1.2.0-beta.11","@xterm/xterm":"^5.5.0","lucide-react":"^0.563.0","@xterm/headless":"5.5.0","@xterm/addon-fit":"^0.10.0","electron-updater":"^6.8.3","@xenova/transformers":"^2.17.2","@xterm/addon-web-links":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^28.0.0","react":"^18.2.0","sharp":"^0.34.5","vitest":"^4.0.18","postcss":"^8.4.32","electron":"^28.0.0","@types/ws":"^8.18.1","react-dom":"^18.2.0","png-to-ico":"^3.0.1","typescript":"^5.3.0","@types/node":"^20.10.0","@types/uuid":"^9.0.0","tailwindcss":"^3.3.6","@types/react":"^18.2.0","autoprefixer":"^10.4.16","concurrently":"^8.2.2","@types/qrcode":"^1.5.6","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.0","electron-builder":"^24.9.1","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^4.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"_npmOperationalInternal":{"tmp":"tmp/omnidesk_2.7.0_1785156105057_0.1556676961812382","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@carloluisito/omnidesk","version":"2.7.1","description":"A multi-provider Electron desktop application for AI coding CLIs","repository":{"type":"git","url":"git+https://github.com/carloluisito/omnidesk.git"},"main":"dist/main/index.js","scripts":{"postinstall":"node scripts/postinstall.mjs","dev":"vite","build":"tsc && vite build","build:electron":"tsc -p tsconfig.main.json","electron:dev":"concurrently \"vite\" \"npm run electron:watch\"","electron:watch":"tsc -p tsconfig.main.json && electron .","start":"npm run build && npm run build:electron && electron .","gen:pwa-icons":"node scripts/gen-pwa-icons.mjs","package":"npm run build && npm run build:electron && electron-builder","package:win":"npm run package -- --win","package:mac":"npm run package -- --mac","package:linux":"npm run package -- --linux","test":"vitest run --config vitest.workspace.ts","test:watch":"vitest --config vitest.workspace.ts","test:unit":"vitest run --config vitest.workspace.ts --project shared --project main","test:integration":"vitest run --config vitest.workspace.ts --project renderer","test:e2e":"playwright test","test:coverage":"vitest run --config vitest.workspace.ts --coverage","test:ci":"vitest run --config vitest.workspace.ts --coverage --reporter=default --reporter=junit --outputFile=test-results.xml"},"dependencies":{"@xenova/transformers":"^2.17.2","@xterm/addon-fit":"^0.10.0","@xterm/addon-web-links":"^0.11.0","@xterm/headless":"5.5.0","@xterm/xterm":"^5.5.0","electron-updater":"^6.8.3","lucide-react":"^0.563.0","node-pty":"^1.2.0-beta.11","qrcode":"^1.5.4","uuid":"^9.0.0","ws":"^8.21.0"},"devDependencies":{"@playwright/test":"^1.58.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^20.10.0","@types/qrcode":"^1.5.6","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","@types/uuid":"^9.0.0","@types/ws":"^8.18.1","@vitejs/plugin-react":"^4.2.0","@vitest/coverage-v8":"^4.0.18","autoprefixer":"^10.4.16","concurrently":"^8.2.2","electron":"^28.0.0","electron-builder":"^24.9.1","jsdom":"^28.0.0","png-to-ico":"^3.0.1","postcss":"^8.4.32","react":"^18.2.0","react-dom":"^18.2.0","sharp":"^0.34.5","tailwindcss":"^3.3.6","typescript":"^5.3.0","vite":"^5.0.0","vitest":"^4.0.18"},"author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","engines":{"node":">=20.0.0","npm":">=10.0.0"},"_id":"@carloluisito/omnidesk@2.7.1","gitHead":"95f0b96dc8024677b02ca8ca7d4e92b2d66db788","bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"homepage":"https://github.com/carloluisito/omnidesk#readme","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Vc5uzn+66FLXE6hqJhrkH/djOCDnUb9/xRqgW0c2YzGRqkhjT22IeHMAySsfr+RMsfAle++K/FwkDmQczpB2IQ==","shasum":"7847e7f2fc7bab7ef8d26dab56f06d13f537f1bf","tarball":"https://registry.npmjs.org/@carloluisito/omnidesk/-/omnidesk-2.7.1.tgz","fileCount":450,"unpackedSize":4097146,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCACDC0znCqeMeKrBRBE99xCmC3+J6d/o0mdQMhdeuh9gIgIiHVc5jP7sH1KyK2YxVJK3D+FKWGErn6XzzJeIXV4ro="}]},"_npmUser":{"name":"carloluisito","email":"carlo.adap@hotmail.com"},"directories":{},"maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/omnidesk_2.7.1_1785172635872_0.2763260239233387"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-27T14:54:06.332Z","modified":"2026-07-27T17:17:16.251Z","1.0.2":"2026-02-27T14:54:06.832Z","1.0.3":"2026-02-27T17:16:53.323Z","1.0.5":"2026-03-10T18:21:08.138Z","1.1.0":"2026-03-23T02:03:33.884Z","1.1.1":"2026-03-24T19:22:04.210Z","1.1.2":"2026-03-24T20:42:32.936Z","1.1.3":"2026-03-25T22:30:11.326Z","1.1.4":"2026-03-25T22:58:19.348Z","1.1.5":"2026-03-25T23:16:00.073Z","1.2.0":"2026-03-27T17:34:23.603Z","1.2.1":"2026-04-10T18:08:33.425Z","2.3.1":"2026-07-09T18:27:58.325Z","2.3.2":"2026-07-10T04:53:44.160Z","2.4.0":"2026-07-18T03:49:54.294Z","2.5.0":"2026-07-19T14:08:41.658Z","2.6.0":"2026-07-21T14:40:56.160Z","2.6.1":"2026-07-22T03:33:50.125Z","2.7.0":"2026-07-27T12:41:45.235Z","2.7.1":"2026-07-27T17:17:16.104Z"},"bugs":{"url":"https://github.com/carloluisito/omnidesk/issues"},"author":{"name":"Carlo Luisito Adap","email":"carlo.adap@hotmail.com"},"license":"MIT","homepage":"https://github.com/carloluisito/omnidesk#readme","repository":{"type":"git","url":"git+https://github.com/carloluisito/omnidesk.git"},"description":"A multi-provider Electron desktop application for AI coding CLIs","maintainers":[{"name":"carloluisito","email":"carlo.adap@hotmail.com"}],"readme":"# OmniDesk\n\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)\n![Version](https://img.shields.io/github/package-json/v/carloluisito/omnidesk)\n\n> A multi-provider desktop terminal for AI coding CLIs, organized around a flat **repo → session** workflow.\n\n**OmniDesk** is an Electron-based desktop application that wraps AI coding CLIs (Claude Code, Codex CLI, and more) in a clean, fast terminal shell. Switch repositories from a left activity bar, navigate the sessions inside each repo from a session rail, and run every session in a full xterm.js terminal — focus a single session, or view them all at once in a grid.\n\n![Main Screen](docs/main-screen.png)\n\n---\n\n## Screenshots\n\n<table>\n<tr>\n<td width=\"50%\">\n\n**Grid View** — See every session in a repo at once as live tiles, then click to focus.\n\n![Grid View](docs/grid-view.png)\n\n</td>\n<td width=\"50%\">\n\n**New Session** — Pick a repo, a session type (agent or terminal), provider, worktree mode, and (for Claude) a per-session launch mode.\n\n![New Session](docs/new-session.png)\n\n</td>\n</tr>\n<tr>\n<td width=\"50%\">\n\n**Command Palette** — `Ctrl/Cmd+K` for quick actions: new session, switch view, toggle inspector, add repo.\n\n![Command Palette](docs/command-palette.png)\n\n</td>\n<td width=\"50%\">\n\n**Repo Switcher** — `Ctrl/Cmd+Shift+K` to jump between repositories and their sessions.\n\n![Repo Switcher](docs/repo-switcher.png)\n\n</td>\n</tr>\n</table>\n\n---\n\n## Features\n\n### Repo → Session Workflow\n- **Activity bar** — switch between repositories from the left rail; drag repos together to form groups\n- **Session rail** — per-repo list of sessions for fast navigation\n- **Focus & Grid modes** — focus a single session full-screen, or view all sessions in a repo as live tiles\n- **Right inspector** — collapsible panel with per-session details (provider, branch, working directory)\n\n### Multi-Session Management\n- **Multiple concurrent sessions** per repository\n- **Named sessions** for better organization — and sessions you don't name **auto-rename to the agent's live task summary** (sourced from the CLI's terminal title; a name you type, at creation or via rename, is never touched)\n- **Session persistence** — sessions are restored after an app restart\n- **Pre-warmed session pool** for fast session creation\n- **Per-session launch mode picker** (Claude) — choose between `claude`, `claude --dangerously-skip-permissions`, or `claude agents` (the Claude Code 2.1.139+ background-session TUI) at creation time, gated by an automatic CLI availability probe\n- **Plain terminal sessions** — pick the **Terminal** session type to run an ordinary shell (no AI CLI) for `git`, builds, and everyday commands. Create one standalone, or spawn one seeded to an agent's working directory via **Open terminal here** on the session context menu\n\n### Multi-Provider Support\n- **Pluggable provider layer** — swap between Claude Code, Codex CLI, and future providers\n- **Provider selector** in the new-session sheet — choose Claude or Codex for each agent session\n- **Provider badges** on sessions to distinguish non-default providers\n- **Auto-detection** — providers register automatically based on installed CLI binaries\n\n### Worktree-Aware Sessions\n- **Open any folder** — add a git repository or a plain (non-git) folder; when the folder isn't a repo, OmniDesk offers to initialize git\n- **Create a session on a new git worktree/branch, an existing branch, or the current checkout**\n- **Background git operations** — status, branches, and worktree management run in the main process (no separate Git panel to manage)\n- **Optional cleanup** — remove the worktree/branch when you close the session\n\n### Command Palette & Repo Switcher\n- **Command palette** (`Ctrl/Cmd+K`) for quick actions — new session, switch to Focus/Grid, toggle the inspector, add a repository\n- **Search sessions across every open repo** — the palette matches session names from all your open repositories at once, so you can jump straight to any session without switching repos first\n- **Repo switcher** (`Ctrl/Cmd+Shift+K`) to jump between repositories and their sessions\n\n### Attention Cockpit\n- **Live session status** on the rail — each session is classified (`working` / `awaiting-approval` / `errored` / `done` / `idle`) rather than a single \"running\" state\n- **\"Who needs you\" cockpit** (`Ctrl/Cmd+J`) — a cross-repo overlay listing sessions that need attention, with Jump/Dismiss (and a Ship-it shortcut for finished sessions), **how long each session has been waiting**, keyboard shortcuts with on-row hints, plus a \"N need you\" pill in the status bar and background toasts for backgrounded sessions\n- **Agent \"needs you\" alerts via the terminal bell** — when an agent CLI rings its bell (Claude Code: turn finished, question waiting), the session is flagged `awaiting-input`, fires a toast with Jump, and counts in the pill. Typing in the session clears it. **Requires the CLI's bell channel** — for Claude Code add `\"preferredNotifChannel\": \"terminal_bell\"` to your `~/.claude/settings.json` (or profile settings)\n- **Current scope** — shell sessions are classified from a rolling output-tail + quiescence timer; agent sessions (Claude Code, Codex) are classified from their **rendered screen content** — a headless `ScreenModel` (`@xterm/headless`) takes settled snapshots of the terminal's alt-screen buffer and feeds them to the provider's `getStateSignals()` table, yielding the same `working` / `awaiting-approval` / `awaiting-input` / `done` / `errored` states as shells. The terminal bell (`BareBellDetector`) still supplies the `awaiting-input` needs-you signal for agents alongside the screen-driven classification.\n\n### Session History & Checkpoints\n- **Session History Explorer** (`Ctrl/Cmd+K → \"Session history…\"`) — browse the transcripts of past sessions, newest first, with the full transcript view for any recorded session\n- **Cross-session content search** — search the *content* of every recorded session at once (debounced, optional case sensitivity) and jump to matches\n- **\"While you were away\" recap** — a per-session digest of what happened since you last looked, shown in the history panel and as a glance row on the live session pane; agent sessions report real approval-prompt and error counts (shell sessions show \"not tracked\" instead of a misleading 0)\n- **Export, delete, stats & retention** — export any transcript as Markdown or JSON, delete individually or all at once, see storage stats, and set a retention policy\n- **Checkpoints panel** (`Ctrl/Cmd+K → \"Checkpoints…\"`) — create named checkpoints of a session's context, edit their details, export them as Markdown/JSON, and delete them\n\n### Quota Awareness\n- **Burn-rate indicator** in the status bar, backed by the Anthropic API quota service\n- **Per-account quota mapping** — track quota separately across multiple Claude accounts on one machine. Set `quotaAccountMap` in settings to an ordered list of `{ pathContains, configDir }` rules; the first rule whose `pathContains` matches a session's working directory (case-insensitive) picks which Claude config directory its quota is read from. With no mapping configured, every session reads `~/.claude` (unchanged default)\n\n### Voice Prompting (Speech-to-Text)\n- **Dictate prompts instead of typing** — click the mic button in the terminal (or press `Ctrl+Shift+Space`) to start recording, click/press again to stop\n- **Fully on-device** — transcription runs a local Whisper model (via transformers.js WASM) in a sandboxed background process; audio never leaves your machine, no cloud service, no API keys\n- **Review before sending** — the transcript appears in an editable overlay so you can fix wording before it's injected into the terminal\n- **Live feedback** — an audio-reactive equalizer while recording, so a muted or dead mic is immediately obvious\n- **Model choice** — pick `tiny.en`, `base.en` (default), or `small.en` from the voice settings panel (`Ctrl/Cmd+K → \"Voice / speech-to-text settings…\"`); the model downloads once, with your consent, and is cached locally\n- Right-click the mic button to hide it; disabled for remote (browser) clients\n\n### Remote Access\n- **Reach OmniDesk from any browser** — the same UI runs on your phone, tablet, or another computer, driving your live sessions\n- **One-click managed tunnel** — OmniDesk runs a Cloudflare tunnel for you (auto-downloads `cloudflared` on request); no manual terminal setup\n- **Live mirror** — output fans out to every connected device; type a prompt anywhere and it shows up everywhere, with terminal history replayed on connect\n- **Token-secured** — binds `127.0.0.1` only and enforces its own access token (cookie + WebSocket check); off by default\n- **One-scan sign-in + installable PWA** — a QR whose link embeds the token signs you in on one scan, and you can **Add to Home Screen / Install** for a full-screen app that stays signed in across launches\n- **Built for touch** — on a phone the UI switches to a focused mobile layout: a drawer to **switch between projects and sessions** (and open a new project) over a full-screen terminal. Tapping the terminal raises the keyboard, and an on-screen key bar sends Esc, Tab, Ctrl-combos, arrows, and newline so you can actually work from a phone\n- Open it from the activity-bar tunnel button or `Ctrl/Cmd+K → \"Remote access…\"`\n\n### Integrations\n- **Get pinged where you already are** — push session alerts out to **Telegram, Slack, Discord, or a generic (HMAC-signed) webhook** when a session needs you: a question is waiting, approval is needed, it errored, or it finished. Alerts are edge-triggered and debounced, so you get a heads-up, not a firehose\n- **Per-event and per-repo control** — toggle which events notify you, and mute noisy repositories individually\n- **Tap the alert, land on the session** — while a remote tunnel is running, notifications carry a deep link that opens the exact session in the remote PWA on your phone\n- **Ship it from a finished session** — turn a completed session into a GitHub PR (via the `gh` CLI): preview, then explicitly create — one PR per branch, never auto-created\n- **Pull work in from GitHub issues** — pick an issue from the palette and OmniDesk opens a new session on a `feat/<n>-<slug>` branch with the issue body pre-loaded as the starting prompt (typed in, never auto-submitted)\n- **Fleet digest** (off by default) — an optional periodic summary of what your sessions are doing, skipped when everything's idle\n- **Test pings + delivery badges** — verify each connector with a one-click test and watch delivery status live\n- Configure it from the activity-bar bolt button or `Ctrl/Cmd+K → \"Integrations…\"`\n\n### Terminal Features\n- **Full xterm.js terminal** with rich text formatting\n- **Clickable links** — URLs are automatically detected and open in your browser\n- **Copy/paste support** with keyboard shortcuts\n- **Newline insertion** — in agent sessions, `Ctrl/Shift/Alt/Cmd+Enter` inserts a literal newline without submitting\n- **Ctrl+C guard** — in agent sessions, a confirmation dialog prevents accidentally exiting the CLI; in plain terminal sessions, `Ctrl+C` passes straight through to interrupt the running command\n- **Kitty keyboard protocol** — accurate key/modifier encoding, negotiated automatically when the running CLI requests it\n- **Obsidian dark theme** with the JetBrains Mono font\n\n---\n\n## Prerequisites\n\nBefore installing OmniDesk, ensure you have:\n\n1. **Node.js 20+** — [Download here](https://nodejs.org/)\n2. **Claude Code CLI** — Install via:\n   ```bash\n   npm install -g @anthropic-ai/claude-code\n   ```\n   Or follow the [official installation guide](https://claude.ai/claude-code)\n3. **Claude API credentials** — OmniDesk reads from `~/.claude/.credentials.json` (set up by Claude CLI)\n\n> **Optional:** install the [Codex CLI](https://github.com/openai/codex) to enable the Codex provider — OmniDesk detects it automatically.\n\n> **Remote Access (optional):** no extra install needed — OmniDesk offers to download `cloudflared` for you when you start the managed tunnel. Requires an internet connection for the Cloudflare tunnel. If you run from source, launch via `npm start` (not a dev command) so the built UI exists for the remote server to serve.\n\n---\n\n## Installation\n\n### Option 1: Download Pre-built Binary (Recommended)\n\nDownload the latest release for your platform from the [Releases](https://github.com/carloluisito/omnidesk/releases) page.\n\n- **Windows**: `.exe` installer\n- **macOS**: `.dmg`\n- **Linux**: `.AppImage` or `.deb`\n\n### Option 2: Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/carloluisito/omnidesk.git\ncd omnidesk\n\n# Install dependencies\nnpm install\n\n# Run in development mode\nnpm run electron:dev\n\n# Or build for production\nnpm run package\n```\n\n**Build for specific platforms:**\n```bash\nnpm run package:win    # Windows\nnpm run package:mac    # macOS\nnpm run package:linux  # Linux\n```\n\nBuilt packages will be in the `release/` directory.\n\n---\n\n## Quick Start\n\n1. **Launch OmniDesk** from your applications menu or run `npm run electron:dev`\n2. **Add a repository** — use the **+** button on the activity bar to clone a repo or open an existing folder\n3. **Create a session** — press `Ctrl/Cmd+N` (or use the **+ New Session** affordance), pick a repo, provider, and worktree mode\n4. **Start working** — type your prompt in the terminal\n5. **Switch views** — `Ctrl/Cmd+1` for Focus (one session), `Ctrl/Cmd+2` for Grid (all sessions)\n6. **Open the command palette** — press `Ctrl/Cmd+K` for quick actions\n\n---\n\n## Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `Ctrl/Cmd+N` | New Session |\n| `Ctrl/Cmd+K` | Command Palette |\n| `Ctrl/Cmd+J` | Attention cockpit (\"who needs you\") |\n| `Ctrl/Cmd+Shift+K` | Repo Switcher |\n| `Ctrl/Cmd+Shift+]` | Next session (active repo) |\n| `Ctrl/Cmd+Shift+[` | Previous session (active repo) |\n| `Ctrl/Cmd+1` | Focus View |\n| `Ctrl/Cmd+2` | Grid View |\n| `Ctrl/Cmd+.` | Toggle Right Inspector |\n| `Ctrl+Shift+Space` | Toggle voice dictation (start/stop; default, configurable in Voice settings) |\n| `Escape` | Close Palette / Sheets |\n| `Ctrl+C` | Session Termination Dialog |\n| `Ctrl/Shift/Alt/Cmd+Enter` | Insert newline (without submitting) |\n\n---\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Framework | Electron 28 |\n| Frontend | React 18 + TypeScript |\n| Terminal | xterm.js + node-pty |\n| Styling | Tailwind CSS (Obsidian theme) |\n| Build | Vite + electron-builder |\n| Testing | Vitest 4 (1418 tests) + Playwright |\n\n---\n\n## Architecture\n\nOmniDesk uses a **3-layer pattern per domain**: Manager (main process) → Hook (renderer) → Components (renderer).\n\n```\n┌─────────────────────────────────────────────┐\n│  Main Process (Node.js)                     │\n│  ~7 managers + IPC handlers + session pool  │\n└──────────────────┬──────────────────────────┘\n                   │ IPC (115 methods)\n┌──────────────────┴──────────────────────────┐\n│  Preload (auto-derived context bridge)      │\n└──────────────────┬──────────────────────────┘\n                   │\n┌──────────────────┴──────────────────────────┐\n│  Renderer (React 18)                        │\n│  Hooks → Shell components → Terminal        │\n└─────────────────────────────────────────────┘\n```\n\nThe **IPC contract** (`src/shared/ipc-contract.ts`) is the single source of truth — one entry auto-derives the channel, the preload bridge method, and the TypeScript types. A **provider abstraction** (`IProvider`) decouples CLI specifics from session management, so adding a new AI CLI is a self-contained provider.\n\n```\nomnidesk/\n├── src/\n│   ├── main/              # Electron main process (~7 managers)\n│   ├── preload/           # Context bridge (auto-derived from contract)\n│   ├── renderer/          # React app (shell components, hooks, utils)\n│   └── shared/            # IPC contract, types, shared utilities\n├── test/                  # Test setup and helpers\n├── e2e/                   # Playwright E2E tests\n├── docs/                  # Documentation and screenshots\n└── .github/workflows/     # CI pipeline\n```\n\nSee [docs/repo-index.md](docs/repo-index.md) for a detailed domain-to-file mapping.\n\n---\n\n## Development\n\n```bash\nnpm install              # Install dependencies\nnpm run electron:dev     # Dev mode with hot reload (renderer)\nnpm test                 # Run all 1418 tests\nnpm run test:watch       # Watch mode\nnpm run test:e2e         # E2E tests (local only — requires a built app)\nnpm run test:coverage    # Coverage report\n```\n\n> **Note:** `npm run build` rebuilds only the renderer. The main process is built separately by `npm run build:electron`. `npm start` chains both before launching Electron — useful before running E2E tests, which load the built `dist/main/index.js`.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines.\n\n---\n\n## Privacy & Security\n\n- **Local-first** — all session data is stored on your machine\n- **No telemetry** — no usage data is collected or transmitted\n- **Minimal external services** — network calls are limited to: Anthropic's API (quota/burn-rate), GitHub (app update checks via `electron-updater`), your configured git remotes (clone/fetch/push), and Hugging Face (one-time, user-consented voice model download). Nothing else is contacted.\n- **Voice stays local** — speech-to-text runs entirely on-device; audio is never uploaded anywhere\n- **Credential security** — reads Claude CLI credentials locally, never logs or stores them\n\nFor more details, see [SECURITY.md](SECURITY.md).\n\n---\n\n## Known Issues\n\n- **Windows**: `cmd.exe` is used as the default shell. Ensure `claude` is in your PATH.\n- **macOS**: Requires macOS 10.13+ (High Sierra or later).\n- **Linux**: May require `libxtst6` and `libnss3` packages.\n\n---\n\n## Contributing\n\n1. **Report bugs** — [Open an issue](https://github.com/carloluisito/omnidesk/issues/new?template=bug_report.md)\n2. **Suggest features** — [Request a feature](https://github.com/carloluisito/omnidesk/issues/new?template=feature_request.md)\n3. **Submit PRs** — See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines\n\nPlease read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.\n\n---\n\n## License\n\nThis project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details.\n\n```\nCopyright (c) 2026 Carlo Luisito Adap\n```\n\n---\n\n## Disclaimer\n\n**OmniDesk is an unofficial community project and is not endorsed, affiliated with, or supported by Anthropic.**\n\nThis is an independent wrapper around the Claude Code CLI. For official support, refer to [Anthropic's documentation](https://claude.ai/claude-code).\n\n---\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/carloluisito/omnidesk/issues)\n- **Security**: See [SECURITY.md](SECURITY.md) for reporting vulnerabilities\n- **Email**: carlo.adap@hotmail.com\n\n---\n\n[![GitHub stars](https://img.shields.io/github/stars/carloluisito/omnidesk?style=social)](https://github.com/carloluisito/omnidesk/stargazers)\n\n**Made with love by [Carlo Luisito Adap](https://github.com/carloluisito)**\n","readmeFilename":"README.md"}