Skip to main content

Project Commands

Commands for project initialisation and setup.


Quick Reference

# Create new project (wizard)
project init my-project

# Launch existing project (smart - builds image if needed)
project launch my-project

# Individual steps
dir-create my-project
git-init my-project
readme-create my-project

# One-time: Create project
project init my-thesis --type=cv

# Daily: Launch project
project launch my-thesis

# When done: Retire container
container retire my-thesis

project-init

Complete project initialisation (L4 wizard)

project-init [project-name] [OPTIONS]

Options:

OptionDescription
--type=TYPEProject type: ml, cv, nlp, rl, audio, ts, llm, custom
--quickSkip interactive prompts, use defaults (type=ml)
--no-gitSkip Git initialization
--guidedEducational mode

Examples:

project-init # Interactive
project-init my-research # Specify name
project-init my-thesis --type=cv # Computer vision project
project-init test --quick # Quick setup with defaults

What it does:

  1. dir-create - Creates ~/workspace/<project>/
  2. git-init - Initializes Git repository
  3. readme-create - Generates README.md
  4. image-create - Builds custom Docker image
  5. container-deploy - Deploys first container

Equivalent to running all steps individually.


project-launch

Launch container for existing project (L4 wizard)

project-launch [project-name] [OPTIONS]

Options:

OptionDescription
--guidedEducational mode
--openStart and enter terminal
--backgroundStart in background
--rebuildForce rebuild image

Examples:

project-launch # Interactive (select from list)
project-launch my-thesis # Launch specific project
project-launch my-thesis --open # Launch and enter

What it does:

  1. Shows menu of projects in ~/workspace/ (if no name given)
  2. Checks if Docker image exists
  3. If no image: runs image-create automatically
  4. Runs container-deploy to start container

Key difference from container-deploy:

  • project-launch = Smart (handles image creation automatically)
  • container-deploy = Direct (requires image to exist)

dir-create

Create workspace directory (L2 atomic)

dir-create <project-name> [OPTIONS]

Options:

OptionDescription
--type=TYPEStructure type: data-science (default), blank
--forceOverwrite existing directory
--guidedEducational mode

Examples:

dir-create my-project # Create with data-science structure
dir-create my-project --type=blank # Create empty directory
dir-create my-project --guided # With explanations

Creates standard directory structure:

~/workspace/my-project/
├── data/{raw,processed,external}/
├── models/checkpoints/
├── notebooks/
├── scripts/
├── configs/
├── outputs/{logs,figures}/
└── tests/

git-init

Initialize Git repository (L2 atomic)

git-init <project-name> [OPTIONS]

Options:

OptionDescription
--user=NAMEGit user name (prompts if not set)
--email=EMAILGit user email (prompts if not set)
--remote=URLAdd remote repository URL
--no-lfsSkip Git LFS setup
--guidedEducational mode

Examples:

git-init my-project # Initialize Git
git-init my-project --user="Jane" --email="jane@example.com"
git-init my-project --remote=git@github.com:user/repo.git
git-init my-project --guided # With explanations

Features:

  • Comprehensive ML/DS .gitignore
  • Git LFS for large model files (.pth, .pt, .h5, .ckpt, .bin)
  • User config setup
  • Optional remote repository

readme-create

Generate README.md (L2 atomic)

readme-create <project-name> [OPTIONS]

Options:

OptionDescription
--type=TYPEProject type: ml (default), cv, nlp, rl
--desc="TEXT"Project description
--structure=TYPEStructure: data-science (default), blank
--commitCreate initial Git commit (requires Git repo)
--guidedEducational mode

Examples:

readme-create my-project # Basic README
readme-create cv-project --type=cv --desc="Image classification"
readme-create my-project --commit # Create and commit
readme-create my-project --guided # With explanations

Creates a template README with sections for project description, setup, usage, and license.


Workflow Example

project-init my-thesis
# Handles everything automatically

Manual setup

dir-create my-thesis
git-init my-thesis
readme-create my-thesis
image-create my-thesis
container-deploy my-thesis --open

Project Structure

After project-init:

~/workspace/my-project/
├── .git/ # Git repository
├── .gitignore # Python/DS ignores
├── README.md # Project documentation
├── data/ # Data files (gitignored)
├── notebooks/ # Jupyter notebooks
├── src/ # Source code
└── models/ # Saved models (gitignored)

~/dockerfiles/
└── my-project.Dockerfile # Custom image definition

See Also