用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/duclm1x1/Dive-Ai --skill mediaproc命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
基于 SOC 职业分类
正在显示 SKILL.md
| name | mediaproc |
| description | Process media files (video, audio, images) via a locked-down SSH container with ffmpeg, sox, and imagemagick |
| homepage | https://github.com/psyb0t/docker-mediaproc |
| user-invocable | true |
| metadata | {"openclaw":{"emoji":"🎬","primaryEnv":"MEDIAPROC_HOST","always":true}} |
This skill requires MEDIAPROC_HOST and MEDIAPROC_PORT environment variables pointing to a running mediaproc instance.
Configure OpenClaw (~/.openclaw/openclaw.json):
{
"skills": {
"entries": {
"mediaproc": {
"env": {
"MEDIAPROC_HOST": "localhost",
"MEDIAPROC_PORT": "2222"
}
}
}
}
}
Or set the environment variables directly:
export MEDIAPROC_HOST=localhost
export MEDIAPROC_PORT=2222
Locked-down media processing over SSH. Uses a Python wrapper that whitelists commands - no shell access, no injection, no bullshit.
Before running any commands, you must accept the host key so it gets added to known_hosts. Run a simple ls and accept the fingerprint:
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ls"
If this is the first time connecting, SSH will prompt to verify the host key. Type yes to accept. This only needs to happen once per host. If you skip this step, all subsequent SSH commands will fail with a host key verification error.
All commands are executed via SSH against the mediaproc container. The container forces every connection through a Python wrapper that only allows whitelisted commands. All file paths are locked to /work inside the container.
SSH command format:
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "<command> [args]"
| Command | Binary | Description |
|---|---|---|
ffmpeg | /usr/bin/ffmpeg | Video/audio encoding, transcoding, filtering |
ffprobe | /usr/bin/ffprobe | Media file analysis |
sox | /usr/bin/sox | Audio processing |
soxi | /usr/bin/soxi | Audio file info |
convert | /usr/bin/convert | Image conversion/manipulation (ImageMagick) |
identify | /usr/bin/identify | Image file info (ImageMagick) |
magick | /usr/bin/magick | ImageMagick CLI |
All paths are relative to /work. Traversal attempts are blocked. Absolute paths get remapped under /work.
| Command | Description | Example |
|---|---|---|
ls | List /work or a subdirectory (ls -alph style, use --json for JSON) | ls or ls --json subdir |
put | Upload file from stdin | put video.mp4 (pipe file via stdin) |
get | Download file to stdout | get output.mp4 (redirect stdout to file) |
rm | Delete a file (not directories) | rm old.mp4 |
mkdir | Create directory (recursive) | mkdir project1 |
rmdir | Remove empty directory | rmdir project1 |
rrmdir | Remove directory and everything in it recursively | rrmdir project1 |
# Upload
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "put input.mp4" < input.mp4
# Transcode
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ffmpeg -i /work/input.mp4 -c:v libx264 /work/output.mp4"
# Download result
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "get output.mp4" > output.mp4
# Clean up
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "rm input.mp4"
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "rm output.mp4"
# Get video info as JSON
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ffprobe -v quiet -print_format json -show_format -show_streams /work/video.mp4"
# Apply frei0r glow effect
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ffmpeg -i /work/in.mp4 -vf frei0r=glow:0.5 /work/out.mp4"
# Extract audio from video
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ffmpeg -i /work/video.mp4 -vn -acodec libmp3lame /work/audio.mp3"
# Create thumbnail from video
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ffmpeg -i /work/video.mp4 -ss 00:00:05 -vframes 1 /work/thumb.jpg"
# Convert audio format
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "sox /work/input.wav /work/output.mp3"
# Get audio info
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "soxi /work/audio.wav"
# Normalize audio
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "sox /work/input.wav /work/output.wav norm"
# Resize image
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "convert /work/input.png -resize 50% /work/output.png"
# Create thumbnail
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "convert /work/input.jpg -thumbnail 200x200 /work/thumb.jpg"
# Get image info
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "identify /work/image.png"
# List files (ls -alph style, no . and ..)
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ls"
# drwxrwxr-x 2 mediaproc mediaproc 4096 Jan 25 14:30 project1/
# -rw-rw-r-- 1 mediaproc mediaproc 1048576 Jan 25 14:32 video.mp4
# List files as JSON (use --json flag)
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ls --json"
# [{"name": "video.mp4", "size": 1048576, "modified": 1706140800, "isDir": false, "mode": "rw-rw-r--", "owner": "mediaproc", "group": "mediaproc", "links": 1}, ...]
# List subdirectory
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "ls project1"
# Create subdirectory
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "mkdir project1"
# Remove directory recursively
ssh -p $MEDIAPROC_PORT mediaproc@$MEDIAPROC_HOST "rrmdir project1"
-vf frei0r=...)-af ladspa=...)-af lv2=...)2200+ fonts included covering emoji, CJK, Arabic, Thai, Indic, monospace, and more. Custom fonts can be mounted to /usr/share/fonts/custom.
&&, ;, |, $() are treated as literal arguments (no shell involved)/work