Cookiecutter について
Cookiecutter はコマンドラインツールで、対話的なプロンプトを使用して変数を収集し、定義済みテンプレートからプロジェクトを生成します。開発者とコーディングエージェントはプロジェクト初期化を自動化し、繰り返しの手作業を削減できます。
主な機能
- 01ローカルまたはリモート Git リポジトリからプロジェクトテンプレートを読み込む
- 02対話的なプロンプトでユーザー入力を収集しテンプレート変数に値を設定
- 03プロジェクトディレクトリ構造、設定ファイルおよびボイラープレートコードを生成
- 04テンプレート内の条件付きロジックと動的ファイル生成をサポート
活用シーン
- 01新しい Python パッケージ、Web アプリケーション、マイクロサービスを素早くスキャフォルド
- 02チーム向けに標準化されたプロジェクトテンプレートを作成・保守
- 03コーディングエージェントのワークフローに統合してプロジェクトスケルトンを自動生成
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後にcookiecutter --versionを実行して確認します。
コマンド例
よく使うコマンドを使う順に並べています。
詳細
Cookiecutter
このコマンドラインユーティリティを使うと、cookiecutter(プロジェクトテンプレート)からプロジェクトをすばやく作成できます。Python パッケージプロジェクトなどの生成に最適です。
インストール
uv を使って Cookiecutter を CLI ツールとしてインストールします。
uv tool install cookiecutter
特長
- クロスプラットフォーム: Windows、Mac、Linux に対応しています。
- 使いやすい: Python の知識は必要ありません。
- 多用途: Python 3.10~3.14 に対応しています。
- 多言語対応: あらゆる言語やマークアップ形式のテンプレートを使用できます。
ユーザー向け
クイックスタート
Cookiecutter の最も一般的な使い方は、https://github.com/audreyfeldroy/cookiecutter-pypackage のような GitHub でホストされている Cookiecutter テンプレートを、コマンドラインユーティリティとして利用することです。
GitHub でホストされている Cookiecutter テンプレートを使用する
# You'll be prompted to enter values.
# Then it'll create your Python package in the current working directory,
# based on those values.
# For the sake of brevity, repos on GitHub can just use the 'gh' prefix
$ uvx cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
ローカルテンプレートを使用する
$ uvx cookiecutter cookiecutter-pypackage/
Python から使用する
Cookiecutter をプログラムから利用する場合は、uv add cookiecutter を実行してプロジェクトに追加してください。その後、次のようにインポートして使用できます。
from cookiecutter.main import cookiecutter
# Create project from the cookiecutter-pypackage/ template
cookiecutter('cookiecutter-pypackage/')
# Create project from the cookiecutter-pypackage.git repo template
cookiecutter('gh:audreyfeldroy/cookiecutter-pypackage')
Cookiecutter によって時間を節約できたら、GitHub でスターを付けて、ほかの開発者にも見つけてもらいましょう。
詳細な使い方
- ローカルまたはリモートのテンプレートからプロジェクトを生成します。
cookiecutter.jsonのプロンプトを使ってプロジェクトをカスタマイズします。- プロンプト前、生成前、生成後のフックを利用できます。
テンプレート作成者向け
- あらゆる言語、あらゆるフレームワークに対応。 Cookiecutter テンプレートは、変数を含むディレクトリにすぎません。Python、Rust、Terraform、ドキュメントサイトなど、繰り返し構築するものなら何にでも使えます。
- 残りのセットアップにはフックを使用。 生成前・生成後のスクリプト(シェルまたは Python)で、git init、依存関係のインストールなど、ボイラープレートに必要なあらゆる処理を実行できます。
- インターフェースを定義するのは1つのファイル。
cookiecutter.jsonで、すべての変数とそのデフォルト値を宣言します。ユーザーがプロンプトに答えれば、あとはテンプレートが処理します。
利用可能なテンプレート
GitHub で、すぐに使えるさまざまなテンプレートを探してみましょう。
特別なテンプレート
コミュニティ
コミュニティに参加したり、貢献したり、サポートを求めたりできます。
フィードバック
皆さまからのフィードバックを大切にしています。改善に役立てるため、批判や苦情は建設的な形でお寄せください。
返答を待っていますか?
- 辛抱強くお待ちいただき、サポートが必要な場合はコミュニティへの問い合わせをご検討ください。
- エンタープライズサポートについては、[email protected] までお問い合わせください。
行動規範
プロジェクトのエコシステム内でのあらゆるやり取りにおいて、PyPA 行動規範を遵守してください。
謝辞
Audrey M. Roy Greenfeld が作成し、主導しています。献身的なメンテナーとコントリビューターのチームに支えられています。