Agent skill

Filesystem

by Mathews-Tom in Mathews-Tom/armory

File and directory operations via Claude Code built-in tools, replacing the Filesystem MCP server.

MITAuto-check passedProductivity & Automation

Install Filesystem

skills CLI
$ npx skills add Mathews-Tom/armory --skill filesystem -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Mathews-Tom/armory filesystem --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/filesystem .claude/skills/filesystem && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
filesystem
GitHub stars
328
Token cost
~2.5k tokens
SKILL.md length
846 words
Files
2
Skills in repo
80
Repo updated
First seen
Licence
MIT

At a glance

File and directory operations via Claude Code built-in tools, replacing the Filesystem MCP server.

  • Works in 4 steps: Check project structure: fd . --type f… → Read configuration: Read: package.json… → Find entry points: Grep: pattern="def… → …
  • : read this file
  • SKILL.md covers Quick Reference, Reading Files, Writing and Editing Files and Finding Files, plus 5 more sections
  • Calls bash

What it does

Filesystem is an agent skill from Mathews-Tom/armory. File and directory operations via Claude Code built-in tools, replacing the Filesystem MCP server. Triggers on: "read this file", "write to file", "edit file", "find files matching", "search for text in files", "list directory", "show directory tree", "rename file".

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/cases.yaml`).

It sits in Productivity & Automation, covering File organization and MCP servers. It works with Model Context Protocol and Bash. The repository describes itself as: Curated, production-grade skills for AI coding agents. Battle-tested workflows for developers who use AI seriously. The licence is MIT.

When your agent uses it

  • : read this file
  • Find files matching
  • Search for text in files
  • Show directory tree

Example prompts

  • “read this file”
  • “write to file”
  • “edit file”
  • “/filesystem”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Check project structure: fd . --type f --max-depth 2
  2. Read configuration: Read: package.json or Read: pyproject.toml
  3. Find entry points: Grep: pattern="def main|if name" type="py"
  4. Read key files identified above

What it can do on your machine

Read from SKILL.md and the folder at commit 4594fb7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Filesystem loads about 2.5k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 846 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~69
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Mathews-Tom/armory at commit 4594fb7, republished under its MIT licence (© Mathews-Tom). 846 words, ~2,486 tokens.

Download SKILL.mdSave it as .claude/skills/filesystem/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
filesystem
description
File and directory operations via Claude Code built-in tools, replacing the Filesystem MCP server. Triggers on: "read this file", "write to file", "edit file", "find files matching", "search for text in files", "list directory", "show directory tree", "rename file".
metadata.version
1.1.1
metadata.category
content
metadata.tags
files, directories, search, navigation
metadata.difficulty
beginner

Filesystem

All file and directory operations use Claude Code's built-in tools. No MCP server needed — native tools are faster, more capable, and cost zero context tokens when idle.

Quick Reference

Filesystem MCP ToolReplacementNotes
read_file(path)Read toolSupports line offset and limit
read_multiple_files(paths)Multiple parallel Read callsFaster than sequential MCP calls
write_file(path, content)Write toolOverwrites entire file
edit_file(path, edits)Edit toolExact string replacement; surgical edits
list_directory(path)Glob or Bash lsGlob for patterns, ls for simple listing
directory_tree(path)Bash fd or Glob **/*fd is fastest; Glob for pattern filtering
search_files(pattern, path)Grep toolFull regex, file type filters, context lines
create_directory(path)Bash mkdir -p-p creates intermediate directories
move_file(src, dst)Bash mvAlso handles renames
get_file_info(path)Bash stat or Bash ls -laSize, permissions, timestamps
list_allowed_directoriesN/AClaude Code operates in the working directory; no sandbox restrictions

Reading Files

Read a Single File

Use the Read tool with an absolute path:

text
Read: /path/to/file.py

For large files, use offset and limit to read specific sections:

text
Read: /path/to/file.py (offset: 100, limit: 50)

This reads 50 lines starting from line 100. Use this for files with thousands of lines to avoid flooding context.

Read Multiple Files in Parallel

Issue multiple Read calls in a single response. Claude Code executes them concurrently:

text
Read: /path/to/file1.py
Read: /path/to/file2.py
Read: /path/to/file3.py

Parallel reads are faster than the MCP's read_multiple_files which serialized internally.

Read Images and PDFs

The Read tool handles binary formats:

  • Images (PNG, JPG, SVG): displayed visually
  • PDFs: extracted text; use pages: "1-5" for large documents (max 20 pages per call)

Writing and Editing Files

Write a New File

Use the Write tool to create a file or overwrite an existing one:

text
Write: /path/to/new-file.py
Content: <full file content>

The Write tool requires reading the file first if it already exists. For new files, write directly.

Edit an Existing File

Use the Edit tool for surgical modifications — replace exact string matches:

text
Edit: /path/to/file.py
old_string: "def old_function():"
new_string: "def new_function():"

The Edit tool fails if old_string is not unique in the file. Provide enough surrounding context to make the match unique, or use replace_all: true for find-and-replace across the entire file.

Prefer Edit over Write for existing files. Edit preserves everything outside the changed region and shows a clear diff. Write replaces the entire file.


Finding Files

By Name Pattern (Glob)
text
Glob: **/*.py           → all Python files recursively
Glob: src/**/*.ts       → TypeScript files under src/
Glob: *.md              → Markdown files in current directory
Glob: **/test_*.py      → test files anywhere in the tree

Results are sorted by modification time (most recent first).

By Content (Grep)
text
Grep: pattern="def process_data" type="py"
Grep: pattern="TODO|FIXME" glob="*.py"
Grep: pattern="class.*Controller" output_mode="content" -C=2
Grep ParameterPurpose
patternRegex pattern to match
typeFile type filter (py, js, ts, rust, go, etc.)
globGlob pattern filter (*.tsx, src/**/*.py)
output_modefiles_with_matches (default), content, count
-C, -A, -BContext lines: around, after, before matches
-iCase-insensitive search
Directory Listing

Simple listing:

bash
ls -la /path/to/directory

Recursive tree with fd:

bash
fd . /path/to/directory --type f

Tree with depth limit:

bash
fd . /path/to/directory --type f --max-depth 2

Filter by extension:

bash
fd -e py /path/to/directory

File Operations

Create Directory
bash
mkdir -p /path/to/new/directory

The -p flag creates all intermediate directories. Always verify the parent path exists first with ls.

Move / Rename
bash
mv /path/to/source.py /path/to/destination.py

Rename a file (same directory):

bash
mv /path/to/old-name.py /path/to/new-name.py

Move a directory:

bash
mv /path/to/source-dir /path/to/destination-dir
Copy
bash
cp /path/to/source.py /path/to/destination.py
cp -r /path/to/source-dir /path/to/destination-dir
Delete
bash
rm /path/to/file.py
rm -r /path/to/directory

Always confirm with the user before deleting files or directories.

File Metadata
bash
stat /path/to/file.py
ls -la /path/to/file.py
wc -l /path/to/file.py
CommandReturns
statSize, permissions, timestamps, inode
ls -laPermissions, owner, size, modification date
wc -lLine count
fileMIME type detection

Common Workflows

Find and Replace Across Files
bash
# Find all files containing the old string
Grep: pattern="old_function_name" type="py" output_mode="files_with_matches"

# Then Edit each file
Edit: /path/to/file1.py (old_string → new_string, replace_all: true)
Edit: /path/to/file2.py (old_string → new_string, replace_all: true)
Show full SKILL.md (346 more words)Show less
Explore an Unfamiliar Codebase
  1. Check project structure: fd . --type f --max-depth 2
  2. Read configuration: Read: package.json or Read: pyproject.toml
  3. Find entry points: Grep: pattern="def main|if __name__" type="py"
  4. Read key files identified above
Find Large Files
bash
fd --type f --exec stat -f '%z %N' {} \; | sort -rn | head -20

Error Handling

ErrorCauseResolution
Read: file not foundPath incorrect or file deletedVerify with ls or Glob
Edit: old_string not uniqueMultiple matches in the fileAdd more surrounding context to make it unique
Edit: old_string not foundContent changed since last readRe-read the file, then retry with current content
Write: file not read firstAttempting to overwrite without readingRead the file first, then Write
Permission deniedInsufficient OS permissionsCheck with ls -la; use chmod if appropriate
Glob: no files foundPattern too restrictiveBroaden the pattern; check path spelling

Limitations

  • Read returns up to 2000 lines by default. Use offset/limit for larger files.
  • Read truncates lines longer than 2000 characters.
  • Edit requires exact string matching — whitespace and indentation must match precisely.
  • Write overwrites the entire file. No append mode. To append, read first, then write the combined content.
  • Glob only matches files, not directories. Use Bash ls or fd to list directories.
  • PDF reading is limited to 20 pages per call. Specify page ranges for large documents.

Calibration Rules

  1. Read before Edit. Always read a file before editing it. The Edit tool enforces this.
  2. Edit over Write for existing files. Edit is surgical and shows diffs. Write is a full replacement — use it only for new files or complete rewrites.
  3. Glob over Bash for file search. Glob is optimized for pattern matching. Only fall back to fd or find for queries Glob cannot express (size filters, date filters).
  4. Grep over Bash for content search. Grep is optimized for ripgrep-based search with proper permissions. Never use grep or rg via Bash.
  5. Parallel reads for multiple files. Issue all Read calls in a single response for concurrent execution.
  6. Always use absolute paths. Claude Code tools require absolute paths. Never pass relative paths to Read, Write, or Edit.

© Mathews-Tom, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/filesystem of Mathews-Tom/armory.

  • SKILL.md
  • evals/cases.yaml

Open the folder on GitHubat commit 4594fb7

Compare with similar skills

Filesystem next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Filesystem compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Filesystem this skillMathews-Tom/armory328—~2.5kAutomated safety check: PassMIT
Orchardokooo5km/Skills4U183—~5kAutomated safety check: WarnMIT
Crush Configurationcharmbracelet/crush29k—~3.7kAutomated safety check: PassCustom licence
Record Demoapify/mcpc983—~3.3kAutomated safety check: NotesApache-2.0
Ue Code AuthoringJasonMa0012/MooaToon749—~1.9kAutomated safety check: NotesCustom licence
Releasejgravelle/jcodemunch-mcp2.7k—~6.5kAutomated safety check: PassCustom licence

Similar skills

  • Orchard

    okooo5km/Skills4U

    Use the local Orchard app to interact with macOS Apple apps and services: Calendar, Reminders, Clock, Mail, Contacts, Notes, Music, Weather, Messages, Location/Maps, and Apple Shortcuts.

    183 GitHub stars~5k tokensUpdated yesterday
    Agent WorkflowsAuto-check: warnings
  • Crush Configuration

    charmbracelet/crush

    Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.

    29k GitHub stars~3.7k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Record Demo

    apify/mcpc

    Official

    Record or regenerate the mcpc demo GIFs (the README hero docs/images/mcpc-demo.gif and the focused tapes in docs/vhs/) with VHS.

    983 GitHub stars~3.3k tokensUpdated yesterday
    Agent WorkflowsAuto-check: notes
  • Ue Code Authoring

    JasonMa0012/MooaToon

    A skill your agent uses when writing or modifying UE C++ (classes, actors, components, subsystems, interfaces, function libraries) with Rider MCP available.

    749 GitHub stars~1.9k tokensUpdated 20 days ago
    DevelopmentAuto-check: notes
  • Release

    jgravelle/jcodemunch-mcp

    Publishing a jMunch release (jcodemunch-mcp, jdocmunch-mcp, jdatamunch-mcp, jragmunch-cli), reviewing/merging/closing PRs, and responding to the community.

    2.7k GitHub stars~6.5k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Mcpc

    apify/mcpc

    Official

    Use the mcpc CLI to work with MCP (Model Context Protocol) servers from the shell - connect to a server as a persistent session, then list and call tools, read resources, get prompts, and run async…

    983 GitHub stars~3.5k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from Mathews-Tom/armory

All 80 skills in this repo
  • Architecture Reviewer

    Mathews-Tom/armory

    Architecture reviews across 7 dimensions (structural, scalability, enterprise readiness, performance, security, ops, data) with scored reports.

    328 GitHub stars~4.6k tokensUpdated 2 days ago
    Auto-check passed
  • Concept To Image

    Mathews-Tom/armory

    Turn concepts into static HTML visuals exported as PNG or SVG files via HTML/CSS/SVG.

    328 GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check passed
  • Watch

    Mathews-Tom/armory

    A skill your agent uses when analyzing an existing video URL or local recording: "watch this video", "analyze youtube video", "summarize this video", "youtube transcript", "find this moment", "what…

    328 GitHub stars~2.8k tokensUpdated 2 days ago
    Auto-check passed
  • Code Refiner

    Mathews-Tom/armory

    Deep code simplification and refactoring preserving behavior across Python, Go, TypeScript, Rust.

    328 GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check passed
  • Concept To Video

    Mathews-Tom/armory

    Turn concepts into animated explainer videos using Manim (Python) with MP4/GIF output, audio overlay, multi-scene composition.

    328 GitHub stars~4.9k tokensUpdated 2 days ago
    Auto-check passed
  • Decision Map

    Mathews-Tom/armory

    Maps the unresolved architecture, policy, and scope decisions that must be answered before planning can start: one durable decision ticket per question on the issue tracker, typed and blocker-linked…

    328 GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check passed

Questions about Filesystem

What does Filesystem do?

File and directory operations via Claude Code built-in tools, replacing the Filesystem MCP server. Filesystem is an agent skill from Mathews-Tom/armory. File and directory operations via Claude Code built-in tools, replacing the Filesystem MCP server.

When should I use Filesystem?

Filesystem fits situations like: : read this file; find files matching; search for text in files; show directory tree.

How do I install Filesystem in Claude Code?

Run `npx skills add Mathews-Tom/armory --skill filesystem -a claude-code`. Or copy the skill folder (skills/filesystem in Mathews-Tom/armory) into .claude/skills/filesystem in your project. Claude Code loads it when a task matches its description.

How do I install Filesystem in Codex?

Run `npx skills add Mathews-Tom/armory --skill filesystem -a codex`. Or copy the skill folder (skills/filesystem in Mathews-Tom/armory) into .agents/skills/filesystem in your project. Codex loads it when a task matches its description.

Can I use Filesystem in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mathews-Tom/armory --skill filesystem -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/filesystem, .gemini/skills/filesystem, .github/skills/filesystem and .opencode/skills/filesystem in your project.

What does Filesystem need to run?

Going by SKILL.md and its folder, Filesystem needs the command-line tools its instructions call (bash). Our summary lists: Python 3.

Does Filesystem access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Filesystem safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Filesystem use?

Filesystem is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Filesystem use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Filesystem?

Skills that share tags, products or a category with Filesystem: Orchard (okooo5km/Skills4U, 183 stars), Crush Configuration (charmbracelet/crush, 29k stars), Record Demo (apify/mcpc, 983 stars) and Ue Code Authoring (JasonMa0012/MooaToon, 749 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Filesystem?

Mathews-Tom (a GitHub user) maintains it in Mathews-Tom/armory, which has 328 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on October 6, 2026.

Source: Mathews-Tom/armory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.