The friendliest way to bootstrap modern Python projects โ from zero to fully-structured, ready-to-code skeleton in seconds! ๐
Project description
Skello
The friendliest way to bootstrap modern Python projects - from zero to fully-structured, ready-to-code project in seconds! ๐
Why Skello?
Starting a new Python project shouldn't take 10+ minutes of setup. You know the drill:
- Create folders (
src/,tests/) - Set up virtual environment
- Create project files (
pyproject.toml,README.md,.gitignore,LICENSE) - Configure packaging structure
- Initialize documentation
- Finally... start coding
Skello eliminates ALL these steps with a single command, giving you a complete, modern Python project structure instantly!
What Makes Skello Special?
- โจ Complete Project Skeleton: Full folder structure with
src/,tests/, and all essential files - ๐ Zero Configuration: Works perfectly out-of-the-box with sensible defaults
- ๐๏ธ Modern Standards: Creates
pyproject.toml-based projects following current best practices - ๐ฏ Instant Productivity: Drop into an activated shell, ready to code immediately
- ๐ Cross-Platform: Reliable on Windows (PowerShell), macOS, and Linux
- ๐ฆ Smart Dependencies: Auto-detects and installs from existing dependency files
- ๐ง Flexible: Every feature is optional - use what you need
- ๐ก๏ธ Safe: Never overwrites existing files, validates everything
Installation
Recommended: Global Installation
Install once, use anywhere:
git clone https://github.com/snacktimepro/skello.git
cd skello
pip install -e .
Now use skello command from anywhere on your system!
Alternative: Direct Usage
git clone https://github.com/snacktimepro/skello.git
cd skello
python -m skello -p /path/to/project
Quick Start
The Magic Command โจ
Create a complete, modern Python project instantly:
# Create everything - the full skeleton!
skello -c *
# or use the longer form
skello -c all
# Result: Complete project structure ready to go!
๐ MyProject/
๐ src/
๐ myproject/
๐ __init__.py
๐ main.py
๐ tests/
๐ __init__.py
๐ test_main.py
๐ pyproject.toml
๐ README.md
๐ LICENSE
๐ CHANGELOG.md
๐ .gitignore
๐ .venv/ (activated and ready!)
Power User Examples
# Complete new project with custom name
skello -p ~/my-awesome-api -c *
# Quick skeleton with specific files
skello -c full g read lic # Full structure + gitignore, readme, license
# Just add structure to existing project
skello -c main # Add src/package structure only
# Custom license with your name
skello -c l:mit:John Doe # MIT license with John Doe
# Custom requirements file name
skello -c r:dev-requirements.txt # Named requirements file
Command Reference
skello [OPTIONS]
Options:
-p, --path PATH Target directory (default: current directory)
-n, --name NAME Virtual environment name (default: .venv)
-c, --create FILES Create project files and structure
-s, --no-auto-shell Skip launching activated shell
-h, --help Show help and exit
File Creation Options
| Short | Long | Creates | Description |
|---|---|---|---|
r |
req |
requirements.txt |
Pip requirements file |
p |
toml |
pyproject.toml |
Modern Python packaging config |
g |
git |
.gitignore |
Python-focused git ignores |
md |
read |
README.md |
Project documentation |
ch |
log |
CHANGELOG.md |
Structured changelog |
l |
lic |
LICENSE |
MIT license (current year) |
Structure Templates
| Option | Creates | Description |
|---|---|---|
m |
main |
src/package/main.py structure |
f |
full |
Complete structure with tests |
* |
all |
Everything - files + full structure |
Advanced Options
# Custom license types and names
skello -c l:apache:Your Name # Apache license
skello -c l:mit:Jane Smith # MIT with custom name
# Custom file names
skello -c r:dev-requirements.txt # Named requirements file
Real-World Examples
Brand New Project - Complete Setup
mkdir my-web-api
skello -p my-web-api -c *
# ๐ Result: Full project structure with:
# โ
src/my_web_api/ package structure
# โ
tests/ directory with test files
# โ
Modern pyproject.toml configuration
# โ
Professional README.md
# โ
MIT LICENSE
# โ
.gitignore for Python
# โ
CHANGELOG.md ready for releases
# โ
Virtual environment activated!
Existing Project - Add Structure
# Add modern structure to legacy project
cd my-old-project
skello -c main toml git
# Adds src/ structure + pyproject.toml + .gitignore
# Keeps all existing files safe
Selective Enhancement
# Add just the essentials
skello -c read lic git # Documentation + license + gitignore
# Add testing structure
skello -c full # Complete src/ and tests/ structure
Team Development
# Standardized team setup
skello -p ~/projects/team-app -c * -n dev
# Custom license for organization
skello -c l:apache:"Acme Corp" -c *
What Skello Does
When you run Skello, here's the magic that happens:
- ๐ฏ Validates your target directory and permissions
- ๐๏ธ Creates complete folder structure (
src/,tests/with proper__init__.pyfiles) - ๐ Generates all requested project files with professional templates
- ๐ฑ Sets up virtual environment (if needed)
- ๐ง Upgrades pip to latest version
- ๐ฆ Detects and installs existing dependencies (
pyproject.toml,requirements.txt, etc.) - ๐ Launches activated shell in your new project directory
Ready to code in seconds, not minutes!
Generated Project Structure
Full Structure (skello -c * or skello -c all)
MyProject/
โโโ src/
โ โโโ myproject/
โ โโโ __init__.py
โ โโโ main.py
โโโ tests/
โ โโโ __init__.py
โ โโโ test_main.py
โโโ pyproject.toml # Modern packaging config
โโโ README.md # Professional documentation
โโโ LICENSE # MIT license (current year)
โโโ CHANGELOG.md # Structured release notes
โโโ .gitignore # Python-focused ignores
โโโ .venv/ # Activated virtual environment
File Templates
pyproject.toml - Complete modern Python packaging:
- Build system with hatchling
- Development dependencies
- Tool configurations (black, isort, pytest)
- Metadata ready for PyPI
README.md - Professional project documentation:
- Installation instructions
- Usage examples
- Contributing guidelines
- Badge placeholders
src/package/main.py - Ready-to-run entry point:
- Professional docstring
- Example function with docstring
if __name__ == "__main__"pattern
tests/test_main.py - Testing foundation:
- Pytest-ready test structure
- Example test cases
- Proper imports from your package
Smart Behaviors
Dependency Detection
Skello automatically finds and installs from:
pyproject.toml(modern standard - preferred)requirements.txt(legacy format)Pipfile(Pipenv format)- Other detected formats
Safe File Creation
- Never overwrites existing files
- Explains what was created vs. skipped
- Validates all inputs before making changes
- Handles permission issues gracefully
Modern Defaults
- Prefers
pyproject.tomloverrequirements.txt - Creates
src/layout (not flat structure) - Includes
tests/directory with proper structure - Uses current year in LICENSE files
Platform Support
Windows
- PowerShell: Full support with colors and proper activation
- Command Prompt: Fallback batch scripts
- Path handling: Automatic Windows path conversion
macOS/Linux
- Bash/Zsh: Native shell integration with
exec - Permissions: Proper executable permissions
- Symbolic links: Full support for linked directories
Tips & Best Practices
๐ Getting Started
- Use
skello -c *(orskello -c all) for new projects - creates everything you need - Keep Skello installed globally for instant access anywhere
- Let Skello handle the tedious setup so you can focus on coding
๐ Project Organization
- The
src/layout keeps your package code organized tests/directory follows Python testing conventions- Modern
pyproject.tomlreplaces oldsetup.pyapproach
๐ฏ Workflow Integration
- Use
-sflag in CI/CD scripts to skip shell activation - Combine with your editor:
skello -c * && code . - Create template projects and enhance them with Skello
๐ค Team Development
- Standardize team projects with
skello -c * - Use custom license names for organization projects
- Share the command that created your project structure
Error Handling
Skello handles edge cases gracefully:
- Missing directories: Clear validation with helpful messages
- File conflicts: Never overwrites, shows what was skipped
- Permission issues: Informative error messages with solutions
- Invalid options: Validates inputs and shows available choices
- Existing environments: Skips creation, continues with setup
- Empty dependency files: Informative skip messages
The Skello Advantage
Traditional Way (10+ commands, 10+ minutes)
mkdir my-project && cd my-project
mkdir src tests
mkdir src/my_project
touch src/my_project/__init__.py src/my_project/main.py
touch tests/__init__.py tests/test_main.py
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install --upgrade pip
# Manually create pyproject.toml...
# Manually create README.md...
# Manually create .gitignore...
# Manually create LICENSE...
# ...finally ready to code after 5-10 minutes
The Skello Way (1 command, 10 seconds)
skello -p my-project -c *
# ๐ Complete project structure, activated environment, ready to code!
Requirements
- Python 3.7+ (no external dependencies!)
- PowerShell (Windows) or Bash/Zsh (macOS/Linux)
- Git (optional, for cloning)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions welcome! Please feel free to submit a Pull Request.
Development Setup
git clone https://github.com/snacktimepro/skello.git
cd skello
skello -c * # Use Skello to set up Skello! ๐
Support
Having issues?
- Check help:
skello -h - Review examples: See patterns above
- Check permissions: May need admin on Windows
- Open issue: Include OS, Python version, error message
Changelog
See CHANGELOG.md for version history.
Made with โค๏ธ to make Python project setup effortless
From empty directory to fully-structured Python project in seconds! ๐
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 skello-2.1.4.tar.gz.
File metadata
- Download URL: skello-2.1.4.tar.gz
- Upload date:
- Size: 34.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f697d61030e7c115639e9ab35181a8ba49efa9f45ad9b47c892dfeda00cac57
|
|
| MD5 |
12289e9dcbc5c5e2587f6e4bb7d4318d
|
|
| BLAKE2b-256 |
3e2d131eef2cf7ed7d5a492b88d2d4e745269c68274d1e257dc8cbafeb2feb5d
|
File details
Details for the file skello-2.1.4-py3-none-any.whl.
File metadata
- Download URL: skello-2.1.4-py3-none-any.whl
- Upload date:
- Size: 39.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1135532c6e545cad819cf28a5b3e317a9c5654502091ddf7034cf060272ce64b
|
|
| MD5 |
e9431df8c1d861b757851a81b12500d8
|
|
| BLAKE2b-256 |
0f2fb511446900281fe9c6990b68f9a00c8636e24a49c4784c08cc47360e4eda
|