Directory Tree Generator
Sketch a project's files and folders, then generate the connecting branches for your README. Type an outline instead of uploading a folder or sharing access to your file system.
Two spaces per level. ASCII or Unicode branches. No account needed.
Your directory tree
21 columns, 8 entries
project/ |-- src/ | |-- main.ts | `-- utils/ | `-- format.ts |-- tests/ | `-- main.test.ts `-- README.md
Keep a monospace font and wrapping off. The tree preserves your order; it does not inspect your files. Copy as Markdown adds a code fence for a README.
Describe a small project in your README
This fictional project has a source folder, nested utilities, a test folder and a README. The outline below is the exact input used for the initial result. The root has no indentation; src/ has two spaces, main.ts has four and format.ts has six.
project/
src/
main.ts
utils/
format.ts
tests/
main.test.ts
README.mdKeep ASCII branches selected and generate. Copy as Markdown adds a code fence so spaces survive in a README. The vertical pipe continues while a folder has a later sibling; the backtick marks the last child. The result contains eight entries. Switch to Unicode and generate again for box-drawing branches. Neither option changes the names or order.
Indentation rules, not guesses
Start with exactly one unindented folder ending in /. Add one entry per line and exactly two spaces for each level below it. A child must follow its parent; do not skip a level. Every folder that contains children must end in /. Use names, not full paths or existing tree output. Slashes are allowed only at the end of folder names; backslashes, . and .. are rejected.
Names are case-sensitive and must be unique within the same folder, including when one name ends in /. The same name in different folders is allowed. Internal spaces are preserved; trailing spaces and blank lines are errors. Windows CRLF becomes LF and one final newline is accepted. Tabs, Unicode names and other controls are not supported.
Limits: 8,000 input characters, 100 entries including the root, eight levels below the root and 60 characters per name including /. Nothing is silently sorted, trimmed, wrapped or truncated. A folder can be empty. This is an outline formatter, not a filesystem validator or a directory scanner.
Share the structure, not just the symbols
Text and TXT exports contain the visible result with LF line breaks and no final newline. A Markdown fence preserves spacing but does not make the diagram an accessible nested list. For this example, explain that src contains main.ts and utils/format.ts, tests contains main.test.ts, and README.md sits at the root. Use a semantic nested list for a structured alternative. Unicode branches need a font and destination that support box-drawing glyphs; ASCII avoids that requirement.
For a window layout rather than a project outline, use the terminal mockup builder. For rows and columns, use the ASCII table generator.
Formatting runs in your browser. This tool does not save names or put the outline in links. Export before leaving. Site analytics, storage and hosting are separate. See the README and CLI examples for related workflows.