mks is a lightweight, cross-platform CLI tool that reads a directory structure in tree format (from clipboard or file) and automatically creates the corresponding folders and files.
Perfect for quickly scaffolding projects from shared diagrams, documentation, or terminal output.
- Input from clipboard or text file
- Supports Unix-style
treeoutput (with├──,└──,│) - Also supports simple indented format using spaces or tabs
- Windows-safe: validates file/folder names (blocks
CON,NUL, invalid chars) - Creates empty files and nested directories as specified
- Fast, dependency-light, and compiles to a single executable
cargo install mksUse spaces or tabs for nesting (no special symbols needed):
my-app/
package.json
src/
index.js
utils/
helper.js
public/
style.css
Copy directly from tree command in Git Bash, WSL, or Linux/macOS:
my-app/
├── package.json
├── src/
│ ├── index.js
│ └── utils/
│ └── helper.js
└── public/
└── style.css
mks structure.txt# Copy your tree text, then run:
mks✅ Output:
Read from file (7 lines)
✅ Creating structure...
✅ Done!
Given this input:
blog/
posts/
first.md
config.yaml
mks will create:
blog/
├── config.yaml
└── posts/
└── first.md
All files are empty (0 bytes) — ideal for scaffolding.
- Windows reserved names (
CON,PRN,AUX,NUL,COM1,LPT1, etc.) are blocked. - Filenames cannot contain:
< > : " / \ | ? * - Filenames cannot end with space or dot (
.) - Maximum filename length: 255 characters
- On Linux, ensure
xcliporxselis installed for clipboard support:sudo apt install xclip # Debian/Ubuntu
mks never overwrites existing files.
If a file or folder already exists, it is skipped silently (no error).
To start fresh, run mks in an empty directory.
cargo build --release # As per your preference for executable name
cp target/release/mks /usr/local/binThe tool uses the MIT License — free to use, modify, and distribute.
- Use Git Bash on Windows to generate valid
treeoutput:tree my-project
- Prefer space-indented format if sharing across teams — it’s more portable.
- Combine with templates: generate structure → fill files later.
“Scaffold fast, code faster.” —
mks
