Skip to main content

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.json
    • requirements.txt
    • app.py
    • .vscode/ (settings + launch config)
    • .gitignore
    • LICENSE (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reposmith_tol-0.1.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reposmith_tol-0.1.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

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

Hashes for reposmith_tol-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5017de99ae36fcd63a9a2becb4aa142a3be388bfa05107e9fa7a024c744e7852
MD5 249089d5dbd390b6f745e9d846430ef6
BLAKE2b-256 c01c8d6399ac8627206c36321fa5548fb028c7625e1a44368e74a61cdf245a30

See more details on using hashes here.

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

Hashes for reposmith_tol-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14a362e8da36ac53ce746ee6d1884ed17955290294d18be20a1bc550649a707a
MD5 2781303f3b9ec7e63dabd9282953cb90
BLAKE2b-256 aea431a381305951e8b157c8e1bcf500edeee5d454fcfdca19d8fea8740dede1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page