Portable project bootstrapper (venv, gitignore, license, vscode, etc.)
Project description
⚡ RepoSmith
RepoSmith is a portable Python library & CLI tool that helps you bootstrap new projects instantly.
With one command, you get a ready-to-code environment including virtualenv, config files, VS Code setup, .gitignore, and license.
✨ Features
- 🚀 Quick project setup with a single command
- 🐍 Python ≥ 3.12 support
- 📦 Automatic virtual environment creation (
.venv) - 📄 Generates essential files:
setup-config.jsonrequirements.txtapp.py.vscode/(settings + launch config).gitignoreLICENSE(MIT by default)
- 🤖 Preconfigured GitHub Actions workflow
- 🛡️ Built-in license templates (MIT, Apache-2.0)
⚡ Quick Start
The fastest way to bootstrap a new project:
cd MyProject
py -m reposmith.main
This will:
- create
.venv/ - add
requirements.txt,app.py,.gitignore,LICENSE,.vscode/ - configure everything automatically with defaults.
👉 Optional flags:
--ci create→ add GitHub Actions workflow--author "YourName"→ set your name in LICENSE
📦 Installation
From source (local dev)
git clone https://github.com/TamerOnLine/RepoSmith.git
cd RepoSmith
pip install -e .
From GitHub (direct)
pip install "git+https://github.com/TamerOnLine/RepoSmith.git@main"
🚀 Usage
CLI
# Create new project structure in current folder
reposmith --ci create --gitignore python --author "Tamer"
# Or via module syntax (always works)
py -m reposmith.main --ci create --gitignore python --author "Tamer"
Options
--ci {skip|create|force} Configure GitHub Actions workflow
--ci-python VERSION Python version for CI (default: 3.12)
--gitignore {python|node|django}
--license {MIT|Apache-2.0} License type (default: MIT)
--author NAME Author name for LICENSE
--year YYYY Year in LICENSE header
--root PATH Target project root (absolute/relative)
Example
cd MyNewProject
reposmith --ci create --gitignore django --license Apache-2.0 --author "Tamer"
Generates:
MyNewProject/
├── .venv/
├── .vscode/
│ ├── settings.json
│ ├── launch.json
├── app.py
├── requirements.txt
├── setup-config.json
├── .gitignore
├── LICENSE
└── .github/workflows/test-main.yml
🧩 Library API
You can also use RepoSmith programmatically:
from reposmith.venv_utils import create_virtualenv, upgrade_pip, install_requirements
venv_dir = "./.venv"
req_file = "./requirements.txt"
create_virtualenv(venv_dir)
upgrade_pip(venv_dir)
install_requirements(venv_dir, req_file)
🛡️ License
This project is licensed under the MIT License.
© 2025 TamerOnLine
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reposmith_tol-0.1.1.tar.gz.
File metadata
- Download URL: reposmith_tol-0.1.1.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5017de99ae36fcd63a9a2becb4aa142a3be388bfa05107e9fa7a024c744e7852
|
|
| MD5 |
249089d5dbd390b6f745e9d846430ef6
|
|
| BLAKE2b-256 |
c01c8d6399ac8627206c36321fa5548fb028c7625e1a44368e74a61cdf245a30
|
File details
Details for the file reposmith_tol-0.1.1-py3-none-any.whl.
File metadata
- Download URL: reposmith_tol-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14a362e8da36ac53ce746ee6d1884ed17955290294d18be20a1bc550649a707a
|
|
| MD5 |
2781303f3b9ec7e63dabd9282953cb90
|
|
| BLAKE2b-256 |
aea431a381305951e8b157c8e1bcf500edeee5d454fcfdca19d8fea8740dede1
|