A clean, fast CLI tool to generate project folder structures from Markdown or YAML definitions. Stop clicking around in file explorers — describe your structure once, build it instantly.
-
Two input formats
- Markdown (
.md,.markdown) - YAML (
.yml,.yaml)
- Markdown (
-
Tree-based, human-readable syntax
-
Dry-run mode to preview without writing
-
Force overwrite for regenerating projects
-
Cross-platform (Linux, macOS, Windows)
-
Zero learning curve — simple, predictable behavior
pip install Nirman-clistructure.md
my-python-app/
├── src/
│ ├── __init__.py
│ └── main.py
├── tests/
│ └── test_main.py
└── README.md
Generate:
nirman structure.mdCreates the project inside the current directory.
(Use -o to output elsewhere.)
YAML uses a clean folder → files pattern.
Files MUST be under a files: key.
structure.yml
project:
src:
files:
- main.py
- utils.py
services:
api:
files:
- handler.py
- routes.py
files:
- README.md
- .gitignoreGenerate:
nirman structure.ymlproject/
├── src/
│ ├── main.py
│ └── utils.py
├── services/
│ └── api/
│ ├── handler.py
│ └── routes.py
├── README.md
└── .gitignore
nirman [-h] [-o OUTPUT] [--dry-run] [-f] input_file
| Argument | Description |
|---|---|
input_file |
Markdown (.md/.markdown) or YAML (.yml/.yaml) structure file |
| Option | Description |
|---|---|
-o, --output |
Target directory (default: current directory) |
--dry-run |
Show actions without creating anything |
-f, --force |
Overwrite existing files |
You must follow these rules when writing YAML structures:
-
Every folder is a dict key
-
Files go under the
files:keyfiles: - file1.py - file2.txt - config.json
-
Nested folders must be dictionaries
-
Lists can contain:
- filenames (strings)
- folders (dictionary items)
This enforces a clean, consistent YAML tree.
pytestIncludes:
- Parser tests
- CLI integration tests
- YAML rule enforcement tests
git clone https://github.com/Hemanth0411/Nirman-cli
cd Nirman-cli
pip install -e .Run CLI from source:
nirman example.ymlThis project is licensed under the MIT License. See the LICENSE file for details.