Document a source folder
Enter src/index.ts, src/utils/date.ts, and package.json on separate lines. The output groups index.ts and utils/ under src/.
Turn a list of paths or an indented outline into a directory tree for a README, project brief, or support message. Choose Unicode or ASCII connectors, filter unwanted entries, and export the result.
Folders are inferred from child paths or a trailing /. Ignores remove a matching folder and its descendants. No files are opened.
All parsing and formatting happens in your browser. No file contents or directory listing is uploaded.
Paste one relative file path per line, such as src/pages/index.astro. Alternatively, choose Indented names and use two or four spaces per level.
Add a trailing / to mark an empty folder. Folders with child paths are detected automatically.
Set a root label, ignore patterns, sort order, and maximum depth. A depth of 0 shows all levels.
Choose plain text or a Markdown code block, then copy or download your tree.
Enter src/index.ts, src/utils/date.ts, and package.json on separate lines. The output groups index.ts and utils/ under src/.
Keep node_modules and .git in the ignore list. Add *.log to hide matching names at any level, or src/generated to hide that path.
Choose two-space indentation, enter docs/ on the first line, then two spaces and getting-started.md on the next. The second line becomes a child of docs/.
Path mode accepts forward or backward slash separators and merges repeated folder paths. Indented mode accepts a single name on each line and infers a folder when deeper lines follow it. Each tab counts as the selected indent width. Mixed indentation or a jump over a level produces a visible error.
Ignore rules are a small wildcard format, not full .gitignore syntax. An asterisk matches any text, a question mark matches one character, and matching is case sensitive. A rule without a slash checks a name anywhere in the tree; a rule with a slash checks the full relative path. Matching folders and their descendants are removed. Exported Markdown includes a text code fence so connectors align in a monospaced font.
Keep a tree focused on what a reader needs. A root label identifies the project without repeating a root directory in every input path. Maximum depth limits long listings and marks omitted descendants with an ellipsis. ASCII connectors work in environments that cannot display box-drawing characters.
No. The tool formats text you paste. It does not request folder access, read files, or verify that paths exist.
End its name or path with a slash. Otherwise a name without descendants is treated as a file.
It supports simple * and ? wildcards and exact names or relative paths. Negation, comments, character classes, and Git-specific glob rules are not supported.
Paste paths or a plain indented outline rather than an already drawn tree. Remove existing connectors such as ├── and use the selected number of spaces per level.