registry  /  devswitch-cli  /  1.0.4

devswitch-cli@1.0.4

Standalone command-line tool for DevSwitch — manage multiple Git profiles and SSH keys. Shares its database with the DevSwitch desktop app.

Static Scan Results

scanned 2h ago · by rust-scanner

Static analysis flagged 13 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoEnvironmentVarsFilesystemNetwork
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 2 file(s), 113 KB of source, external domains: api.github.com, github.com, registry.npmjs.org

Source & flagged code

5 flagged · loading source
package.jsonView file
scripts.postinstall = node scripts/setup-completion.cjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
bin/devswitch.cjsView file
540// ../core/services/sshKeyService.ts L541: var import_child_process = require("child_process"); L542: var import_util = require("util");
High
Child Process

Package source references child process execution.

bin/devswitch.cjsView on unpkg · L540
3315try { L3316: (0, import_child_process7.execSync)("npm install -g devswitch-cli", { stdio: "inherit" }); L3317: success("CLI updated successfully!");
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

bin/devswitch.cjsView on unpkg · L3315
34function getDataDir() { L35: const override = process.env.DEVSWITCH_DATA_DIR; L36: if (override && override.trim()) { ... L39: const platform2 = os.platform(); L40: const home = os.homedir(); L41: if (platform2 === "win32") { ... L113: } L114: const parsed = JSON.parse(raw); L115: return { ...structuredClone(this.defaults), ...parsed }; ... L139: data[key] = value; L140: this.write(data); L141: }
Medium
Install Persistence

Source writes installer persistence such as shell profile or service configuration.

bin/devswitch.cjsView on unpkg · L34
scripts/setup-completion.cjsView file
3package = devswitch-cli; repositoryIdentity = devswitch; dependency = omelette L3: try { L4: const omelette = require('omelette'); L5: const completion = omelette('devswitch <action> <profile>');
High
Copied Package Dependency Bridge

Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.

scripts/setup-completion.cjsView on unpkg · L3

Findings

4 High4 Medium5 Low
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processbin/devswitch.cjs
HighCopied Package Dependency Bridgescripts/setup-completion.cjs
HighRuntime Package Installbin/devswitch.cjs
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencebin/devswitch.cjs
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings