Skip to content

Interactive widgets ​

The Seepient TUI renders structured terminal widgets instead of raw text walls. When an agent queries data, reports status, or requests structured inputs, it uses specialized React/Ink components.


1. Tables ​

When displaying structured data (such as benchmark numbers, file listings, or database rows), the agent invokes table components:

Outdated Dependencies

PackageCurrentLatestTypeBreaking?
typescript5.4.25.9.3devYes
chalk4.1.25.6.2dependencyYes (ESM)
vitest1.2.04.1.4devNo
Tables automatically adapt to your terminal width, truncating long strings with ellipses and aligning numbers to the right.

2. Interactive forms and selectors ​

When an operation requires user choices, the TUI displays keyboard-navigable selection dialogs:

  • Single choice lists: Use the Up and Down arrow keys to navigate and press Enter to pick an option.
  • Multi-select checklists: Use Space to toggle items on or off, then press Enter to confirm.
  • Text input prompts: Prompts for sensitive input (such as passwords) mask input characters with asterisks.

3. Spinners and task progress ​

During multi-step background actions, the TUI shows a collapsible task tree:

⠿ Running test suite (vitest run)

✔ src/domain/agent-loop.test.ts (14 tests passed, 180ms)

✔ src/capabilities/tools/shell.test.ts (8 tests passed, 92ms)

⠋ src/capabilities/execution/fs-commit.test.ts (running...)

Completed steps collapse to green checkmarks, keeping terminal screen space clear for active output.


4. Syntax-highlighted code blocks ​

Code blocks render with syntax highlighting matching your terminal color profile. Long code blocks include line numbering and copy shortcuts:

typescript
// Example: Registering an effectful tool
export const customDeployTool = {
  name: "deploy_service",
  description: "Deploys the built service container to Cloud Run",
  parameters: {
    serviceName: { type: "string", required: true },
    imageTag: { type: "string", required: true }
  }
};

Released under the Business Source License 1.1.