/install file-writer
File Writer
Safe file writing strategy for large files to avoid truncation issues.
When to Use
- Writing files larger than 5000 bytes
- Updating existing files with significant changes
- Modifying specific sections of large files
- Previous write operations were truncated
- Need to ensure file integrity
Problem Analysis
Why Files Get Truncated
Large file writes can fail due to:
- Tool limitations -
writetool may have byte limits per operation - Network limits - Large file transfers may be truncated during transmission
- System limits - OpenClaw may have size limits on single operations
Safe Size Thresholds
| Operation | Safe Size | Risk Level |
|---|---|---|
write new file |
\x3C 2000 bytes | ✅ Safe |
write new file |
2000-5000 bytes | ⚠️ Moderate |
write new file |
> 5000 bytes | ❌ High risk |
edit modification |
\x3C 500 bytes | ✅ Safe |
edit modification |
500-1000 bytes | ⚠️ Moderate |
edit modification |
> 1000 bytes | ❌ High risk |
Safe Writing Strategy
Step 1: Read Current State
Before making changes, read the current file state:
# Read the file to understand current structure
read /path/to/file.md
# For large files, read specific sections
read /path/to/file.md --offset 100 --limit 50
Purpose:
- Understand file structure
- Identify exact text to replace `- Determine modification points
Step 2: Use Edit Tool for Precise Modifications
For small to medium changes, use edit tool:
Use `edit` tool with:
- `oldText`: Exact text to replace (must match exactly)
- `newText`: New text to replace with
- `file_path`: Path to the file
Best Practices:
- Keep modifications under 500 bytes
- Match
oldTextexactly (including whitespace) - Use unique text markers for large sections
- Verify
oldTextexists before editing
Step 3: Verify Results
After each modification, verify the result:
# Check file line count
wc -l /path/to/file.md
# Read modified section
read /path/to/file.md --offset \x3Cstart> --limit \x3Clines>
# Verify file ends correctly
read /path/to/file.md --offset -10
Success Criteria:
- File size increased as expected
- Modified section contains new content
- File ends correctly (not truncated)
- No syntax errors (for code files)
Step 4: Repeat Until Complete
For large multi-section updates:
- Modify one section at a time
- Verify each modification
- Proceed to next section
- Repeat until all changes complete
Fallback Strategies
Strategy 1: Split Large Writes
If write tool fails for large content:
Split content into chunks:
1. Write first chunk (header + section 1)
2. Verify and append section 2
3. Verify and append section 3
4. Continue until complete
Strategy 2: Use Unique Markers
For complex modifications, use unique markers:
In source file:
\x3C!-- SECTION_START: configuration -->
[existing content]
\x3C!-- SECTION_END: configuration -->
Edit operation:
oldText: "\x3C!-- SECTION_START: configuration -->\
[existing content]\
\x3C!-- SECTION_END: configuration -->"
newText: "\x3C!-- SECTION_START: configuration -->\
[new content]\
\x3C!-- SECTION_END: configuration -->"
Strategy 3: Incremental Build
For creating new large files:
1. Create file with basic structure
2. Add sections one by one using edit
3. Verify after each addition
4. Final verification
Strategy 4: Backup and Restore
For critical file modifications:
# Create backup before modification
cp /path/to/file.md /path/to/file.md.backup
# Attempt modification
# ... (write or edit operation)
# If modification fails, restore
cp /path/to/file.md.backup /path/to/file.md
Error Recovery
Edit Tool Fails
Symptom: "Could not find exact text in file"
Causes:
oldTextdoesn't match exactly- Whitespace differences (spaces vs tabs)
- File already modified
- Text doesn't exist in file
Solutions:
- Re-read the file to get exact content
- Use unique markers for large sections
- Match whitespace exactly (copy from file read)
- Use smaller
oldTextfor more precise matching
Write Tool Truncates
Symptom: File ends abruptly or is incomplete
Solutions:
- Use edit tool instead of write
- Split content into smaller chunks
- Write incrementally (section by section)
- Verify file size after each operation
File Corruption
Symptom: File has syntax errors or invalid content
Solutions:
- Restore from backup
- Re-read and re-verify
- Use incremental build strategy
- Validate syntax after each modification
Examples
Example 1: Adding Section to Large File
Step 1: Read file to find insertion point
read /path/to/large-file.md --offset 50 --limit 10
Step 2: Use edit to add new section
edit:
file_path: /path/to/large-file.md
oldText: "## Existing Section\
\
Content here"
newText: "## Existing Section\
\
Content here\
\
## New Section\
\
New content"
Step 3: Verify
read /path/to/large-file.md --offset 50 --limit 20
Example 2: Creating Large New File
Step 1: Create basic structure
write:
file_path: /path/to/new-file.md
content: "# Title\
\
## Section 1\
\
Content 1"
Step 2: Add sections incrementally
edit:
file_path: /path/to/new-file.md
oldText: "Content 1"
newText: "Content 1\
\
## Section 2\
\
Content 2"
Step 3: Verify
wc -l /path/to/new-file.md
Example 3: Replacing Large Section
Step 1: Read file to find exact text
read /path/to/file.md
Step 2: Use unique markers
edit:
file_path: /path/to/file.md
oldText: "\x3C!-- START: old-section -->\
[old content]\
\x3C!-- END: old-section -->"
newText: "\x3C!-- START: old-section -->\
[new content]\
\x3C!-- END: old-section -->"
Step 3: Verify
read /path/to/file.md | grep "new content"
Best Practices
- Always read before editing - Understand current state
- Use edit for modifications - More precise than write
- Keep changes small - Under 500 bytes per edit
- Verify after each operation - Don't batch operations
- Use unique markers - For complex modifications
- Create backups - For critical files
- Handle errors gracefully - Provide recovery strategies
- Test incrementally - Verify each step
Decision Tree
Need to write/update file?
├─ New file?
│ ├─ \x3C 2000 bytes?
│ │ └─ Use write tool
│ └─ > 2000 bytes?
│ └─ Use incremental build strategy
└─ Existing file?
├─ Small change (\x3C 500 bytes)?
│ └─ Use edit tool
├─ Medium change (500-1000 bytes)?
│ └─ Use edit with unique markers
└─ Large change (> 1000 bytes)?
└─ Use incremental edit strategy
Quick Reference
| Task | Tool | Strategy |
|---|---|---|
| Create small file | write | Direct write |
| Create large file | write + edit | Incremental build |
| Small modification | edit | Direct edit |
| Medium modification | edit | Edit with markers |
| Large modification | edit | Incremental edit |
| Replace section | edit | Unique markers |
| Append content | edit | Edit end of file |
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install file-writer - 安装完成后,直接呼叫该 Skill 的名称或使用
/file-writer触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
File Writer 是什么?
Safely write or update large files over 5000 bytes by reading, incrementally editing small sections, verifying each change, and using fallback recovery methods. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 764 次。
如何安装 File Writer?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install file-writer」即可一键安装,无需额外配置。
File Writer 是免费的吗?
是的,File Writer 完全免费(开源免费),可自由下载、安装和使用。
File Writer 支持哪些平台?
File Writer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 File Writer?
由 YuKaiXu(@ykaixu)开发并维护,当前版本 v1.0.0。