File Browser Skill
Quick Start
Resolve all paths relative to WORKSPACE=/home/alfred/.openclaw/workspace. Sanitize inputs to prevent escapes or absolutes.
- To list directory: exec("scripts/list_files.sh", [rel_path]) → JSON {success: bool, data: array of names, error: string}
- To read file: exec("scripts/read_file.sh", [rel_path]) → JSON {success: bool, data: string (text content), error: string}
- Handle errors: For binary/large/non-text files, return error JSON.
Step-by-Step Workflow
- Parse user query for action (list/read) and relative path.
- Call appropriate script with sanitized rel_path.
- Parse JSON output; respond to user with results or error message.
- If path invalid or outside workspace, reject immediately.
Safety Guidelines
- Enforce read-only: No writes, deletes, or exec beyond scripts.
- Log accesses if verbose mode enabled.
- For large files (>10k chars), truncate or summarize.
Edge Cases
- Empty path: Default to "." (workspace root).
- Binary file: Return error "Non-text file".
- See references/examples.md for more (if added).
Bundled Resources
- scripts/list_files.sh: Bash wrapper for ls.
- scripts/read_file.sh: Bash wrapper for cat with limits.