원클릭으로
Click-based CLI entry points — psi new and psi run commands
npx skills add https://github.com/seanchiuai/psi --skill cli이 명령을 Claude Code에 복사하여 붙여넣어 스킬을 설치하세요
Click-based CLI entry points — psi new and psi run commands
npx skills add https://github.com/seanchiuai/psi --skill cli이 명령을 Claude Code에 복사하여 붙여넣어 스킬을 설치하세요
Patterns learned and validated by Psi
Project scaffolding — template copy, Claude-powered placeholder filling, git init
Multi-phase loop that runs Claude Code sessions with signal detection and state management
Two-tier learning system — Tier 1 fast capture via LEARNINGS.md, Tier 2 validated promotion to expertise.yaml
| name | cli |
| description | Click-based CLI entry points — psi new and psi run commands |
Click command group in src/psi/cli.py. Two commands: psi new and psi run.
Entry point configured in pyproject.toml:
[project.scripts]
psi = "psi.cli:cli"
Also runnable as python -m psi via __main__.py.
psi new <directory> "<description>"Scaffolds a new project:
directory — click.Path(file_okay=False) — target path (must not exist or be empty)description — app description passed to Claude for template fillingCalls scaffold.scaffold_project(). Fails with click.ClickException if directory exists and is non-empty.
psi run [directory] [options]Runs the orchestrator loop:
directory — click.Path(exists=True, file_okay=False) — project root (default: ".")--max-iterations, -m — type=int, default=30 — max iterations per phase--timeout, -t — type=int, default=600 — seconds per iteration--no-weave — is_flag=True — disable Weave tracingCreates a Psi instance and calls run(). Exit code 0 on success, 1 on failure.
Both commands use lazy imports inside the command function to avoid loading heavy modules (orchestrator, scaffold) at CLI parse time:
@cli.command()
def new(directory, description):
from psi.scaffold import scaffold_project # lazy
scaffold_project(...)
psi run uses raise SystemExit(code) instead of sys.exit() — works cleanly with Click's exception handling.
src/psi/cli.py — Click commandssrc/psi/__main__.py — python -m psi entrysrc/psi/scaffold.py — Called by psi newsrc/psi/orchestrator.py — Called by psi runpyproject.toml — [project.scripts] entry