# MKDF – Make Directories and Files










---
> **One command to create them all,
> one command to find all ports & subnet,
> and in the docker-compose bind them.**
---
## Why mkdf?
**You’re tired of boilerplate.**
So was I.
MKDF exists because we’re done wasting life on project scaffolding.
Folders, files, docker combos: all automated.
_TL;DR: Type, hit enter, and mkdf does in milliseconds what took you hours. No bs, no fluff, no time to waste._
---
### New here? Start fast
```
mkdf --help
mkdf
mkdf create
```
And follow the prompts.
---
### Features (yes, already works)
- **CLI-first:** Type, hit enter, done.
- **Docker combos:** Auto port/subnet, compose-ready.
- **Templates:** React, Vue, FastAPI, Flask, Express, Laravel (+ soon).
- **Brace expansion:**
```
mkdf {api,utils}/test_{a,b}.py
tree my-app
```
(forests, not trees)
- **"God mode":**
```
mkdf create my-app fastapi vue redis traefik --backend-port 8080 --frontend-port 3000
```
---
## ⚡️ Status (v0.1.1 alpha)
- **Stable:** CLI, templates, docker combos, brace expansion.
- **WIP:** .env, backend, web UI (FastAPI+Vue).
- **Next:** Smart DB config, plugin system, cloud, PRs welcome.
---
## 🚀 Install
```
pip install mkdf
```
---
## 🛠 Usage
```
mkdf create my-f-api fastapi
mkdf my-app/{src/{api,models,services},docs/{README.md,INSTALL.md},tests/test_api.py,.env}
mkdf create my-stack docker fastapi vue redis traefik --backend-port 8080 --frontend-port 3000
tree -h my-stack
```
---
## Contribution & Feedback
- Bugs or 🚀 ideas? [Open an issue](https://github.com/Noziop/mkdf/issues).
- Use. Break. Contribute. PR. Fork. Yell.
- This is a tool *from a dev for devs*.
Feedback welcome (I’m done with solo rants).
---
## Docs
**WIP** — I’m rewriting all docs to reflect latest features.
*You want to help? Open a PR or hit me by issues!*
---
## License
[GNU AGPL v3.0](LICENSE) — Free as in freedom, not as in SaaS-taking.
Commercial/SaaS use? [license@buildme.it](mailto:license@buildme.it)
---
> **Get shit done. Fast. Survive your next rm -rf.
> mkdf — built by the person who needed it most.**
Raw data
{
"_id": null,
"home_page": "https://github.com/Noziop/mkdf",
"name": "mkdf",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "cli, project-generator, docker, templates, development, rich, rainbow, web-ui",
"author": "Fassih Belmokhtar",
"author_email": "contact@fassih.ch",
"download_url": "https://files.pythonhosted.org/packages/69/d9/881dd43ebd0161de0c3ece5194a73ab4719dcf9441d1f5d27c9ac11262b0/mkdf-0.1.2.tar.gz",
"platform": null,
"description": "# MKDF \u2013 Make Directories and Files\n\n\n\n\n\n\n\n\n\n\n\n\n---\n\n> **One command to create them all, \n> one command to find all ports & subnet, \n> and in the docker-compose bind them.**\n\n---\n\n## Why mkdf?\n\n**You\u2019re tired of boilerplate.** \nSo was I. \nMKDF exists because we\u2019re done wasting life on project scaffolding. \nFolders, files, docker combos: all automated.\n\n_TL;DR: Type, hit enter, and mkdf does in milliseconds what took you hours. No bs, no fluff, no time to waste._\n\n---\n\n### New here? Start fast\n\n```\nmkdf --help\nmkdf\nmkdf create\n```\nAnd follow the prompts.\n\n---\n\n### Features (yes, already works)\n\n- **CLI-first:** Type, hit enter, done.\n- **Docker combos:** Auto port/subnet, compose-ready.\n- **Templates:** React, Vue, FastAPI, Flask, Express, Laravel (+ soon).\n- **Brace expansion:** \n ```\n mkdf {api,utils}/test_{a,b}.py\n tree my-app\n ```\n (forests, not trees)\n\n- **\"God mode\":** \n ```\n mkdf create my-app fastapi vue redis traefik --backend-port 8080 --frontend-port 3000\n ```\n\n---\n\n## \u26a1\ufe0f Status (v0.1.1 alpha)\n\n- **Stable:** CLI, templates, docker combos, brace expansion.\n- **WIP:** .env, backend, web UI (FastAPI+Vue).\n- **Next:** Smart DB config, plugin system, cloud, PRs welcome.\n\n---\n\n## \ud83d\ude80 Install\n\n```\npip install mkdf\n```\n\n---\n\n## \ud83d\udee0 Usage\n\n```\nmkdf create my-f-api fastapi\nmkdf my-app/{src/{api,models,services},docs/{README.md,INSTALL.md},tests/test_api.py,.env}\nmkdf create my-stack docker fastapi vue redis traefik --backend-port 8080 --frontend-port 3000\ntree -h my-stack\n```\n\n---\n\n## Contribution & Feedback\n\n- Bugs or \ud83d\ude80 ideas? [Open an issue](https://github.com/Noziop/mkdf/issues).\n- Use. Break. Contribute. PR. Fork. Yell.\n- This is a tool *from a dev for devs*. \n Feedback welcome (I\u2019m done with solo rants).\n\n---\n\n## Docs\n\n**WIP** \u2014 I\u2019m rewriting all docs to reflect latest features.\n*You want to help? Open a PR or hit me by issues!*\n\n---\n\n## License\n\n[GNU AGPL v3.0](LICENSE) \u2014 Free as in freedom, not as in SaaS-taking. \nCommercial/SaaS use? [license@buildme.it](mailto:license@buildme.it)\n\n---\n\n> **Get shit done. Fast. Survive your next rm -rf. \n> mkdf \u2014 built by the person who needed it most.**\n",
"bugtrack_url": null,
"license": "AGPL-3.0",
"summary": "Make Directories and Files - Professional Project Creator with Rich CLI and Web UI",
"version": "0.1.2",
"project_urls": {
"Bug Tracker": "https://github.com/Noziop/mkdf-py/issues",
"Changelog": "https://github.com/Noziop/mkdf-py/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/Noziop/mkdf#readme",
"Homepage": "https://github.com/Noziop/mkdf",
"Repository": "https://github.com/Noziop/mkdf"
},
"split_keywords": [
"cli",
" project-generator",
" docker",
" templates",
" development",
" rich",
" rainbow",
" web-ui"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "20b125a3faf422c2216af16179830aca46c366e2dc601ca07a4a117765efe4b1",
"md5": "b765553df040e9ef1de83f4783598ecf",
"sha256": "04fe4779b6b4eeeae7e26d454b68e6cd0b13713678e7777d4f9c21eebfbc4ae0"
},
"downloads": -1,
"filename": "mkdf-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b765553df040e9ef1de83f4783598ecf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 134566,
"upload_time": "2025-08-07T21:36:55",
"upload_time_iso_8601": "2025-08-07T21:36:55.256401Z",
"url": "https://files.pythonhosted.org/packages/20/b1/25a3faf422c2216af16179830aca46c366e2dc601ca07a4a117765efe4b1/mkdf-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "69d9881dd43ebd0161de0c3ece5194a73ab4719dcf9441d1f5d27c9ac11262b0",
"md5": "bb292839a0511289b6b2be551f2c9a1e",
"sha256": "813de66286acf71a2ac00c624ca45b3dade48c849a4a791b51c16cccc7fcabdb"
},
"downloads": -1,
"filename": "mkdf-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "bb292839a0511289b6b2be551f2c9a1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 71242,
"upload_time": "2025-08-07T21:36:56",
"upload_time_iso_8601": "2025-08-07T21:36:56.496297Z",
"url": "https://files.pythonhosted.org/packages/69/d9/881dd43ebd0161de0c3ece5194a73ab4719dcf9441d1f5d27c9ac11262b0/mkdf-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 21:36:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Noziop",
"github_project": "mkdf",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "mkdf"
}