Reference documentation for the Shep AI TUI (Terminal UI) presentation layer.
The TUI layer provides interactive terminal wizards using @inquirer/prompts. Wizards are invoked from CLI commands when multi-step interactive input is needed (e.g., agent configuration, onboarding, plan/PRD review flows).
The TUI is not a standalone presentation layer but integrates with CLI commands – a command determines when a wizard is needed and delegates to the TUI layer for interactive prompts.
| Document | Description |
|---|---|
| architecture.md | Wizard structure, prompt patterns, integration with CLI |
| design-system.md | Prompt styling, themes, consistent UX patterns |
src/presentation/tui/
index.ts # Barrel export
wizards/
agent-config.wizard.ts # Agent selection + auth wizard
merge-review.wizard.ts # Merge/PR review flow
plan-review.wizard.ts # Plan review flow
prd-review.wizard.ts # PRD review flow
onboarding/
onboarding.wizard.ts # First-run onboarding wizard
types.ts # Onboarding types
steps/
agent.step.ts # Agent configuration step
ide.step.ts # IDE selection step
workflow-defaults.step.ts # Workflow defaults step
prompts/
agent-select.prompt.ts # Agent selection prompt config
auth-method.prompt.ts # Auth method selection
ide-select.prompt.ts # IDE selection prompt config
prd-review-question.prompt.ts # PRD review question prompt
prd-review-summary.prompt.ts # PRD review summary prompt
themes/
shep.theme.ts # Custom Inquirer theme (colors, symbols)
| Wizard | Invoked By | Description |
|---|---|---|
onboardingWizard() |
First-run gate in bootstrap | Full setup: agent + IDE + workflow |
agentConfigWizard() |
shep settings agent |
Select AI agent + configure auth |
mergeReviewWizard() |
shep feat review |
Merge/PR review flow |
planReviewWizard() |
Plan review during feature lifecycle | Plan review flow |
prdReviewWizard() |
PRD review during feature lifecycle | PRD review flow |
| Prompt | Package | Purpose |
|---|---|---|
select |
@inquirer/select |
Single-choice selection with descriptions and disabled options |
confirm |
@inquirer/confirm |
Yes/no confirmation |
password |
@inquirer/password |
Masked sensitive input (API tokens) |
input |
@inquirer/input |
Free-form text input |