بنقرة واحدة
cli
Click-based CLI entry points — psi new and psi run commands
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Click-based CLI entry points — psi new and psi run commands
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| 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] entryPatterns 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