filesystem
$
npx mdskill add Memento-Teams/Memento-Skills/filesystemExecute read, write, edit, list, and search file operations directly.
- Handles parsing JSON, CSV, and other structured formats efficiently.
- Integrates with python_repl for complex transformations and batch processing.
- Automatically creates parent directories and supports absolute or relative paths.
- Delivers results through direct file manipulation without external dependencies.
SKILL.md
.github/skills/filesystemView on GitHub ↗
---
name: filesystem
description: Direct filesystem operations (read, write, edit, list, search files). Use for any file manipulation tasks.
---
# Filesystem Skill
## Overview
Direct filesystem operations without external dependencies. Read, write, edit, list, copy, move, and search files.
## Usage
Use the available builtin tools to perform file operations directly. Commonly used tools for this skill are: `list_dir`, `read_file`, `file_create`, `edit_file_by_lines`, `grep`, and `bash`.
When the task requires programmatic/structured processing (e.g., parsing complex formats or batch transformations), `python_repl` can be used as an advanced fallback.
- Paths can be absolute or relative to working_dir
- Parent directories are created automatically for write operations
- For complex file operations not covered by builtin tools, use `bash`
---
## Common Recipes
### JSON
```python
import json
# Read
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# Write (pretty-printed)
with open('output.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
```
### CSV
```python
import csv
# Read
with open('data.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
# Write
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=['name', 'value'])
writer.writeheader()
writer.writerows([{'name': 'a', 'value': 1}])
```
### YAML
```python
# Requires: pip install pyyaml
import yaml
# Read
with open('config.yaml', 'r') as f:
data = yaml.safe_load(f)
# Write
with open('output.yaml', 'w') as f:
yaml.dump(data, f, default_flow_style=False, allow_unicode=True)
```
### Directory Operations
```bash
# List files recursively
find . -type f -name "*.py"
# Directory size
du -sh /path/to/dir
# Copy directory
cp -r src/ dst/
# Move/rename
mv old_name.txt new_name.txt
```
### File Search
```bash
# Search file contents (grep)
grep -r "search_term" --include="*.py" .
# Find files by name
find . -name "*.log" -mtime -7 # Modified in last 7 days
# Count lines
wc -l *.py
```
### Text Processing
```bash
# Sort and deduplicate
sort file.txt | uniq > sorted.txt
# Extract columns
cut -d',' -f1,3 data.csv
# Replace text
sed -i '' 's/old/new/g' file.txt # macOS
sed -i 's/old/new/g' file.txt # Linux
```
More from Memento-Teams/Memento-Skills