- Local terminal (node-pty) + SSH sessions (ssh2) with unified data plane - dockview split panes, per-group '+' tab bar button, layout templates - Session replay buffer (late-subscriber catch-up), host key pinning, credential encryption via safeStorage - 12 builtin themes + custom theme editor, system font enumeration - Keyword highlighting: regex rules with priority, ANSI truecolor injection, chunk-boundary-safe stream (carry-over of partial escape sequences) - Dark antd theme app-wide, settings dialog redesign, error boundary - Tests: ssh loopback, session e2e, highlight split-chunk regression
41 lines
1.1 KiB
JSON
41 lines
1.1 KiB
JSON
{
|
|
"name": "open-terminal",
|
|
"productName": "OpenTerminal",
|
|
"version": "0.1.0",
|
|
"description": "Terminal with split panes, themes and fonts (XTerminal-inspired)",
|
|
"main": "out/main/index.js",
|
|
"author": "Bill",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "electron-vite dev",
|
|
"build": "electron-vite build",
|
|
"preview": "electron-vite preview",
|
|
"typecheck": "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.web.json"
|
|
},
|
|
"dependencies": {
|
|
"@lydell/node-pty": "^1.2.0-beta.15",
|
|
"@xterm/addon-fit": "^0.11.0",
|
|
"@xterm/addon-search": "^0.16.0",
|
|
"@xterm/addon-serialize": "^0.14.0",
|
|
"@xterm/addon-webgl": "^0.19.0",
|
|
"@xterm/xterm": "^6.0.0",
|
|
"antd": "^6.6.2",
|
|
"dockview-react": "^8.2.0",
|
|
"font-list": "^2.1.0",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"ssh2": "^1.17.0",
|
|
"zustand": "^5.0.15"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^24.0.0",
|
|
"@types/react": "^19.2.0",
|
|
"@types/react-dom": "^19.2.0",
|
|
"@vitejs/plugin-react": "^5.0.0",
|
|
"electron": "^44.2.0",
|
|
"electron-vite": "^5.0.0",
|
|
"typescript": "~5.9.0",
|
|
"vite": "^7.0.0"
|
|
}
|
|
}
|