Spawn: 프로젝트 초기 설정을 간소화하는 CLI 도구
요약
Spawn은 단일 CLI 명령어로 Python 프로젝트의 초기 설정을 자동화하는 도구입니다. 이 도구는 디렉터리 구조, Git 초기화, 가상 환경 설정, 의존성 관리 등 반복적인 수동 작업을 한 번에 처리하여 개발자가 즉시 코딩을 시작할 수 있도록 돕습니다. 다양한 Intent-based 템플릿과 '자체 구조 가져오기' 기능을 제공하며, 프로젝트의 건강 상태를 진단하고 수정하는 기능도 포함합니다.
핵심 포인트
- 반복적인 초기 설정 과정을 `spawn create` 명령어로 간소화합니다.
- FastAPI, Django 등 다양한 목적에 맞는 의도 기반 템플릿을 지원합니다.
- 폴더 구조를 텍스트로 붙여넣어 프로젝트 청사진을 만들 수 있습니다.
- 프로젝트의 상태 진단(`spawn doctor`) 및 자동 수정 기능이 제공됩니다.

반복적인 프로젝트 설정 과정을 없애세요. 단 몇 초 만에 0에서 완벽하게 구조화된 개발 환경으로 이동할 수 있습니다.
Spawn은 하나의 명령어로 완전한 Python 프로젝트의 기반(디렉터리, Git, 의존성, 가상 환경 등)을 자동으로 설정하는 로컬 CLI 도구입니다. 덕분에 즉시 개발을 시작할 수 있습니다.
- Spawn이 해결하는 문제점
- 기능
- 전제 조건
- 설치
- 사용법
- 프로젝트 템플릿
- 자체 구조 가져오기 (Bring Your Own Structure)
- 기타 명령어
- 테스트 실행하기
- 로드맵
- 기여하기
- 라이선스
모든 새로운 Python 프로젝트는 동일한 수동 의식(ritual)으로 시작됩니다:
mkdir my-project && cd my-project
mkdir src tests docs
touch README.md .gitignore
...
이 과정은 반복적이고, 일관성이 없으며, 여러분은 아직 실제 코드를 한 줄도 작성하지 않았습니다.
Spawn은 이 모든 것을 하나의 명령어로 압축합니다: spawn create
| 기능 | 설명 |
|---|---|
| Intent-based templates (의도 기반 템플릿) | 백엔드 API (FastAPI / Flask / Django), CLI 애플리케이션 (Typer / Click / Argparse), 자동화 도구, AI 챗봇, AI 에이전트, RAG 시스템, 데이터 프로젝트 (분석 / 대시보드 / ETL / 머신러닝), MCP 서버 |
| 자체 구조 가져오기 | 트리(Tree), 마크다운 목록 또는 들여쓰기된 형식으로 폴더 레이아웃을 붙여넣으면, 청사진이 필요 없이 Spawn이 정확히 그것을 구축합니다. |
| Extras 시스템 | ruff, pytest, Docker, GitHub Actions 등을 선택적으로 설치하고 자동으로 연결해 줍니다. |
| 의존성 설치 | uv add가 사용자가 선택한 패키지에 맞춰 자동으로 실행됩니다. |
| Git + uv | 옵션으로 git init, uv init, 그리고 uv venv를 실행합니다. |
| 비대화형 모드 | --name /--template 등과 함께 스캐폴딩(Scaffold)할 수 있습니다. |
플래그 또는 --config JSON 파일을 사용합니다—프롬프트가 필요 없고 스크립트와 에이전트에 안전합니다 |
에이전트 컨텍스트 파일 |
모든 프로젝트에는 AGENTS.md가 포함되어 있습니다. 동일한 CLAUDE.md를 추가하려면 --claude-md를 사용하세요 |
화살표 키 메뉴 |
spawn create의 모든 프롬프트는 입력하는 숫자가 아니라 화살표 키/스페이스바로 작동합니다 |
GitHub 게시 |
프로젝트를 기존 GitHub 레포지토리에 연결하고 초기 커밋을 푸시합니다 |
spawn doctor |
프로젝트의 건강 상태를 100점 만점으로 점수화하며, 카테고리별 분석과 우선순위가 지정된 다음 단계를 제공합니다 |
spawn doctor --fix |
누락된 파일과 설정을 자동으로 수정합니다—절대 덮어쓰지 않고, 패키지를 설치하지 않습니다 |
Python 3.12 이상—여기에서 다운로드하세요 pip install spawnio
Python < 3.12에서는 조용히 "no matching distribution"을 반환합니다. uv를 사용하고 있다면 uv python install 3.12를 실행하여 몇 초 만에 호환 가능한 인터프리터를 얻으세요.uv—설치 가이드Git—여기에서 다운로드하세요
uv는 처음이신가요? pip install uv를 실행하거나 빠른 시작 가이드를 확인해 보세요.
옵션 1 — PyPI에서 설치 (권장)
pip install spawnio
또는, uv를 사용하여
:
uv tool install spawnio
설치 없이 실행하려면:
uvx --from spawnio spawn create
이제 어디서든 spawn을 실행할 수 있습니다.
옵션 2 — 소스에서 설치 (기여용)
git clone https://github.com/Abhiix0/spawn.git
cd spawn
uv sync
...
인수 없이 spawn을 실행하면 배너, 설치된 버전, 사용 가능한 명령어 목록이 표시됩니다—프로젝트 흐름을 시작하지 않고 무엇이 사용 가능한지 상기하고 싶을 때 유용합니다.
SPAWN — scaffold your next project
v1.0.9
Commands
...
spawn create
Spawn은 짧은 프롬프트 시퀀스를 통해 안내합니다. 단계 수는 선택하는 템플릿에 따라 달라집니다.
단계 1 — 프로젝트 이름 지정
Project Name: my-api
Spawn은 공백이나 특수 문자가 포함된 이름을 거부하며, 해당 디렉토리가 이미 존재하는지 즉시 알려줍니다.
단계 2 — 템플릿 선택
화살표 키를 사용하여 이동하고 Enter를 눌러 선택합니다. Spawn은 모든 프롬프트에서 동일한 패턴을 따릅니다.
? 템플릿 선택 (화살표 키 사용)
» Backend API
CLI Application
...
3단계 — 추가 프롬프트 (선택한 내용에 따라 달라짐 — 프레임워크, 제공업체(provider), 프로젝트 유형 및/또는 추가 옵션. 각 항목의 정확한 흐름은 아래 프로젝트 템플릿을 참조하세요.)
4단계 — 라이선스
? 라이선스 선택 (화살표 키 사용)
» MIT
None
5단계 — Git
Git 초기화? [Y/n]: Y
이것으로 끝입니다. Spawn은 프로젝트를 생성하고, 의존성을 설치하며, 다음에 정확히 무엇을 실행해야 하는지 보여줍니다.
╭────── ✨ 프로젝트가 성공적으로 생성되었습니다 ──────╮
│ │
│ Project my-api │
...
아래의 모든 템플릿은 동일한 형태를 따릅니다: 최적 용도, 구조, 보게 될 프롬프트, 사용 가능한 추가 옵션, 그리고 실행 방법.
최적 용도: REST API, 마이크로서비스(microservices), 백엔드 웹 앱.
my-api/
├── app/
│ ├── api/routes/health.py # GET / → {"status": "running"}
...
프롬프트:
? 프레임워크 선택 (화살표 키 사용)
» fastapi
flask
...
사용 가능한 추가 옵션: ruff
pytest
docker
github-actions
pre-commit
mypy
실행 방법:
| 프레임워크 | 시작 명령어 |
|---|---|
| FastAPI | uv run uvicorn app.main:app --reload |
| ... |
cd my-api
uv run uvicorn app.main:app --reload
# GET http://localhost:8000/ → {"status": "running"}
최적 용도: 개발자 도구, 자동화 명령어, 프로젝트 생성기, 설정 마법사.
my-cli/
├── src/
│ ├── commands/
...
프롬프트:
? CLI 유형 선택 (화살표 키 사용)
» utility
interactive
...
사용 가능한 추가 옵션: ruff
pytest
github-actions
pre-commit
mypy
실행 방법:
cd my-cli
uv run python -m src.main hello # Utility
uv run python -m src.main greet # Interactive
최적 용도: 예약 작업(scheduled jobs), 데이터 파이프라인, 보고 시스템, 통합 자동화.
my-automation/
├── src/
│ ├── workflows/
...
프롬프트:
사용 가능한 추가 기능 (extras):
ruff
pytest
github-actions
pre-commit
mypy
실행하기:
cd my-automation
uv run python -m src.main
적합한 용도: 고객 지원 봇, 학습 보조 도구, 대화형 AI 도구.
my-chatbot/
├── src/
│ ├── chatbot/
...
프롬프트:
? 프레임워크 선택 (방향키 사용)
» pydantic-ai
openai-sdk
...
사용 가능한 추가 기능 (extras):
ruff
pytest
rich
github-actions
pre-commit
mypy
실행하기:
cd my-chatbot
# 제공업체의 API 키를 .env에 추가하세요
uv run python -m src.main
적합한 용도: 작업 자동화, 리서치 어시스턴트, 툴 호출 워크플로우.
my-agent/
├── src/
│ ├── agent/
...
프롬프트:
? 프레임워크 선택 (방향키 사용)
» pydantic-ai
openai-agents
...
만약 openai-agents를 선택하면, 제공업체 선택 목록에는 openai와 openrouter만 표시됩니다. 이 목록은 프레임워크별로 필터링됩니다.
사용 가능한 추가 기능 (extras):
ruff
pytest
github-actions
pre-commit
mypy
실행하기:
cd my-agent
# 제공업체의 API 키를 .env에 추가하세요
uv run python -m src.main
생성되는 모든 AI Agent 프로젝트는 작동하는 툴(계산기)을 포함하고 있으므로, 외부 서비스나 선택한 제공업체의 API 키 외의 추가 설정 없이 즉시 툴 호출이 작동하는 것을 확인할 수 있습니다.
적합한 용도: 문서 Q&A, 지식 기반 검색, 문서 검색 (document retrieval).
my-rag/
├── data/
│ └── sample_knowledge.md
...
프롬프트:
? 추가 기능 선택 (공백 키로 토글, 엔터로 확인)
● ruff
● pytest
...
RAG 시스템은 고정된 스택(LlamaIndex + ChromaDB + OpenAI)을 사용하므로, Chatbot이나 Agent와 달리 프레임워크나 제공업체 프롬프트가 없습니다. 첫 실행 시 data/의 문서를 로컬 ChromaDB 인덱스에 자동으로 가져오기(ingest)한 다음, 해당 문서들을 대상으로 질문할 수 있게 합니다. OPENAI_API_KEY(LLM과 임베딩 모두에 사용됨)가 필요합니다.
사용 가능한 추가 기능 (extras):
ruff
pytest
github-actions
pre-commit
mypy
실행 방법:
cd my-rag
# .env에 OPENAI_API_KEY 추가
uv run python -m src.main
...
탐색적 데이터 분석(exploratory data analysis), 내부 대시보드, 데이터 클리닝 파이프라인, 빠른 ML 프로토타이핑에 가장 적합합니다.
my-data-project/
├── data/
├── notebooks/ # 데이터 분석
...
프롬프트:
? 프로젝트 유형 선택 (화살표 키 사용)
» 데이터 분석
대시보드
...
사용 가능한 추가 기능(extras): ruff
pytest
github-actions
pre-commit
mypy
실행 방법:
| 유형 | 포함 내용 | 시작 명령어 |
|---|---|---|
| 데이터 분석 | 샘플 CSV + 스타터 노트북 (요약 통계, 저장된 차트) | uv run jupyter notebook |
| ... | uv run python -m pipelines.run | |
| 머신러닝 | 레이블링된 샘플 데이터셋 + 학습 스크립트 (RandomForestClassifier, experiments/에 로그 기록) | uv run python src/train.py |
# 예시 — 머신러닝
cd my-data-project
uv run python src/train.py
...
Claude Desktop, Claude Code 또는 모든 MCP 호환 클라이언트(MCP-compatible client)에 도구와 데이터를 노출하는 데 가장 적합합니다.
my-mcp-server/
├── src/
│ ├── server.py # FastMCP 인스턴스, 예시 도구 + 리소스 하나 포함
...
프롬프트:
? 추가 기능 선택 (공백으로 토글, 엔터로 확인)
● ruff
● pytest
...
MCP 서버는 고정된 스택(fixed stack)을 사용합니다 — 공식 mcp Python SDK의 FastMCP를 사용하므로 RAG 시스템과 마찬가지로 프레임워크나 제공자(provider)에 대한 프롬프트가 없습니다.
사용 가능한 추가 기능(extras): ruff
pytest
github-actions
pre-commit
mypy
실행 방법:
cd my-mcp-server
uv run python -m src.server
# MCP 클라이언트가 연결되기를 기다리며 stdio에서 대기
그런 다음 이를 MCP 클라이언트의 설정에 추가합니다 — 정확한 JSON 스니펫은 생성된 프로젝트 자체의 README.md를 참조하세요.
위에 나열된 8가지 템플릿 중 어떤 것도 적합하지 않습니까? Custom Structure는 동일한 spawn create 선택기에서 마지막 옵션으로 나타납니다 — 별도의 명령어가 아니라 같은 흐름을 거치는 다른 경로일 뿐입니다.
세 가지 텍스트 형식 중 아무거나 붙여넣으세요 — Unix tree
출력은 Markdown 목록, 또는 들여쓰기된 계층 구조일 수 있으며 — Spawn이 이를 구문 분석하여 감지된 폴더와 파일을 미리 보여준 다음, 다른 모든 템플릿과 동일한 Git 및 uv 설정을 갖춘 구조를 생성합니다.
spawn create
# → 사용자 지정 구조
프로젝트 구조를 붙여넣으세요.
지원되는 형식: 트리 (├──/└──), Markdown 목록 (- 항목), 들여쓰기된 계층 구조
Ctrl+D로 완료 (Windows에서는 Ctrl+Z 후 Enter)
...
Spawn이 이러한 파일을 감지했을 때 자동으로 수행하는 작업:
README.md
— 프로젝트 이름, 구조 트리 및 설정 지침을 포함하여 생성됩니다 (비워두지 않음).gitignore
— Python 기본값 (.venv/, __pycache__/, .pytest_cache/, .mypy_cache/, .ruff_cache/ 등)과 사용자가 추가한 모든 패턴이 중복 제거되어 채워집니다.
의존성(Dependencies) 프롬프트 (uv가 활성화된 경우에만 표시됨)는 uv add를 통해 패키지를 즉시 설치합니다.
.
**선택적 설정 메뉴(Optional Setup menu)**는 uv add --dev를 통해 개발 도구를 설치하고 다음의 구성 파일을 생성합니다: ruff.toml, tests/__init__.py, .pre-commit-config.yaml, Dockerfile, 그리고/또는 [tool.mypy]가 pyproject.toml에 포함됩니다.
모든 프롬프트를 건너뛰려면 플래그를 직접 전달하거나 JSON 구성 파일(config file)을 가리키세요.
플래그 사용:
spawn create --name my-api --template backend-api --framework fastapi --extras ruff,pytest --license mit --git
구성 파일 사용:
{
"name": "my-api",
"template": "backend-api",
...
spawn create --config spawn.json
--config는 개별 플래그보다 우선합니다 (명시적인 --no-git / --no-uv는 경고와 함께 무시됩니다). 양쪽 형식에 모두 --dry-run을 추가하여 파일을 생성하지 않고 구성을 검증하고 출력할 수 있습니다.
사용자 지정 구조(Custom Structure)는 이 버전에서 대화형으로만 사용 가능합니다.
프로젝트의 건강 상태를 100점 만점으로 점수화하며 — 카테고리별 분석, 계층적 권장 사항 및 단일 우선순위 다음 단계가 제공됩니다.
spawn doctor
spawn doctor ./path/to/project
╭─────────────── 🏥 프로젝트 건강 보고서 ─────────────────╮
│ │
│ 🟡 양호함 (Good) │
...
Checks는 문서화(Documentation), 버전 관리(Version Control), 설정(Configuration), 테스트(Testing), 자동화(Automation), 코드 품질(Code Quality)의 6가지 범주를 포괄하며 — 모두 파일 시스템 기반이며, 어떠한 것도 실행되거나 네트워크로 전송되지 않습니다.
spawn doctor --fix
은 누락된 파일을 자동으로 생성하고 설정을 구성합니다. 기존에 존재하는 파일은 절대 덮어쓰지 않으며, 패키지를 직접 설치하지도 않습니다 (대신 선택적 도구의 경우 uv add 명령을 출력합니다).
# 누락된 파일 및 설정 자동 생성
spawn doctor --fix
spawn doctor ./path/to/project --fix
...
spawn version
# → Spawn v1.0.9
생성 후, Git이 활성화되어 있었다면 Spawn은 다음을 요청합니다:
Publish to GitHub? [y/N]: y
Repository URL: https://github.com/your-username/my-project
Spawn은 모든 파일을 스테이징하고, 초기 커밋을 생성하며, 브랜치 이름을 main으로 변경하고, 원격 저장소를 추가한 후 푸시합니다.
저장소는 이미 GitHub에 존재해야 합니다. Spawn은 기존 저장소에 연결할 뿐, 새로 만들지는 않습니다.
uv run pytest
모든 테스트가 통과해야 합니다. 만약 그렇지 않다면, 이슈를 열어주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기