dev-tools
스타7
포크0
업데이트2026년 6월 9일 14:07
开发辅助工具集 (Use when: 需要代码格式化/依赖管理/环境检测/进程管理/端口扫描). NOT for: 文件读写(用 FileSystem).
설치
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SKILL.md
readonly메뉴
开发辅助工具集 (Use when: 需要代码格式化/依赖管理/环境检测/进程管理/端口扫描). NOT for: 文件读写(用 FileSystem).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
浏览器自动化操作 (Use when: 需要交互式浏览网页、填写表单、点击按钮、翻页抓取动态内容). NOT for: 静态网页抓取(用 web_fetch)、文件下载(用 multimedia_download).
自主编程与代码开发 (Use when: 需要编写/修改/调试代码、创建项目、重构). NOT for: 数据分析、文件格式转换.
数据分析与可视化 (Use when: 需要处理 CSV/Excel 数据、生成图表、统计分析). NOT for: 非数据文件、GUI 操作.
通过中国移动 139 邮箱发送邮件(支持附件、纯文本)。凭据已预配置,直接调用即可。
Git 版本控制操作 (Use when: 需要 clone/commit/push/diff/log 等 git 操作). NOT for: 非版本控制文件操作.
GitHub 仓库操作与协作 (Use when: 需要 PR/Issue/Release 操作、CI 查询、仓库管理). NOT for: 本地 git 操作(用 git-ops).
| name | dev-tools |
| description | 开发辅助工具集 (Use when: 需要代码格式化/依赖管理/环境检测/进程管理/端口扫描). NOT for: 文件读写(用 FileSystem). |
| metadata | {"rooster":{"emoji":"🔧","platform":["any"],"category":"development","kits":["Interpreter"],"requires":{"python_packages":["psutil"],"bins":[],"env_vars":[]}}} |
通过 python_interpreter 完成开发环境检测、进程管理、依赖安装等常用开发任务。
import importlib.util, subprocess, sys
packages = ["pandas", "httpx", "pydantic", "fastapi", "numpy"]
for pkg in packages:
spec = importlib.util.find_spec(pkg)
status = "✅ installed" if spec else "❌ missing"
print(f" {pkg}: {status}")
import subprocess, sys
packages = ["pandas", "httpx", "pydantic"]
for pkg in packages:
result = subprocess.run(
[sys.executable, "-m", "pip", "install", pkg, "-q"],
capture_output=True, text=True
)
if result.returncode == 0:
print(f"✅ {pkg} 安装成功")
else:
print(f"❌ {pkg} 安装失败: {result.stderr[:200]}")
import psutil
# 查找占用特定端口的进程
def find_process_by_port(port: int):
for conn in psutil.net_connections():
if conn.laddr.port == port:
try:
proc = psutil.Process(conn.pid)
print(f"端口 {port} 被占用: PID={conn.pid}, 名称={proc.name()}")
return conn.pid
except psutil.NoSuchProcess:
pass
print(f"端口 {port} 空闲")
return None
find_process_by_port(8080)
# 终止进程(需谨慎!)
# pid = find_process_by_port(8080)
# if pid:
# psutil.Process(pid).terminate()
import sys, os, platform, psutil
print(f"Python: {sys.version}")
print(f"OS: {platform.system()} {platform.release()}")
print(f"CPU: {psutil.cpu_count()} 核, 使用率: {psutil.cpu_percent(interval=1)}%")
mem = psutil.virtual_memory()
print(f"内存: 总计 {mem.total//1024//1024}MB, 可用 {mem.available//1024//1024}MB")
disk = psutil.disk_usage(os.getcwd())
print(f"磁盘: 总计 {disk.total//1024//1024//1024}GB, 剩余 {disk.free//1024//1024//1024}GB")
import subprocess
def run_cmd(cmd: str, cwd: str = None, timeout: int = 30) -> tuple:
"""运行命令,返回 (stdout, stderr, returncode)"""
result = subprocess.run(
cmd, shell=True, cwd=cwd,
capture_output=True, text=True,
encoding="utf-8", timeout=timeout
)
return result.stdout, result.stderr, result.returncode
stdout, stderr, code = run_cmd("python --version")
print(f"Output: {stdout.strip()}")
print(f"Return code: {code}")
import socket
def scan_ports(host: str = "127.0.0.1", ports: list = None):
if ports is None:
ports = [80, 443, 3000, 5000, 8000, 8080, 8765, 8766]
open_ports = []
for port in ports:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.settimeout(0.5)
if s.connect_ex((host, port)) == 0:
open_ports.append(port)
print(f"开放端口: {open_ports}")
return open_ports
scan_ports()
pip install 会修改当前 Python 环境,虚拟环境内操作更安全subprocess.run 使用 shell=True 支持管道命令