Openakita run-shell

Execute shell commands for system operations, directory creation, and script execution. When you need to run system commands, execute scripts, install packages, or manage processes. Note - if commands fail consecutively, try different approaches.

install
source · Clone the upstream repo
git clone https://github.com/openakita/openakita
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openakita/openakita "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/system/run-shell" ~/.claude/skills/openakita-openakita-run-shell && rm -rf "$T"
manifest: skills/system/run-shell/SKILL.md
source content

Run Shell

执行 Shell 命令。

Parameters

参数类型必填说明
commandstring要执行的 Shell 命令
cwdstring工作目录(可选)
timeoutinteger超时时间(秒),默认 60,范围 10-600

Examples

列出目录:

{"command": "ls -la"}

安装依赖:

{"command": "pip install requests", "timeout": 300}

在指定目录执行:

{"command": "npm install", "cwd": "/path/to/project"}

Timeout Guidelines

  • 简单命令: 30-60 秒
  • 安装/下载: 300 秒
  • 长时间任务: 根据需要设置更长时间

Windows PowerShell 指引(重要)

转义保护

系统会自动将 PowerShell 命令通过

-EncodedCommand
(Base64 UTF-16LE)编码执行, 避免 cmd.exe → PowerShell 的多层引号/特殊字符转义破坏。直接传入 PowerShell 命令即可。

何时使用 PowerShell vs Python 脚本

场景推荐方式原因
简单系统查询(进程/服务/文件列表)PowerShell cmdlet
Get-Process
,
Get-ChildItem
等一行搞定
复杂文本处理(正则、URL 提取、HTML/JSON 解析)Python 脚本避免 PowerShell 正则 one-liner 的复杂性
批量文件操作(重命名、过滤、转换)Python 脚本更可靠,不受 PowerShell 管道转义影响
网络下载/HTTP 请求Python 脚本
requests
/
urllib
Invoke-WebRequest
更灵活

推荐的 Python 脚本模式

对于复杂文本处理任务,务必使用

write_file
+
run_shell
组合:

步骤 1: write_file 写入 data/temp/task_xxx.py
步骤 2: run_shell "python data/temp/task_xxx.py"

禁止:在

run_shell
中写包含复杂正则的 PowerShell one-liner,例如:

# 禁止这种写法
powershell -Command "Get-Content file.html | Select-String -Pattern '(?<=src=\")[^\"]+' | ForEach-Object { $_.Matches.Value } | Sort-Object -Unique | Out-File urls.txt"

应改为写 Python 脚本:

import re
from pathlib import Path
html = Path("file.html").read_text(encoding="utf-8")
urls = sorted(set(re.findall(r'src="([^"]+)"', html)))
Path("urls.txt").write_text("\n".join(urls), encoding="utf-8")

Notes

  • Windows 使用 PowerShell/cmd 命令(自动 EncodedCommand 编码)
  • Linux/Mac 使用 bash 命令
  • 如果命令连续失败,请尝试不同的命令或方法
  • 失败时可调用
    get_session_logs
    查看详细日志

Related Skills

  • write-file
    : 写入文件
  • read-file
    : 读取文件