opencode-read-file
v1.0.0
Published
OpenCode 文件读取助手 - macOS 26.3 兼容版,替代附件上传功能
Maintainers
Readme
OpenCode 文件读取助手 (opencode-read-file)
macOS 26.3 兼容版 - 解决附件上传功能失效问题
背景
macOS 26.3 系统下,OpenCode Desktop 的附件上传按钮因 Tauri dialog plugin 兼容性问题无法正常工作(GitHub Issue #14669)。
本插件提供替代的文件读取功能,通过命令行工具直接读取本地文件,绕过原生附件上传逻辑。
功能特点
- 支持 20+ 种文件格式
- JSON/YAML/CSV 自动格式化
- 代码文件语法高亮
- 文件元信息获取
- 文件大小限制保护(默认 10MB)
- 详细错误信息提示
支持的文件类型
Tier 1(完全支持)
| 类型 | 扩展名 | |------|--------| | 文本 | .txt, .md, .log | | 数据 | .json, .yaml, .yml, .csv | | 代码 | .js, .ts, .py, .go, .java, .c, .cpp, .rs, .rb, .php | | 脚本 | .sh, .bash, .zsh |
Tier 2(支持读取)
| 类型 | 扩展名 | |------|--------| | 文档 | .pdf, .html, .xml |
Tier 3(计划支持)
| 类型 | 扩展名 | |------|--------| | 思维导图 | .xmind | | Office | .docx, .xlsx | | 图片 | .png, .jpg, .gif, .webp |
工具列表
| 工具名 | 说明 |
|--------|------|
| /read-file | 通用文件读取,支持所有格式 |
| /read-json | JSON 文件专用,自动格式化 |
| /read-csv | CSV 文件专用,输出 Markdown 表格 |
| /read-code | 代码文件专用,带语法高亮 |
| /file-info | 获取文件元信息(名称、大小、类型等) |
安装
方法一:本地安装
git clone https://github.com/Jones-BIGBIG/opencode-read-file.git
cd opencode-read-file
bun install
bun run build方法二:NPM 安装(计划中)
bun add -g opencode-read-file配置
在项目根目录创建 opencode.json:
{
"plugins": [
{
"name": "opencode-read-file",
"path": "/path/to/opencode-read-file/dist/index.js"
}
]
}使用示例
读取 JSON 文件
用户: 读取 /Users/xxx/data.json
Agent: [调用 read-file 工具]输出:
📝 **文件内容**
{
"name": "example",
"version": "1.0.0"
}读取 CSV 文件
用户: 读取 /Users/xxx/data.csv输出(Markdown 表格):
| id | name | age |
| -- | ---- | --- |
| 1 | Alice | 25 |
| 2 | Bob | 30 |获取文件信息
用户: 查看 /Users/xxx/script.ts 的文件信息输出:
📄 **文件信息**
- 名称: script.ts
- 扩展名: ts
- 类型: typescript
- 层级: tier_1
- 大小: 1.5 KB
- MIME: application/typescript
- 修改时间: 2025-01-15T10:30:00.000Z开发
环境要求
- Bun >= 1.0.0
- Node.js >= 18.0.0(可选)
构建
bun run build测试
bun test类型检查
bun run typecheck项目结构
opencode-read-file/
├── src/
│ ├── index.ts # 插件入口
│ ├── tools/
│ │ └── read-file.ts # 核心读取逻辑
│ └── types/
│ └── index.ts # 类型定义
├── dist/
│ └── index.js # 编译输出
├── package.json
├── tsconfig.json
└── README.md技术栈
- Bun - 运行时和打包工具
- Zod - 参数验证
- @opencode-ai/plugin - OpenCode 插件 SDK
- pdf-parse - PDF 解析
常见问题
Q: 为什么不直接修复附件上传按钮?
A: 附件上传按钮是 Tauri dialog plugin 的原生功能,问题出在 macOS 26.3 系统层面的兼容性。插件系统无法修改宿主应用的原生代码,只能提供替代方案。
Q: 支持二进制文件吗?
A: 目前支持 PDF 文本提取。图片、Office 文档等二进制格式的支持正在开发中。
Q: 文件大小有限制吗?
A: 默认限制 10MB,可通过 maxBytes 参数调整。
贡献
欢迎提交 Issue 和 Pull Request!
