Skip to content

Creating a new project

Choose a template variant

See Project variants for available project template variants.

Choose a project name

Project names must meet GitHub's repository name criteria.

Python project names

Python project names must meet the Python package name criteria.

If you choose to publish your project on PyPI, the project name will be used as the package name (e.g. for pip install).

Tip

If you plan to publish your project on PyPI, ensure:

  1. You have an active PyPI account
  2. Your desired package name is available!

Create a GitHub repository

Create a repository on GitHub for your new project. Set Repository name to your chosen project name.

Generate new project from template

  1. In the directory where the new project should be created, run Copier:

    copier copy "gh:smkent/copier-project" ./project_name
    

    Copier will prompt for project information. Answer the prompts to configure your project. When complete, Copier will create your new project in ./project_name.

  2. Change to the new project directory:

    cd ./project_name
    

Initialize the project

To complete project initialization, run:

mise run init

This will:

  1. Create the local git repository
  2. Install tools, dependencies, and git hooks (same as mise install)
  3. Create an initial commit with the newly created project contents
  4. Add your GitHub repository as the origin remote (when project_visibility: public)

    Note

    The origin remote will be set to the repository's HTTP url.

    To push using ssh, configure git with an ssh URL for your project:

    git config --local url."git@github.com:".pushInsteadOf https://github.com/
    

    git can be configured to push using ssh for all GitHub projects by changing --local to --global:

    git config --global url."git@github.com:".pushInsteadOf https://github.com/
    

Push repository to GitHub

Push your new project to your GitHub repository:

git push -u origin main

Your project's contents should now be visible on GitHub!