Agent Skills
› synthetic-sciences/openscience
› bun-file-io
bun-file-io
GitHub提供Bun环境下文件读写、扫描及目录操作的API使用指南与仓库最佳实践,涵盖Bun原生API与node:fs的适用场景,辅助开发者高效处理文件I/O任务。
Trigger Scenarios
进行文件读取或写入操作
执行目录创建或删除
需要扫描文件或查找二进制路径
Install
npx skills add synthetic-sciences/openscience --skill bun-file-io -g -y
SKILL.md
Frontmatter
{
"name": "bun-file-io",
"description": "Use this when you are working on file operations like reading, writing, scanning, or deleting files. It summarizes the preferred file APIs and patterns used in this repo. It also notes when to use filesystem helpers for directories."
}
Use this when
- Editing file I/O or scans in
backend/cli(the OpenScience CLI package) - Handling directory operations or external tools
Bun file APIs (from Bun docs)
Bun.file(path)is lazy; calltext,json,stream,arrayBuffer,bytes,existsto read.- Metadata:
file.size,file.type,file.name. Bun.write(dest, input)writes strings, buffers, Blobs, Responses, or files.Bun.file(...).delete()deletes a file.file.writer()returns a FileSink for incremental writes.Bun.Glob+Array.fromAsync(glob.scan({ cwd, absolute, onlyFiles, dot }))for scans.- Use
Bun.whichto find a binary, thenBun.spawnto run it. Bun.readableStreamToText/Bytes/JSONfor stream output.
When to use node:fs
- Use
node:fs/promisesfor directories (mkdir,readdir, recursive operations).
Repo patterns
- Prefer Bun APIs over Node
fsfor file access. - Check
Bun.file(...).exists()before reading. - For binary/large files use
arrayBuffer()and MIME checks viafile.type. - Use
Bun.Glob+Array.fromAsyncfor scans. - Decode tool stderr with
Bun.readableStreamToText. - For large writes, use
Bun.write(Bun.file(path), text).
Quick checklist
- Use Bun APIs first.
- Use
path.join/path.resolvefor paths. - Prefer promise
.catch(...)overtry/catchwhen possible.
Version History
- e9844a4 Current 2026-07-11 17:18


