Skip to content
Back to skills

Terminal Killer

FSecurity

Intelligent shell command detector and executor for OpenClaw. Automatically identifies terminal commands (system builtins, $PATH executables, history matches, command patterns) and executes directly without LLM overhead. Cross-platform support (macOS/Linux/Windows). Use when user input appears to be a shell command to skip AI processing and run immediately.

  • 33 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
documentationpythonshellbashsqlnodedockertestinggitdocumentation

Works with

  • terminal
  • cli

Security analysis

F6/100
  • highPerforms destructive filesystem operations
  • criticalModifies startup scripts or system services for persistence
  • criticalModifies startup scripts or system services for persistence
  • criticalModifies startup scripts or system services for persistence
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 14 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add dvcrn/openclaw-skills-marketplace --skill terminal-killer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Terminal Killer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Terminal Killer
[![Security: F β€” Skills Directory](https://www.skillsdirectory.com/api/skills/dvcrn-terminal-killer/badge)](https://www.skillsdirectory.com/skills/dvcrn-terminal-killer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: terminal-killer
description: "Intelligent shell command detector and executor for OpenClaw. Automatically identifies terminal commands (system builtins, $PATH executables, history matches, command patterns) and executes directly without LLM overhead. Cross-platform support (macOS/Linux/Windows). Use when user input appears to be a shell command to skip AI processing and run immediately."
---

# Terminal Killer

πŸš€ Smart command router that executes shell commands directly, bypassing LLM for instant terminal operations.

## Quick Start

Terminal Killer automatically activates when user input matches command patterns. No special syntax needed β€” just type commands naturally:

```
ls -la              # β†’ Direct exec
git status          # β†’ Direct exec  
npm install         # β†’ Direct exec
"help me code"      # β†’ LLM handles normally
```

## How It Works

### Detection Pipeline

```
User Input β†’ Command Detector β†’ Decision
                                      β”œβ”€β”€ Command β†’ exec (direct)
                                      └── Task β†’ LLM (normal)
```

### Environment Loading

Terminal Killer automatically loads your shell environment before executing commands:

1. **Detects your shell** (zsh, bash, etc.)
2. **Sources init files** (`~/.zshrc`, `~/.bash_profile`, `~/.bashrc`, etc.)
3. **Inherits full PATH** - including custom paths like Android SDK, Homebrew, etc.
4. **Preserves environment variables** - all your `export VAR=value` settings

This ensures commands like `adb`, `kubectl`, `docker`, etc. work exactly as they do in your terminal!

### Detection Rules (in order)

1. **System Builtins** - Check against OS-specific builtin commands
2. **PATH Executables** - Scan `$PATH` for matching executables
3. **History Match** - Compare against recent shell history
4. **Command Pattern** - Heuristic analysis (operators, paths, etc.)
5. **Confidence Score** - Combine signals for final decision

## Detection Details

### 1. System Builtins

Checks input against known builtin commands for the current OS:

| macOS/Linux | Windows (PowerShell) | Windows (CMD) |
|-------------|---------------------|---------------|
| `cd`, `pwd`, `ls` | `cd`, `pwd`, `ls` | `cd`, `dir`, `cls` |
| `echo`, `cat` | `echo`, `cat` | `echo`, `type` |
| `mkdir`, `rm`, `cp` | `mkdir`, `rm`, `cp` | `mkdir`, `del`, `copy` |
| `grep`, `find` | `grep`, `find` | `findstr` |
| `git`, `npm`, `node` | `git`, `npm`, `node` | `git`, `npm`, `node` |

See `references/builtins/` for complete lists.

### 2. PATH Executable Check

Scans `$PATH` directories to verify if the first word is an executable:

```bash
# Uses `which` (Unix) or `Get-Command` (PowerShell)
which <command>    # Returns path if exists
```

### 3. History Matching

Compares input against recent shell history (`~/.zsh_history`, `~/.bash_history`, PowerShell history):

- Exact match β†’ High confidence
- Similar prefix β†’ Medium confidence
- No match β†’ Continue checking

### 4. Command Pattern Analysis

Heuristic scoring based on command characteristics:

| Pattern | Score | Example |
|---------|-------|---------|
| Starts with known command | +3 | `git status` |
| Contains shell operators | +2 | `ls | grep` |
| Contains path references | +2 | `cd ~/projects` |
| Contains flags/args | +1 | `npm install --save` |
| Contains `$` variables | +2 | `echo $HOME` |
| Contains redirection | +2 | `cat file > out` |
| Looks like natural language | -3 | "please help me" |
| Contains question marks | -2 | "how do I...?" |

### 5. Confidence Threshold

```
Score >= 5  β†’ EXECUTE (high confidence command)
Score 3-4   β†’ ASK (uncertain, confirm with user)
Score < 3   β†’ LLM (likely a task/request)
```

## Usage

### Automatic Activation

Terminal Killer triggers automatically when:
- User input starts with a verb-like word
- Input is short (< 20 words typically)
- No question words (what, how, why, etc.)

### Interactive Commands

Terminal Killer automatically detects and handles interactive shell commands:

**Detected Patterns:**
- `adb shell` - Opens new terminal with adb shell
- `ssh user@host` - Opens SSH session in new window
- `docker exec -it container bash` - Opens container shell
- `mysql -u root -p` - Opens MySQL client
- `python`, `node`, `bash` - Opens REPL in new window

**Behavior:**
- βœ… Automatically opens new Terminal window (macOS)
- βœ… Loads your full shell environment (~/.zshrc, etc.)
- βœ… Keeps main session free for other tasks

### Manual Override

Force command execution:
```
!ls -la          # Force exec even if uncertain
```

Force LLM handling:
```
?? explain git   # Force LLM even if looks like command
```

## Safety Features

### Dangerous Command Detection

Automatically flags potentially dangerous operations:

- `rm -rf /` or similar destructive patterns
- `sudo` commands (requires explicit approval)
- `dd`, `mkfs`, `chmod 777`
- Network operations to suspicious hosts
- Commands modifying system files

### Approval Workflow

```
Dangerous command detected!

Command: rm -rf ./important-folder
Risk: HIGH - Recursive delete

[Approve] [Deny] [Edit]
```

### Audit Logging

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

Log format:
```json
{
  "timestamp": "2026-02-28T12:00:00Z",
  "command": "ls -la",
  "confidence": 8,
  "execution_time_ms": 45,
  "output_lines": 12,
  "status": "success"
}
```

## Configuration

### Settings

Add to your OpenClaw config:

```yaml
terminal-killer:
  enabled: true
  confidence_threshold: 5
  require_approval_for:
    - "rm -rf"
    - "sudo"
    - "dd"
    - "mkfs"
  log_executions: true
  max_history_check: 100  # How many history entries to check
```

### Platform Detection

Automatically detects OS and adjusts detection rules:

```bash
# Auto-detected at runtime
uname -s  # Darwin, Linux, etc.
```

## Implementation

### Core Script

See `scripts/detect-command.js` for the main detection logic.

### Helper Scripts

- `scripts/check-path.js` - Verify executable in PATH
- `scripts/check-history.js` - Match against shell history
- `scripts/score-command.js` - Calculate confidence score
- `scripts/safety-check.js` - Detect dangerous patterns

## Testing

See `references/TESTING.md` for comprehensive test guide.

Quick test:
```bash
# Run the test suite
node scripts/test-detector.js

# Test specific commands
node scripts/detect-command.js "ls -la"
node scripts/detect-command.js "help me write code"
```

## Limitations

- Requires shell access (won't work in sandboxed environments)
- History check needs read access to shell history files
- Windows support requires PowerShell or WSL for full functionality
- Some commands may have false positives (natural language that looks like commands)

## Contributing

To add new builtin commands for your platform:

1. Edit `references/builtins/<platform>.txt`
2. Test with `scripts/test-detector.js`
3. Submit PR with platform verification

---

## πŸ‘€ About the Creator

**Author:** Cosper  
**Contact:** [cosperypf@163.com](mailto:cosperypf@163.com)  
**License:** MIT

### πŸ“¬ Get in Touch

Interested in this skill? Have suggestions, bug reports, or want to collaborate?

- πŸ“§ **Email:** cosperypf@163.com
- πŸ’‘ **Suggestions:** Always welcome!
- πŸ› **Bug Reports:** Please include platform, OpenClaw version, and example inputs
- 🀝 **Collaboration:** Open to contributions and improvements

### πŸ™ Acknowledgments

Built for the OpenClaw community. Thanks to everyone contributing to the ecosystem!

---

## πŸ“ Changelog

### v1.1.0 (2026-02-28)

**🎯 Core Improvements:**

1. **βœ… Faithful Command Execution**
   - Commands are executed exactly as input
   - No modifications, no optimizations, no additions
   - Raw output preserved (including progress bars, special characters, etc.)

2. **πŸͺŸ Interactive Shell Detection**
   - Automatically detects interactive commands (`adb shell`, `ssh`, `docker exec -it`, etc.)
   - Opens new Terminal window for interactive sessions
   - Keeps main session free for other tasks
   - Loads full shell environment (~/.zshrc, etc.)

3. **πŸ“œ Long Output Handling**
   - Detects output longer than 2000 bytes
   - Shows 200-character preview
   - Prompts user to open in new Terminal window
   - Prevents interface rendering issues with long content

**πŸ“¦ Files Updated:**
- `scripts/index.js` - Long output detection + interactive command handling
- `scripts/interactive.js` - New Terminal window opener
- `SKILL.md` - Updated documentation
- `README.md` - Usage examples
- `clawhub.json` - Version bump to 1.1.0

---

### v1.0.0 (2026-02-28)

**Initial Release:**
- Smart command detection (system builtins, PATH, history, patterns)
- Cross-platform support (macOS/Linux/Windows)
- Environment variable loading (~/.zshrc, etc.)
- Dangerous command detection
- Confidence scoring system

---

**Version:** 1.1.0  
**Created:** 2026-02-28  
**Last Updated:** 2026-02-28

Files in this skill

  • README.md8 KB
  • SKILL.md8.7 KB
  • clawhub.json1.3 KB
  • references/EXAMPLES.md3.1 KB
  • references/TESTING.md5 KB
  • references/builtins/linux.txt1.2 KB
  • references/builtins/macos.txt757 B
  • references/builtins/windows.txt1.6 KB
  • scripts/demo-long-output.js1.3 KB
  • scripts/detect-command.js8.4 KB
  • scripts/exec-command.js2.7 KB
  • scripts/index.js6.6 KB
  • scripts/interactive.js5.8 KB
  • scripts/test-detector.js3.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…