Terminal Killer

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

This skill is transparent about being a shell command runner, but it can automatically execute broad local commands and reads shell environment/history, so it needs careful review before installation.

Install only if you intentionally want an agent to run local shell commands directly. Prefer requiring confirmation for all command execution, especially commands that write files, install packages, use credentials, contact networks, or affect shared systems. Be aware that it reads shell history, sources shell profile files, inherits environment variables, and the advertised audit log is not implemented in the supplied code.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A short input judged to be a command could modify or delete files, install packages, push code, contact remote hosts, or run arbitrary local programs under the user's account.

Why it was flagged

The skill makes direct command execution the default for inputs it classifies as commands, rather than requiring explicit approval for every shell operation.

Skill content
Use when user input appears to be a shell command to skip AI processing and run immediately.
Recommendation

Require explicit user confirmation for command execution, especially mutating, network, package-manager, privileged, or destructive commands; show the exact command, working directory, and environment before running.

ConcernHigh Confidence
ASI05: Unexpected Code Execution
What this means

Even detection logic can invoke the shell on user-controlled text, increasing the chance of unintended command execution.

Why it was flagged

The detector shells out with an unescaped user-derived command token while deciding whether input is a command, so shell metacharacters can be parsed before the normal execution decision or approval path.

Skill content
execSync(`${initCmd}which ${cmd}`, { stdio: 'ignore', timeout: 5000 });
Recommendation

Replace shell-based PATH checks with safe APIs such as execFile/spawn with argument arrays or direct filesystem PATH scanning, and validate command names against a strict safe pattern.

What this means

Executed commands can use the same credentials and privileges available in the user's normal terminal.

Why it was flagged

Commands run after shell initialization and inherit the user's full environment, which may include tokens, API keys, cloud profiles, or other privileged configuration.

Skill content
const fullCommand = initCmd + command; ... env: process.env // Inherit current environment
Recommendation

Use this only if you are comfortable granting terminal-equivalent privileges; consider running it in a sandbox or with a reduced environment.

What this means

Private command history is used as local context for routing decisions, although no external transmission is shown in the provided code.

Why it was flagged

The detector reads recent shell history to improve classification. This is disclosed and bounded to recent entries, but shell history can contain sensitive commands or arguments.

Skill content
path.join(os.homedir(), '.zsh_history'), ... fs.readFileSync(historyFile, 'utf8')
Recommendation

Avoid installing if your shell history may contain secrets, or disable history matching / reduce its scope.

What this means

Users may believe there will be a reliable audit trail of executed commands when the supplied code does not show one.

Why it was flagged

The provided source files do not implement writing this audit log, so the documented safety/audit control is unsupported by the artifacts.

Skill content
All executed commands are logged to: ~/.openclaw/logs/terminal-killer.log
Recommendation

Implement the audit log before release or remove the claim; users should not rely on logging unless they verify it works.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

An SSH, docker, shell, or similar session may continue independently until the user closes it.

Why it was flagged

For interactive commands on Linux, the skill can launch a detached terminal process. This is aligned with the interactive-terminal feature, but it can keep running after the main agent flow.

Skill content
const proc = spawn(cmd, args, { detached: true, stdio: 'ignore' }); proc.unref();
Recommendation

Ask before opening detached sessions and clearly show users how to stop or close any spawned terminal process.