Read-only file browsing and reading in the SkillHub workspace (/home/alfred/。SkillHub/workspace),可处理提升工作效率。Use when 需要文件处理、文档转换、格式互转、内容提取时使用。不适用于加密文件破解。
浏览器
文件浏览器(免费版)
试用文件浏览器免费版,支持基础文件操作、目录浏览、简单搜索与文本预览。Use when 需要文件处理、文档转换、格式互转、内容提取时使用。不适用于加密文件破解。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。
它能做什么
文件浏览器免费版,支持基础文件操作、目录浏览、简单搜索与文本预览。Use when 需要文件处理、文档转换、格式互转、内容提取时使用。不适用于加密文件破解。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。
技能文档
浏览、查看、搜索、管理。四步完成文件系统操作。
无需复杂配置,通过简单的命令即可浏览目录、查看文件、搜索内容、管理文件。免费版聚焦轻量场景,提供基础的文件系统操作能力.
概述
免费版文件浏览器工具为个人用户提供基础的文件系统操作能力。覆盖目录浏览、文件查看、搜索、基础文件操作等核心场景,让文件管理触手可及.
核心定位
| 维度 | 免费版能力 |
|---|---|
| 目录浏览 | 支持(ls/tree) |
| 文件查看 | 支持(cat/head/tail) |
| 基础搜索 | 支持(find/grep) |
| 文件操作 | 支持(cp/mv/rm/mkdir) |
| 文本预览 | 支持(前N行/后N行) |
| 文件信息 | 支持(ls -la/stat) |
| 批量操作 | 不支持(需专业版) |
| 高级搜索 | 不支持(需专业版) |
| 文件监控 | 不支持(需专业版) |
| 压缩解压 | 不支持(需专业版) |
核心能力
1. 目录浏览
详细代码示例已移至
references/detail.md
处理: 解析目录浏览的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回目录浏览的响应数据,包含状态码、结果和日志.
2. 文件查看
输入格式
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 文件浏览器(免费版)处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
class FileViewer:
"""文件查看器(免费版)"""
# ...
def view_text(self, filepath, encoding="utf-8"):
"""查看文本文件"""
try:
with open(filepath, 'r', encoding=encoding) as f:
return f.read()
except FileNotFoundError:
return f"文件不存在:{filepath}"
except UnicodeDecodeError:
return f"无法解码({encoding}),可能是二进制文件"
except PermissionError:
return f"无权限读取:{filepath}"
# ...
def head(self, filepath, n=10, encoding="utf-8"):
"""查看文件前N行"""
try:
with open(filepath, 'r', encoding=encoding) as f:
lines = []
for i, line in enumerate(f):
if i >= n:
break
lines.append(line.rstrip())
return "\n".join(lines)
except FileNotFoundError:
return f"文件不存在:{filepath}"
# ...
def tail(self, filepath, n=10, encoding="utf-8"):
"""查看文件后N行"""
try:
with open(filepath, 'r', encoding=encoding) as f:
lines = f.readlines()
join([line.rstrip() for line in lines[-n:]])
except FileNotFoundError:
return f"文件不存在:{filepath}"
# ...
def view_range(self, filepath, start_line=1, end_line=20, encoding="utf-8"):
"""查看指定行范围"""
try:
with open(filepath, 'r', encoding=encoding) as f:
lines = []
for i, line in enumerate(f, 1):
if start_line <= i <= end_line:
append(f"{i:4}: {line.rstrip()}")
if i > end_line:
break
except FileNotFoundError:
return f"文件不存在:{filepath}"
# ...
def preview(self, filepath, max_chars=500):
"""预览文件(前N字符)"""
content = self.view_text(filepath)
if isinstance(content, str):
if len(content) > max_chars:
return content[:max_chars] + "\n\n... [截断,共 " + str(len(content)) + " 字符]"
return content
return content
# ...
viewer = FileViewer()
# ...
print("=== 文件前10行 ===")
print(viewer.head("README.md", 10))
# ...
print("\n=== 文件后5行 ===")
print(viewer.tail("README.md", 5))
# ...
print("\n=== 预览 ===")
print(viewer.preview("README.md", 200))
处理: 解析文件查看的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回文件查看的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
3. 基础搜索
处理: 解析基础搜索的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回基础搜索的响应数据,包含状态码、结果和日志.
4. 文件操作
处理: 解析文件操作的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回文件操作的响应数据,包含状态码、结果和日志. 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:文件浏览器免费版、支持基础文件操作、简单搜索与文本预、文件浏览器助手免、费版是面向个人用、户的轻量文件管理、四步流程、提供基础的文件系、统操作能力、Use、when、需要文件处理、文档转换、格式互转、内容提取时使用、不适用于加密文件、适用于独立开发者、企业团队和自动化、工作流场景等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
使用场景
场景一:日常文件管理
场景描述:浏览目录、查看文件、整理文件.
browser = DirectoryBrowser()
viewer = FileViewer()
ops = FileOperations()
# ...
print("当前目录内容:")
files = browser.list_directory(".", long_format=True)
for f in files[:10]:
print(f" {f['name']:20} {f['size_human']:>10} {f['modified']}")
# ...
print("\nREADME.md 前10行:")
print(viewer.head("README.md", 10))
# ...
场景二:快速查找文件
场景描述:根据名称或内容快速查找文件.
searcher = FileSearcher()
# ...
print("=== 查找所有 .md 文件 ===")
md_files = searcher.find_by_extension(".", "md")
for f in md_files[:10]:
print(f" {f}")
# ...
print("\n=== 搜索包含'error'的行 ===")
results = searcher.search_in_files(".", "error", "*.py")
for r in results[:5]:
print(f" {r['file']}:{r['line']}")
场景三:文本预览
场景描述:快速预览文本文件内容.
viewer = FileViewer()
# ...
files_to_preview = ["README.md", "config.yaml", "main.py"]
for f in files_to_preview:
if os.path.exists(f):
print(f"\n=== {f} 预览 ===")
print(viewer.preview(f, 300))
else:
print(f"\n{f} 不存在")
快速开始
- 阅读## 核心能力章节了解skill功能
- 按## 依赖说明配置环境
- 执行所需能力对应的命令
- 参考## 错误处理章节处理异常
- 查看## FAQ解答常见疑问
30秒上手
ls -la
# ...
cat README.md | head -10
# ...
find . -name "*.py" -type f
# ...
grep -r "TODO" --include="*.py" .
120秒标准搭建
python3 --version
ls --version 2>/dev/null || dir # Windows
cat > file_browser.py << 'PYEOF'
import os
import sys
from datetime import datetime
# ...
def list_dir(path="."):
entries = os.listdir(path)
for entry in sorted(entries):
full = os.path.join(path, entry)
if os.path.isdir(full):
print(f" [DIR] {entry}/")
else:
size = os.path.getsize(full)
print(f" [FILE] {entry} ({size} bytes)")
# ...
def view_file(filepath, lines=10):
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
for i, line in enumerate(f):
if i >= lines: break
print(f" {i+1}: {line.rstrip()}")
# ...
def search_files(root, pattern):
import fnmatch
for dirpath, _, filenames in os.walk(root):
for f in filenames:
if fnmatch.fnmatch(f, pattern):
print(f" {os.path.join(dirpath, f)}")
# ...
if __name__ == "__main__":
cmd = sys.argv[1] if len(sys.argv) > 1 else "list"
if cmd == "list":
list_dir(sys.argv[2] if len(sys.argv) > 2 else ".")
elif cmd == "view":
view_file(sys.argv[2])
elif cmd == "search":
search_files(".", sys.argv[2])
PYEOF
# ...
python3 file_browser.py list
响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤.
配置示例
基础配置
import os
# ...
class FileBrowserConfig:
"""文件浏览器配置(免费版)"""
DEFAULT_PATH = os.getenv("FB_DEFAULT_PATH", ".")
MAX_SEARCH_RESULTS = int(os.getenv("FB_MAX_RESULTS", "100"))
PREVIEW_MAX_CHARS = int(os.getenv("FB_PREVIEW_CHARS", "500"))
DEFAULT_ENCODING = os.getenv("FB_ENCODING", "utf-8")
SHOW_HIDDEN = os.getenv("FB_SHOW_HIDDEN", "0") == "1"
# ...
@classmethod
def show(cls):
print("=== 文件浏览器配置 ===")
print(f"默认路径:{cls.DEFAULT_PATH}")
print(f"最大搜索结果:{cls.MAX_SEARCH_RESULTS}")
print(f"预览字符数:{cls.PREVIEW_MAX_CHARS}")
print(f"默认编码:{cls.DEFAULT_ENCODING}")
print(f"显示隐藏文件:{cls.SHOW_HIDDEN}")
# ...
FileBrowserConfig.show()
常用命令速查
ls -la # 详细列表
ls -la --sort=time # 按时间排序
tree -L 3 # 树形结构(3层)
cat file.txt # 查看全部
head -n 10 file.txt # 前10行
tail -n 10 file.txt # 后10行
less file.txt # 分页查看
find . -name "*.py" # 按文件名
find . -name "*.py" -type f # 仅文件
grep -r "pattern" . # 内容搜索
grep -rn "TODO" --include="*.py" . # 限定文件类型
cp src dst # 复制
mv src dst # 移动/重命名
rm file # 删除
mkdir -p path/to/dir # 创建多级目录
touch file.txt # 创建空文件
最佳实践
1. 安全操作
def safe_delete(path):
"""安全删除(带确认)"""
confirm = input(f"确认删除 {path}? (y/N): ")
if confirm.lower() == 'y':
return ops.delete(path)
return {"success": False, "message": "已取消"}
# ...
def backup_before_operation(paths, backup_dir="./backup"):
"""操作前备份"""
import shutil
os.makedirs(backup_dir, exist_ok=True)
for path in paths:
if os.path.exists(path):
shutil.copy2(path, backup_dir)
2. 搜索优化
def search_in_project(root, pattern, exclude_dirs=None):
"""在项目中搜索(排除指定目录)"""
exclude_dirs = exclude_dirs or ['node_modules', '.git', 'venv', '__pycache__']
# ...
for dirpath, dirnames, filenames in os.walk(root):
dirnames[:] = [d for d in dirnames if d not in exclude_dirs]
错误处理
def robust_operation(func, *args, **kwargs):
"""带错误恢复的操作"""
try:
return func(*args, **kwargs)
except PermissionError:
return {"error": "无权限"}
except FileNotFoundError:
return {"error": "文件不存在"}
except Exception as e:
return {"error": str(e)}
| 序号 | 错误场景 | 原因 | 处理方式 | 优先级 |
|---|---|---|---|---|
| 1 | 输入参数缺失 | 用户未提供必要参数 | 提示用户提供所需参数后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 | P0 |
| 2 | 执行超时 | 处理时间过长 | 检查输入数据量,分批处理 | P1 |
| 3 | 输出格式错误 | 结果不符合预期格式 | 检查output_format参数配置 | P1 |
常见问题
Q1:免费版支持批量操作吗?
不支持。免费版每次只能操作一个文件/目录。如需批量操作(批量复制、批量重命名、批量删除等),需升级至专业版.
Q2:如何查看二进制文件?
免费版不支持二进制文件查看。文本预览会尝试以UTF-8解码,如失败会提示"可能是二进制文件"。如需查看二进制文件的十六进制、Base64等格式,需升级专业版.
Q3:搜索速度慢怎么办?
可能原因:(1) 搜索范围过大,建议限定目录;(2) 包含大量大文件,建议排除node_modules/.git等目录;(3) 内容搜索时文件过多,建议限定文件类型。免费版可通过 exclude_dirs 参数排除目录.
Q4:支持哪些文件系统操作?
免费版支持:目录浏览(ls/tree)、文件查看(cat/head/tail)、基础搜索(find/grep)、文件操作(cp/mv/rm/mkdir/touch)、文件信息(stat)。如需压缩解压、文件监控、权限管理等高级操作,需升级专业版.
Q5:可以跨文件系统操作吗?
可以。免费版支持跨文件系统复制和移动(如从本地到网络驱动器)。但跨文件系统操作可能较慢,且某些元信息(如权限)可能无法保留.
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- Python: 3.8+
依赖详情
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Python 3.8+ | 运行时 | 必需 | 官网下载安装 |
| os | Python库 | 必需 | Python标准库(文件操作) |
| shutil | Python库 | 必需 | Python标准库(高级文件操作) |
| fnmatch | Python库 | 必需 | Python标准库(文件名匹配) |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
API Key 配置
- 免费版无需任何API Key
- 文件操作基于本地文件系统,不涉及云端调用
- LLM模型路由由Agent平台内置提供
可用性分类
- 分类: MD+EXEC(Markdown指令+命令行执行)
- 说明: 通过自然语言指令驱动Agent执行文件系统操作任务
已知限制
本免费体验版限制以下高级功能(需升级至专业版解锁):
- 批量操作(批量复制/移动/删除/重命名)
- 高级搜索(正则表达式/文件属性/时间范围)
- 文件监控(实时监控文件变化)
- 压缩解压(zip/tar/gzip/rar)
- 二进制查看(十六进制/Base64)
- 权限管理(chmod/chown详细控制)
- 文件比较(diff/merge)
- 云存储集成(S3/OSS/网盘)
- 优先技术支持
解锁全部高级能力请使用专业版:file-browser-tool-pro
示例
基本用法
输出:返回执行结果,包含操作状态和输出数据
用户: 执行核心功能
Skill: 正在执行核心功能...
Skill: 执行完成,结果如下: 操作成功
输出格式
{
"success": true,
"data": {
"result": "文件浏览器(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "file browser"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
相关技能
通过自然语言驱动浏览器交互的CLI工具,支持本地Chrome,适合个人开发者快速自动化。Use when 需要提升效率、自动化流程、批量处理、工作流优化时使用。不适用于需要人工创意判断的任务。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
利用视觉模型识别文件内容并智能重命名归档,模拟人类整理流程,适合个人桌面清理。Use when 需要文件处理、文档转换、格式互转、内容提取时使用。不适用于加密文件破解。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。
基于Playwright的浏览器自动化CLI,支持签到、填表、截图与信息抓取,适合个人用户。Use when 需要提升效率、自动化流程、批量处理、工作流优化时使用。不适用于需要人工创意判断的任务。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
无头浏览器自动化CLI,支持可访问性树快照与确定性元素选择,适合个人开发者。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。
网页浏览助手免费版,面向个人用户提供基础的网页浏览和信息提取能力。支持网站访问、内容总结、URL 内容提取、网络搜索等核心功能。Use when 需要SEO优化、关键词分析、排名提升、搜索流量优化时使用。不适用于黑帽SEO手段。Use when 需要SEO优化、关键词分析、排名提升、搜索流量优化时使用。不适用于黑帽SEO手段.