github JavaScript analyzed 66f193d

electerm/electerm

github

📻Free and open-sourced terminal/ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client(Linux, Mac, Windows, Android, HarmonyOS, iOS)

maintainer
electerm
license
MIT
first seen
2026-05-22
last seen
2026-09-05
releases · 30d
8
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 40 tools
transport stdio · streamable-http · http counts 40 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_electerm_bookmark_group
  • add_electerm_bookmark_local
  • add_electerm_bookmark_serial
  • add_electerm_bookmark_ssh
  • add_electerm_bookmark_telnet
  • cancel_electerm_terminal_command
  • close_electerm_tab
  • delete_electerm_bookmark
  • duplicate_electerm_tab
  • edit_electerm_bookmark
  • electerm_sftp_del_file_or_folder
  • electerm_sftp_download
  • electerm_sftp_list
  • electerm_sftp_read_file
  • electerm_sftp_stat
  • electerm_sftp_transfer_history
  • electerm_sftp_transfer_list
  • electerm_sftp_upload
  • electerm_zmodem_download
  • electerm_zmodem_upload
  • execute_electerm_command
  • get_electerm_active_tab
  • get_electerm_bookmark
  • get_electerm_settings
  • get_electerm_terminal_output
  • get_electerm_terminal_selection
  • get_electerm_terminal_status
  • list_electerm_bookmark_groups
  • list_electerm_bookmarks
  • list_electerm_tabs
  • open_electerm_bookmark
  • open_electerm_local_terminal
  • open_electerm_tab_local
  • open_electerm_tab_serial
  • open_electerm_tab_ssh
  • open_electerm_tab_telnet
  • reload_electerm_tab
  • send_electerm_terminal_command
  • switch_electerm_tab
  • wait_for_electerm_terminal_idle
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 66f193d · analyzer v33 · 5h ago

danger signals2

code evidence vv5.3.26 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 755

filesystem 78

  • fs electerm-electerm-66f193d/build/bin/appimage-integration.js :10 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/bin/build-common.js :7 const { writeFileSync, readFileSync } = require('fs')
  • fs electerm-electerm-66f193d/build/bin/build-win-appx.js :3 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/bin/clean-empty-folders.js :3 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/bin/clean-yml.js :2 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/bin/post-install.js :5 const { existsSync } = require('fs')
  • fs electerm-electerm-66f193d/build/bin/prepare.js :46 require('fs').writeFileSync(
  • fs electerm-electerm-66f193d/build/bin/prepublish.js :6 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/bin/publish-electerm-react.js :3 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/bin/pug.js :5 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/bin/upload-file-to-r2.js :1 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/npm/install.js :15 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/npm/utils.js :10 const fs = require('fs')
  • fs electerm-electerm-66f193d/build/vite/common.js :2 import { readFileSync } from 'fs'
  • fs electerm-electerm-66f193d/build/vite/dev-server.js :7 import fs from 'fs'
  • fs electerm-electerm-66f193d/src/app/common/app-props.js :21 require('fs').existsSync(
  • fs electerm-electerm-66f193d/src/app/lib/fs.js :1 const fss = require('fs/promises')
  • fs electerm-electerm-66f193d/src/app/lib/nedb.js :7 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/lib/npm.js :2 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/lib/single-instance.js :7 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/lib/sqlite.js :8 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/lib/storage-key.js :5 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/lib/system-ca.js :9 const { existsSync, readdirSync, readFileSync } = require('fs')
  • fs electerm-electerm-66f193d/src/app/migrate/index.js :10 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/migrate/migrate-1-to-2.js :6 const { existsSync, renameSync } = require('fs')
  • fs electerm-electerm-66f193d/src/app/migrate/v1.3.0.js :11 const { existsSync, unlinkSync, writeFileSync } = require('fs')
  • fs electerm-electerm-66f193d/src/app/server/child-process.js :8 const { writeFileSync, unlinkSync } = require('fs')
  • fs electerm-electerm-66f193d/src/app/server/download-upgrade.js :5 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/server/session-log.js :6 const { existsSync, mkdirSync, createWriteStream } = require('fs')
  • fs electerm-electerm-66f193d/src/app/server/session-ssh.js :525 return require('fs')
  • fs electerm-electerm-66f193d/src/app/server/ssh-known-hosts.js :2 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/server/trzsz.js :4 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/server/xmodem.js :6 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/server/zmodem.js :25 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/upgrade/index.js :10 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/widgets/load-widget.js :3 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/app/widgets/widget-rename.js :1 const fs = require('fs').promises
  • fs electerm-electerm-66f193d/src/app/widgets/widget-ssh-server.js :72 const fs = require('fs')
  • fs electerm-electerm-66f193d/src/client/common/download.jsx :19 const r = await window.fs.writeFile(filePath, text).catch(window.store.onError)
  • fs electerm-electerm-66f193d/src/client/common/fs.js :87 window.fs.readdir(p)
  • fs electerm-electerm-66f193d/src/client/components/batch-op/batch-op-editor.jsx :136 await window.fs.writeFile(tempPath, value)
  • fs electerm-electerm-66f193d/src/client/components/batch-op/batch-op-runner.jsx :54 const content = await window.fs.readFile(filePath)
  • fs electerm-electerm-66f193d/src/client/components/bookmark-form/common/ssh-auth-selector.jsx :31 : await window.fs.readFile(file.filePath)
  • fs electerm-electerm-66f193d/src/client/components/file-transfer/transfer.jsx :487 await window.fs.mkdir(path)
  • fs electerm-electerm-66f193d/src/client/components/quick-commands/quick-command-transport-mod.jsx :15 : await window.fs.readFile(file.filePath)
  • fs electerm-electerm-66f193d/src/client/components/setting-panel/keywords-transport.jsx :12 : await window.fs.readFile(file.filePath)
  • fs electerm-electerm-66f193d/src/client/components/setting-panel/setting-terminal.jsx :144 await window.fs.unlink(testFile)
  • fs electerm-electerm-66f193d/src/client/components/sftp/code-compare.jsx :182 return window.fs.readFile(p)
  • fs electerm-electerm-66f193d/src/client/components/sftp/file-item.jsx :434 ? window.fs.mkdir
  • fs electerm-electerm-66f193d/src/client/components/sftp/sftp-entry.jsx :409 ? window.fs.unlink
  • fs electerm-electerm-66f193d/src/client/components/terminal-info/log-path-edit.jsx :28 await fs.unlink(testFile)
  • fs electerm-electerm-66f193d/src/client/components/terminal/terminal.jsx :988 await window.fs.writeFile(filePath, content).catch(window.store.onError)
  • fs electerm-electerm-66f193d/src/client/components/theme/theme-form.jsx :170 : await window.fs.readFile(file.filePath)
  • fs electerm-electerm-66f193d/src/client/components/tree-list/bookmark-upload.js :33 : await window.fs.readFile(file.filePath)
  • fs electerm-electerm-66f193d/src/client/store/load-data.js :110 conf.privateKey = await window.fs.readFile(options.privateKeyPath)
  • fs electerm-electerm-66f193d/src/client/store/sync.js :731 : await window.fs.readFile(file.filePath)
  • fs (weak) electerm-electerm-66f193d/src/test/e2e/020.trzsz-rzsz.spec.js :24 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/e2e/039.drag-folder.spec.js :2 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/e2e/common/ftp.js :3 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/integration/lib/ssh-test-server.js :19 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/integration/mcp.spec.js :20 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit-ci/session-ssh-agent.spec.js :31 const fs = require('node:fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit-ci/session-ssh-known-hosts.spec.js :4 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit-ci/session-ssh-password-first.spec.js :10 const fs = require('node:fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit-ci/session-ssh.spec.js :5 const fs = require('node:fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit-ci/session-transports.spec.js :5 const fs = require('node:fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit-ci/ssh-proxy-command.spec.js :5 const fs = require('node:fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit-ci/zmodem.spec.js :15 const fs = require('node:fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/custom-require.spec.js :4 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/db-concurrency.spec.js :19 const fs = require('node:fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/db-enc.spec.js :12 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/ftp-transfer.spec.js :5 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/load-widget.spec.js :8 const fs = require('fs/promises')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/nedb.spec.js :13 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/npm-install2.spec.js :8 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/npm.spec.js :4 const fs = require('fs')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/rename-widget.spec.js :7 const fs = require('fs/promises')
  • fs (weak) electerm-electerm-66f193d/src/test/unit/xmodem.spec.js :8 const fs = require('node:fs')

shell / exec 35

  • shell electerm-electerm-66f193d/build/bin/app.js :8 exec(cmd)
  • shell electerm-electerm-66f193d/build/bin/appimage-integration.js :89 require('child_process').execSync(
  • shell electerm-electerm-66f193d/build/bin/build-common.js :5 const { exec } = require('child_process')
  • shell electerm-electerm-66f193d/build/bin/build.js :12 // exec('npm run clean')
  • shell electerm-electerm-66f193d/build/bin/post-install.js :15 exec('npm cache clear -f')
  • shell electerm-electerm-66f193d/build/bin/prepare.js :31 // exec(`PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm i -D -E playwright@1.28.1 --no-save && npm i -D -E @playwright/test@1.28.1 --no-save`)
  • shell electerm-electerm-66f193d/build/bin/publish-electerm-react.js :18 exec('npm-publish --access public --provenance')
  • shell electerm-electerm-66f193d/build/bin/start.js :6 exec('npm start')
  • shell electerm-electerm-66f193d/build/bin/vite-build.js :7 exec('npm run build')
  • shell electerm-electerm-66f193d/build/npm/install.js :14 const { execFile } = require('child_process')
  • shell electerm-electerm-66f193d/build/vite/dev-server.js :9 import { spawn } from 'child_process'
  • shell electerm-electerm-66f193d/src/app/lib/fs.js :8 const { exec, spawn } = require('child_process')
  • shell electerm-electerm-66f193d/src/app/lib/menu.js :260 require('child_process').exec(`"${process.execPath}" --new-window`)
  • shell electerm-electerm-66f193d/src/app/lib/open-file-with-editor.js :1 const { spawn } = require('child_process')
  • shell electerm-electerm-66f193d/src/app/lib/system-ca.js :8 const { execSync } = require('child_process')
  • shell electerm-electerm-66f193d/src/app/server/child-process.js :6 const { fork } = require('child_process')
  • shell electerm-electerm-66f193d/src/app/server/session-process.js :1 const { fork } = require('child_process')
  • shell electerm-electerm-66f193d/src/app/server/session-ssh.js :10 const { exec } = require('child_process')
  • shell electerm-electerm-66f193d/src/app/server/ssh-proxy-command.js :18 const { spawn } = require('child_process')
  • shell electerm-electerm-66f193d/src/app/widgets/widget-ssh-server.js :3 const { exec } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/e2e/005.ai-config.spec.js :7 const { spawn } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/e2e/006.ai-chat.spec.js :7 const { spawn } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/e2e/006.ai-explain.spec.js :7 const { spawn } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/e2e/038.ai-create-bookmark.spec.js :12 const { spawn } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/integration/lib/ssh-test-server.js :18 const { exec } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/integration/session-ssh-hopping.spec.js :20 const { execSync } = require('node:child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/unit-ci/mcp-exec.spec.js :30 exec (cmd, opts, cb) {
  • shell (weak) electerm-electerm-66f193d/src/test/unit-ci/session-ssh-agent.spec.js :35 const { spawnSync } = require('node:child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/unit-ci/session-ssh-password-first.spec.js :14 const { spawnSync } = require('node:child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/unit-ci/session-ssh.spec.js :9 const { spawnSync } = require('node:child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/unit/ftp-transfer.spec.js :3 const { spawn } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/unit/ftp.spec.js :3 const { spawn } = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/unit/npm-install2.spec.js :517 // install.js does NOT call exec('electerm')
  • shell (weak) electerm-electerm-66f193d/src/test/unit/open-file-with-editor.spec.js :4 const childProcess = require('child_process')
  • shell (weak) electerm-electerm-66f193d/src/test/unit/open-file.spec.js :4 const childProcess = require('child_process')

network 36

  • net electerm-electerm-66f193d/build/npm/utils.js :8 const https = require('https')
  • net electerm-electerm-66f193d/src/app/lib/ai.js :1 const axios = require('axios')
  • net electerm-electerm-66f193d/src/app/lib/auth.js :47 const axios = require('axios')
  • net electerm-electerm-66f193d/src/app/lib/npm.js :4 const axios = require('axios')
  • net electerm-electerm-66f193d/src/app/lib/single-instance.js :6 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/dispatch-center.js :86 fetch(ws, msg)
  • net electerm-electerm-66f193d/src/app/server/download-upgrade.js :8 const rp = require('axios')
  • net electerm-electerm-66f193d/src/app/server/fetch.js :7 function fetch (options) {
  • net electerm-electerm-66f193d/src/app/server/rdp-proxy.js :1 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/session-rdp.js :69 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/session-spice.js :56 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/session-ssh.js :9 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/session-vnc.js :7 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/socks.js :5 const { request } = require('http')
  • net electerm-electerm-66f193d/src/app/server/spice-proxy.js :1 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/ssh-proxy-command.js :19 const net = require('net')
  • net electerm-electerm-66f193d/src/app/server/ssh-tunnel.js :33 const server = require('net').connect(sshTunnelLocalPort, sshTunnelLocalHost)
  • net electerm-electerm-66f193d/src/app/server/sync.js :6 const rp = require('axios')
  • net electerm-electerm-66f193d/src/app/server/telnet.js :4 const { Socket } = require('net')
  • net electerm-electerm-66f193d/src/app/server/webdav-sync.js :6 const rp = require('axios')
  • net electerm-electerm-66f193d/src/client/common/fetch.jsx :62 return window.fetch(url, body)
  • net electerm-electerm-66f193d/src/client/common/fs.js :10 return fetch({
  • net (weak) electerm-electerm-66f193d/src/client/common/test-connection.js :8 return fetch({
  • net electerm-electerm-66f193d/src/client/common/update-check.js :21 return fetch(data)
  • net electerm-electerm-66f193d/src/client/components/sftp/file-item.jsx :930 const res = await window.api.fetch(url)
  • net electerm-electerm-66f193d/src/client/components/sftp/sftp-entry.jsx :973 await window.api.fetch('/api/upload', {
  • net electerm-electerm-66f193d/src/client/components/terminal/terminal-apis.js :8 return fetch({
  • net electerm-electerm-66f193d/src/client/store/sync.js :104 return fetch(data)
  • net (weak) electerm-electerm-66f193d/src/test/integration/mcp.spec.js :18 const axios = require('axios')
  • net (weak) electerm-electerm-66f193d/src/test/integration/session-ssh-hopping.spec.js :23 const net = require('node:net')
  • net (weak) electerm-electerm-66f193d/src/test/unit-ci/mcp-exec.spec.js :132 const axios = require('axios')
  • net (weak) electerm-electerm-66f193d/src/test/unit-ci/mcp-tasks.spec.js :157 const axios = require('axios')
  • net (weak) electerm-electerm-66f193d/src/test/unit-ci/session-transports.spec.js :8 const net = require('node:net')
  • net (weak) electerm-electerm-66f193d/src/test/unit-ci/ssh-proxy-command.spec.js :79 const net = require('net')
  • net (weak) electerm-electerm-66f193d/src/test/unit/load-widget.spec.js :9 const axios = require('axios')
  • net (weak) electerm-electerm-66f193d/src/test/unit/npm-install.spec.js :9 const https = require('https')

secrets 2

  • secrets electerm-electerm-66f193d/build/bin/build-common.js :198 const secretAccessKey = process.env.CF_R2_SECRET_ACCESS_KEY
  • secrets electerm-electerm-66f193d/build/bin/upload-file-to-r2.js :19 const secretAccessKey = process.env.CF_R2_SECRET_ACCESS_KEY

tool registrations 40

  • list_electerm_tabs electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :356
  • get_electerm_active_tab electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :368
  • switch_electerm_tab electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :380
  • close_electerm_tab electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :394
  • reload_electerm_tab electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :408
  • duplicate_electerm_tab electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :423
  • open_electerm_local_terminal electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :437
  • send_electerm_terminal_command electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :449
  • get_electerm_terminal_selection electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :472
  • get_electerm_terminal_output electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :487
  • wait_for_electerm_terminal_idle electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :504
  • get_electerm_terminal_status electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :531
  • cancel_electerm_terminal_command electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :547
  • execute_electerm_command electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :563
  • open_electerm_tab_ssh electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :643
  • open_electerm_tab_telnet electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :658
  • open_electerm_tab_serial electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :673
  • open_electerm_tab_local electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :688
  • list_electerm_bookmarks electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :705
  • get_electerm_bookmark electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :722
  • add_electerm_bookmark_ssh electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :736
  • add_electerm_bookmark_telnet electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :751
  • add_electerm_bookmark_serial electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :766
  • add_electerm_bookmark_local electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :781
  • edit_electerm_bookmark electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :796
  • delete_electerm_bookmark electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :811
  • open_electerm_bookmark electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :825
  • list_electerm_bookmark_groups electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :842
  • add_electerm_bookmark_group electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :854
  • electerm_sftp_list electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :872
  • electerm_sftp_stat electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :887
  • electerm_sftp_read_file electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :902
  • electerm_sftp_del_file_or_folder electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :917
  • electerm_sftp_upload electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :932
  • electerm_sftp_download electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :949
  • electerm_zmodem_upload electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :966
  • electerm_zmodem_download electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :982
  • electerm_sftp_transfer_list electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :999
  • electerm_sftp_transfer_history electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :1011
  • get_electerm_settings electerm-electerm-66f193d/src/app/widgets/widget-mcp-server.js :1026

install hooks 1

  • postinstall electerm-electerm-66f193d/package.json :19 node build/bin/post-install

declared dependencies 76

  • @electerm/electerm-locales@^2.3.12
  • @electerm/electerm-themes@^1.0.1
  • @electerm/ftp-srv@1.0.5
  • @electerm/nedb@2.0.0
  • @electerm/ssh2@1.22.0
  • @xterm/headless@6.1.0-beta.292
  • axios@1.18.1
  • basic-ftp@6.0.1
  • commander@12.1.0
  • diffie-hellman@^5.0.3
  • electerm-sync@2.0.1
  • electron-log@4.3.5
  • express@5.2.1
  • express-ws@5.0.2
  • fast-deep-equal@3.1.3
  • find-free-port@2.0.0
  • font-list@1.5.1
  • https-proxy-agent@7.0.1
  • iconv-lite@^0.7.2
  • json-deep-copy@1.3.1
  • jsonwebtoken@^9.0.1
  • nanoid@3.3.8
  • node-bash@5.0.1
  • node-forge@1.4.0
  • node-pty@1.2.0-beta.15
  • os-locale-s@1.1.3
  • serialport@13.0.0
  • socks@2.8.9
  • socks-proxy-agent@8.0.1
  • socksv5-server@^1.0.2
  • ssh-config-loader@1.1.2
  • ssh2-scp@3.2.1
  • tar@7.5.21
  • trzsz2@1.2.0
  • zmodem2@1.4.0
  • @ant-design/icons@6.2.5
  • @electerm/electerm-resource@2.2.1
  • @fontsource/maple-mono@^5.2.5
  • @novnc/novnc@1.7.0
  • @types/node@22.9.3
  • @vitejs/plugin-react@^5.2.0
  • @xterm/addon-attach@0.13.0-beta.292
  • @xterm/addon-fit@0.12.0-beta.292
  • @xterm/addon-image@0.10.0-beta.292
  • @xterm/addon-ligatures@0.11.0-beta.292
  • @xterm/addon-search@0.17.0-beta.292
  • @xterm/addon-unicode11@0.10.0-beta.292
  • @xterm/addon-web-links@0.13.0-beta.292
  • @xterm/addon-webgl@0.20.0-beta.291
  • @xterm/xterm@6.1.0-beta.292
  • antd@6.5.1
  • classnames@2.5.1
  • cross-env@7.0.3
  • dotenv@16.4.5
  • electerm-icons@1.0.1
  • electron@42.8.1
  • electron-builder@26.15.7
  • filesize@10.1.6
  • filesize-parser@1.5.1
  • glob@^13.0.6
  • ironrdp-wasm@1.1.0
  • lodash-es@^4.17.21
  • manate@2.0.3
  • morgan@1.11.0
  • multer@^2.2.0
  • pug@3.0.4
  • react@19.2.7
  • react-diff-viewer-continued@4.4.0
  • react-dom@19.2.7
  • react-markdown@9.0.1
  • replace-in-file@6.3.5
  • shelljs@0.8.5
  • spice-client@1.2.0
  • standard@^17.1.2
  • stylus@^0.64.0
  • vite@8.1.0