Utility Skills
通用辅助技能,用于日常任务:文档处理(PDF、XLSX)、记忆管理、屏幕截图、密码管理、天气查询、文字转语音、视频下载等。这些技能处理那些不太适合归入其他类别的杂项但必要的操作。
概览
Utility 技能涵盖广泛的日常操作。一些是由 harness 直接加载的内置技能,另一些则以 MCP 服务器或外部工具集成的形式实现。其中五个技能默认激活(开箱即用);其余七个可用但需要配置或外部依赖。
| 技能 | 状态 | 类型 | 描述 |
|---|---|---|---|
memory | 激活 | 内置 | 支持自动保存和召回的持久化跨会话记忆 |
pdf | 激活 | 内置 | 读取、解析、提取文本并总结 PDF 文档 |
pdf-vision | 激活 | 内置 | 基于视觉模型的 PDF 阅读,适用于扫描文档和图片 |
screen-capture | 激活 | 内置 | 截取当前屏幕或指定区域的截图 |
xlsx | 激活 | 内置 | 读取、写入和操作 Excel 电子表格 |
1password | 可用 | MCP | 从 1Password 保险库中查找凭证和密钥 |
goplaces | 可用 | MCP | 位置搜索、导航和地点信息 |
summarize | 可用 | 内置 | 总结长文本、文章或记录 |
tts | 可用 | 外部 | 文字转语音,生成音频输出 |
video-downloader | 可用 | 外部 | 从 URL 下载视频(YouTube 等) |
video-frames | 可用 | 外部 | 从视频文件中提取帧用于分析 |
weather | 可用 | MCP | 按位置查询当前天气和预报 |
memory
跨会话持久化记忆。memory 技能会自动保存重要上下文——决策、偏好、项目笔记、反馈——并在相关时自动召回。记忆以 Markdown 文件形式存储在 ~/.cli-jaw/memory/ 下,并通过 SQLite 索引实现快速检索。
| 属性 | 值 |
|---|---|
| Skill ID | memory |
| 分类 | Utility |
| 状态 | 激活(内置) |
| 存储 | ~/.cli-jaw/memory/(Markdown + SQLite 索引) |
| 触发词 | Remember, recall, note, preference, feedback |
功能
| 操作 | 描述 |
|---|---|
| 自动保存 | 自动检测并持久化对话中的重要上下文 |
| 召回 | 根据与当前对话的语义相似度检索相关记忆 |
| 手动保存 | 通过 /memory save 显式保存笔记或决策 |
| 搜索 | 在所有已保存的记忆中进行全文和语义搜索 |
| 列表 | 按主题浏览所有记忆文件 |
| 删除 | 移除特定的记忆条目 |
使用示例
# Manually save a note
/memory save "JWT tokens expire after 24h in this project"
# Search memories
/memory search "authentication"
# List all memory files
/memory list
# Delete a specific memory
/memory delete shared/old-decision.md
"이거 기억해줘" -- 将当前上下文保存到记忆中
"지난번에 뭐라고 했었지?" -- 召回相关的过往对话上下文
"내가 선호하는 설정 뭐였어?" -- 检索已保存的偏好设置
"피드백 메모해둬" -- 保存反馈以供将来参考
记忆结构
记忆被组织为命名空间化的 Markdown 文件。自动记忆系统将 MEMORY.md 作为索引,详细条目存储在特定主题的文件中。
~/.cli-jaw/memory/
MEMORY.md # Index with links to detailed files
feedback_goal_done_method.md # Specific feedback entry
feedback_poll_dont_wait.md # Another feedback entry
shared/
decisions.md # Shared project decisions
preferences.md # User preferences
基于文本的 PDF 处理。读取 PDF 文件,提取文本内容,解析结构(标题、表格、列表),并支持摘要。最适合包含可选中文本的数字化 PDF。
| 属性 | 值 |
|---|---|
| Skill ID | pdf |
| 分类 | Utility |
| 状态 | 激活(内置) |
| 输入 | 本地文件路径或 URL |
| 最适用于 | 包含可选中文本的数字化 PDF |
功能
| 操作 | 描述 |
|---|---|
| 读取 | 从 PDF 文件中提取完整文本内容 |
| 页面范围 | 读取指定页面(例如,大文档的第 1-5 页) |
| 摘要 | 生成 PDF 内容的简洁摘要 |
| 搜索 | 在文档中查找特定文本或模式 |
| 元数据 | 提取标题、作者、页数和其他 PDF 元数据 |
使用示例
# Read a PDF file
/pdf read ~/Documents/report.pdf
# Read specific pages
/pdf read ~/Documents/report.pdf --pages 1-5
# Summarize a PDF
/pdf summarize ~/Documents/whitepaper.pdf
# Extract metadata
/pdf info ~/Documents/contract.pdf
"이 PDF 요약해줘" -- 总结 PDF 文档
"이 문서에서 계약 조건 찾아줘" -- 在 PDF 中搜索合同条款
"PDF 몇 페이지야?" -- 返回页数和元数据
"3페이지부터 7페이지까지 읽어줘" -- 读取指定的页面范围
pdf-vision
基于视觉的 PDF 阅读。使用多模态模型来解读扫描文档、图片密集的 PDF 以及文本提取失败的页面。每一页都被渲染为图像并进行视觉分析,因此该技能对于手写笔记、扫描收据和复杂排版至关重要。
| 属性 | 值 |
|---|---|
| Skill ID | pdf-vision |
| 分类 | Utility |
| 状态 | 激活(内置) |
| 模型 | 支持视觉的 LLM(Claude、GPT-4V) |
| 最适用于 | 扫描文档、手写文本、图片密集的 PDF |
何时使用 pdf-vision 与 pdf
| 场景 | 推荐 | 原因 |
|---|---|---|
| 包含可选中文本的数字化 PDF | pdf | 更快、更准确的文本提取 |
| 扫描文档(仅含图像) | pdf-vision | 没有可选中的文本可提取 |
| 包含图表和图解的 PDF | pdf-vision | 能够描述视觉元素 |
| 手写笔记 | pdf-vision | 通过视觉模型进行 OCR |
| 文本与图片混合 | pdf-vision | 同时捕获文本和视觉内容 |
| 大文档(超过50页) | pdf | 更低的延迟和 token 成本 |
使用示例
# Read a scanned PDF with vision
/pdf-vision read ~/Documents/scanned-receipt.pdf
# Analyze specific pages visually
/pdf-vision read ~/Documents/diagram-heavy.pdf --pages 3-5
# Extract text from a handwritten note
/pdf-vision read ~/Documents/handwritten.pdf
"이 스캔 문서 읽어줘" -- 使用视觉模型读取扫描 PDF
"이 영수증 내용 정리해줘" -- 提取并整理收据内容
"이 차트 설명해줘" -- 描述 PDF 中的图表和图解
"손글씨 읽어줘" -- 对手写内容进行 OCR 识别
screen-capture
截取整个屏幕、特定窗口或指定区域的截图。截取的图像可以由视觉模型分析、保存到磁盘,或作为其他技能(如 vision-click)的输入。
| 属性 | 值 |
|---|---|
| Skill ID | screen-capture |
| 分类 | Utility |
| 状态 | 激活(内置) |
| 输出 | PNG 图像(文件或内联) |
| 平台 | macOS(screencapture)、Linux(scrot/gnome-screenshot) |
功能
| 操作 | 描述 |
|---|---|
| 全屏 | 截取整个显示屏 |
| 窗口 | 截取特定应用程序窗口 |
| 区域 | 按坐标截取矩形区域 |
| 分析 | 截取后立即使用视觉模型描述内容 |
使用示例
# Capture full screen
/screen-capture
# Capture and analyze the screen
/screen-capture --analyze
# Save to a specific path
/screen-capture --output ~/Desktop/screenshot.png
# Capture a specific region (x, y, width, height)
/screen-capture --region 0,0,800,600
"스크린샷 찍어줘" -- 截取当前屏幕
"지금 화면 보여줘" -- 截取并显示当前屏幕
"이 화면에 뭐가 보여?" -- 截取并分析屏幕内容
"화면 캡처해서 저장해줘" -- 截取并保存为文件
xlsx
Excel 电子表格处理。读取、写入和操作 .xlsx 文件——从工作表中提取数据、创建新工作簿、更新单元格,以及在不同格式(CSV、JSON)之间转换。支持公式、多工作表和基本格式化。
| 属性 | 值 |
|---|---|
| Skill ID | xlsx |
| 分类 | Utility |
| 状态 | 激活(内置) |
| 格式 | .xlsx、.xls、.csv(读写) |
| 库 | SheetJS (xlsx) |
功能
| 操作 | 描述 |
|---|---|
| 读取 | 从电子表格的单元格、行和工作表中提取数据 |
| 写入 | 创建新工作簿或更新现有工作簿 |
| 转换 | 在 XLSX、CSV 和 JSON 格式之间转换 |
| 分析 | 汇总数据、计算统计信息、描述工作表结构 |
| 筛选 | 提取符合特定条件的行 |
使用示例
# Read an Excel file
/xlsx read ~/Documents/sales-data.xlsx
# Read a specific sheet
/xlsx read ~/Documents/report.xlsx --sheet "Q4 Summary"
# Convert XLSX to CSV
/xlsx convert ~/Documents/data.xlsx --to csv
# Create a new spreadsheet from data
/xlsx write ~/Documents/output.xlsx --data '[{"name":"Alice","score":95},{"name":"Bob","score":87}]'
"이 엑셀 파일 읽어줘" -- 读取并显示电子表格内容
"이 데이터 엑셀로 만들어줘" -- 从数据创建新的 XLSX 文件
"CSV로 변환해줘" -- 将电子表格转换为 CSV 格式
"매출 데이터 요약해줘" -- 分析并汇总电子表格数据
1password
从 1Password 保险库安全查找凭证。1password 技能使用 1Password CLI(op)搜索和检索项目——登录信息、密码、安全笔记、API 密钥——而不会在对话中以明文形式暴露。凭证直接注入到命令或环境变量中。
| 属性 | 值 |
|---|---|
| Skill ID | 1password |
| 分类 | Utility |
| 状态 | 可用(需要 1Password CLI) |
| 前置条件 | 已安装并登录 op CLI |
| 认证 | 通过 op 进行生物识别或主密码认证 |
功能
| 操作 | 描述 |
|---|---|
| 搜索 | 按名称、标签或保险库查找项目 |
| 获取 | 检索特定字段(密码、用户名、OTP) |
| 注入 | 通过 op run 将密钥注入到命令中 |
| 列出保险库 | 显示可用的保险库及其项目数量 |
使用示例
# Search for a credential
/1password search "GitHub token"
# Get a specific password
/1password get "AWS Production" --field password
# Inject a secret into a command
op run --env-file=.env -- jaw serve
# List all vaults
/1password vaults
"비밀번호 찾아줘" -- 在 1Password 中搜索匹配的凭证
"GitHub 토큰 가져와줘" -- 从 1Password 检索 GitHub 令牌
"AWS 키 환경변수에 넣어줘" -- 将 AWS 凭证注入到环境变量中
"내 비밀번호 뭐였지?" -- 在保险库中搜索匹配的项目
op CLI 检索,并通过安全引用(op://vault/item/field)传递。使用前请确保您的 1Password CLI 会话已通过认证。
goplaces
基于位置的搜索和导航。查找地点、提供路线导航,并返回商家、地标和地址的相关信息。通过 MCP 服务器调用地图 API 实现。
| 属性 | 值 |
|---|---|
| Skill ID | goplaces |
| 分类 | Utility |
| 状态 | 可用(MCP 服务器) |
| API | Google Maps / Apple Maps |
| 前置条件 | 已配置 Maps API 密钥 |
功能
| 操作 | 描述 |
|---|---|
| 搜索地点 | 按查询条件查找餐厅、商店、地标 |
| 路线导航 | 获取两个位置之间的路线和行程时间 |
| 地点详情 | 营业时间、评分、电话号码、地点地址 |
| 附近 | 查找给定位置或当前位置附近的地点 |
使用示例
# Search for a place
/goplaces search "coffee shops near Gangnam Station"
# Get directions
/goplaces directions "Seoul Station" "Gangnam Station"
# Get details about a specific place
/goplaces details "Starbucks Gangnam"
# Find nearby restaurants
/goplaces nearby --type restaurant --radius 500m
"근처 카페 찾아줘" -- 搜索附近的咖啡店
"강남역에서 서울역까지 어떻게 가?" -- 提供两个位置之间的路线导航
"이 가게 영업시간 알려줘" -- 检索商家的营业时间
"주변 맛집 추천해줘" -- 查找附近评分较高的餐厅
summarize
将长文本浓缩为简洁摘要。适用于文章、录音记录、会议笔记、文档和任何长文本输入。支持多种摘要样式——要点列表、段落、执行摘要和关键要点。
| 属性 | 值 |
|---|---|
| Skill ID | summarize |
| 分类 | Utility |
| 状态 | 可用 |
| 输入 | 文本、文件路径或 URL |
| 样式 | 要点列表、段落、执行摘要、关键要点 |
使用示例
# Summarize a file
/summarize ~/Documents/meeting-notes.md
# Summarize with a specific style
/summarize ~/Documents/report.pdf --style bullets
# Summarize clipboard content
/summarize --clipboard
# Summarize a web article
/summarize https://example.com/long-article
"이거 요약해줘" -- 总结提供的内容
"회의록 정리해줘" -- 将会议记录总结为关键要点
"이 기사 핵심만 알려줘" -- 从文章中提取关键要点
"3줄로 요약해줘" -- 生成简洁的三行摘要
tts
文字转语音。使用 TTS 引擎(系统语音或云端 API)将文本输入转换为语音音频。适用于朗读文档、从文本生成音频文件以及无障碍访问。
| 属性 | 值 |
|---|---|
| Skill ID | tts |
| 分类 | Utility |
| 状态 | 可用(外部) |
| 引擎 | macOS say、OpenAI TTS、ElevenLabs |
| 输出 | 直接播放或音频文件(MP3、WAV) |
使用示例
# Speak text aloud
/tts "Hello, this is a test of the text-to-speech system."
# Save to file
/tts "Meeting summary follows..." --output ~/Desktop/summary.mp3
# Use a specific voice
/tts "안녕하세요" --voice korean --engine openai
# Read a file aloud
/tts --file ~/Documents/notes.md
"이거 읽어줘" -- 使用 TTS 朗读内容
"소리로 들려줘" -- 将文本转换为语音并播放
"이 메모 음성 파일로 만들어줘" -- 从文本生成音频文件
"영어로 발음해줘" -- 用英语发音朗读文本
video-downloader
使用 yt-dlp 从 URL 下载视频。支持 YouTube、Vimeo 以及数百个其他视频平台。可以选择画质、仅提取音频、下载字幕,并保存到指定目录。
| 属性 | 值 |
|---|---|
| Skill ID | video-downloader |
| 分类 | Utility |
| 状态 | 可用(外部) |
| 前置条件 | 已安装 yt-dlp |
| 平台 | YouTube、Vimeo、Twitter 以及 1000+ 个站点 |
功能
| 操作 | 描述 |
|---|---|
| 下载 | 以最佳画质或指定分辨率下载视频 |
| 仅音频 | 仅提取并保存音频轨道(MP3、M4A) |
| 字幕 | 下载指定语言的字幕 |
| 信息 | 不下载视频,仅显示视频元数据 |
| 播放列表 | 下载播放列表中的所有视频 |
使用示例
# Download a video
/video-downloader https://www.youtube.com/watch?v=dQw4w9WgXcQ
# Download audio only
/video-downloader https://www.youtube.com/watch?v=dQw4w9WgXcQ --audio
# Download with specific quality
/video-downloader https://www.youtube.com/watch?v=dQw4w9WgXcQ --quality 720p
# Download subtitles
/video-downloader https://www.youtube.com/watch?v=dQw4w9WgXcQ --subs ko
"이 영상 다운받아줘" -- 从给定 URL 下载视频
"음성만 추출해줘" -- 从视频中提取音频轨道
"자막 다운받아줘" -- 下载视频的字幕
"이 유튜브 영상 저장해줘" -- 下载并保存 YouTube 视频
video-frames
从视频文件中提取单帧用于分析。按指定的时间间隔或时间戳截取帧,输出为图像,并可选择将其发送到视觉模型进行描述。适用于视频摘要、内容分析和缩略图生成。
| 属性 | 值 |
|---|---|
| Skill ID | video-frames |
| 分类 | Utility |
| 状态 | 可用(外部) |
| 前置条件 | 已安装 ffmpeg |
| 输出 | PNG/JPEG 帧图像 |
使用示例
# Extract one frame per second
/video-frames ~/Videos/demo.mp4 --interval 1s
# Extract frame at a specific timestamp
/video-frames ~/Videos/demo.mp4 --at 01:23:45
# Extract and analyze frames with vision model
/video-frames ~/Videos/demo.mp4 --interval 10s --analyze
# Generate thumbnails for a video
/video-frames ~/Videos/demo.mp4 --count 5 --output ~/Desktop/thumbs/
"이 영상에서 프레임 추출해줘" -- 从视频中提取帧
"영상 내용 분석해줘" -- 提取帧并描述视频内容
"썸네일 만들어줘" -- 生成代表性的缩略图
"1분 30초 장면 캡처해줘" -- 截取指定时间戳的帧
weather
当前天气状况和预报。提供任意位置的温度、湿度、风速、降水和多日预报。以 MCP 服务器的形式实现,查询天气 API。
| 属性 | 值 |
|---|---|
| Skill ID | weather |
| 分类 | Utility |
| 状态 | 可用(MCP 服务器) |
| API | OpenWeatherMap / WeatherAPI |
| 数据 | 当前状况、逐小时、每日预报 |
功能
| 操作 | 描述 |
|---|---|
| 当前 | 当前温度、湿度、风速、天气状况 |
| 预报 | 多日预报,包含最高温、最低温、降水信息 |
| 逐小时 | 未来 24-48 小时的逐小时详细信息 |
| 预警 | 该地区的恶劣天气预警和警告 |
使用示例
# Get current weather
/weather Seoul
# Get a 5-day forecast
/weather forecast "San Francisco" --days 5
# Get hourly forecast
/weather hourly Tokyo --hours 24
# Check weather alerts
/weather alerts "New York"
"날씨 알려줘" -- 显示默认位置的当前天气
"서울 날씨 어때?" -- 显示首尔的当前天气
"내일 비 와?" -- 查看明天的降水预报
"이번 주 날씨 예보 알려줘" -- 提供本周的天气预报
"우산 가져가야 해?" -- 查看降雨概率并给出相应建议
配置
{
"mcpServers": {
"weather": {
"command": "npx",
"args": ["-y", "weather-mcp-server"],
"env": {
"WEATHER_API_KEY": "your-api-key",
"WEATHER_DEFAULT_LOCATION": "Seoul"
}
}
}
}
技能对比
快速参考,帮助您为任务选择合适的 Utility 技能。
文档处理
| 任务 | 技能 | 备注 |
|---|---|---|
| 读取数字化 PDF | pdf | 快速文本提取,支持页面范围 |
| 读取扫描 PDF | pdf-vision | 基于视觉的 OCR,较慢但能处理图像 |
| 读取/写入 Excel | xlsx | 完整的 XLSX/CSV/JSON 支持 |
| 总结任意文本 | summarize | 适用于文件、URL 和剪贴板 |
媒体与截取
| 任务 | 技能 | 备注 |
|---|---|---|
| 截图 | screen-capture | 全屏、窗口或区域 |
| 下载视频 | video-downloader | 需要 yt-dlp |
| 提取视频帧 | video-frames | 需要 ffmpeg |
| 文字转语音 | tts | 系统语音或云端语音 |
信息与密钥
| 任务 | 技能 | 备注 |
|---|---|---|
| 查找凭证 | 1password | 需要 op CLI |
| 查找地点/路线导航 | goplaces | 需要 Maps API 密钥 |
| 查看天气 | weather | 需要 Weather API 密钥 |
| 记忆上下文 | memory | 始终激活,自动保存 |
常见模式
文档处理流水线
组合 PDF 和摘要技能,实现端到端的文档处理。
# Read a PDF, summarize it, and save the summary
"이 PDF 읽고 요약해서 엑셀로 정리해줘"
# The agent chains:
# 1. pdf → read the document
# 2. summarize → condense key points
# 3. xlsx → write summary to a spreadsheet
调研工作流
将天气、位置和记忆技能结合使用,完成规划任务。
# Plan a trip
"이번 주말 부산 날씨 알려주고, 근처 맛집 찾아줘. 결과 기억해둬."
# The agent chains:
# 1. weather → forecast for Busan this weekend
# 2. goplaces → search restaurants near Busan
# 3. memory → save results for later reference
安全开发
从 1Password 获取凭证并注入到您的开发环境中。
# Set up dev environment with secure credentials
"1Password에서 DB 비밀번호 찾아서 .env에 넣어줘"
# The agent chains:
# 1. 1password → get "Database Production" password
# 2. inject into .env file via op:// reference