Skip to content

The Visual Builder

Not everyone wants to write YAML by hand. SmartTools includes a full-featured terminal UI that lets you create, edit, and test tools with menus and forms—no text editor required.

What You'll Learn

  • How to launch and navigate the visual builder
  • Creating tools with point-and-click menus
  • Managing providers without editing config files
  • Testing tools before deploying them

Launching the Visual Builder

Start the UI with a single command:

smarttools ui

You'll see a menu-driven interface that works in any terminal:

┌─────────────────────────────────────────────────────────┐
│                  SmartTools Manager                      │
├─────────────────────────────────────────────────────────┤
│                                                          │
│   [ List all tools      ]                               │
│   [ Create new tool     ]                               │
│   [ Edit existing tool  ]                               │
│   [ Delete tool         ]                               │
│   [ Test tool           ]                               │
│   [ Manage providers    ]                               │
│   [ Exit                ]                               │
│                                                          │
│         Use ↑↓ to navigate, Enter to select             │
│                                                          │
└─────────────────────────────────────────────────────────┘

Pro Tip: Mouse Support

If you have urwid installed (pip install urwid), the UI supports mouse clicks! Just click on menu items instead of using arrow keys.

Creating Tools Visually

Select "Create new tool" to open the tool builder. It has two main sections:

1. Info & Arguments

  • Set tool name and description
  • Add custom flags (--format, --max, etc.)
  • Define the output template

2. Processing Steps

  • Add prompt steps (with provider selection)
  • Add code steps (Python processing)
  • Reorder steps with move up/down

Step-by-Step: Creating a Summarizer

  1. Launch: Run smarttools ui
  2. Select: Choose "Create new tool"
  3. Info: Go to "Info & Args", set name to summarize
  4. Add Argument: Click "Add Argument", set flag to --length, default to 100
  5. Add Step: Go to "Steps", select "Add Prompt Step"
  6. Provider: Choose your AI provider (or create one)
  7. Prompt: Enter your prompt template with {input} and {length}
  8. Save: Select "Save Tool" from the main menu

Managing Providers

The UI makes it easy to add, edit, and delete AI providers without touching config files:

┌─────────────────────────────────────────────────────────┐
│                   Manage Providers                       │
├─────────────────────────────────────────────────────────┤
│                                                          │
│   claude         claude -p                              │
│   opencode       opencode                                │
│   mock           echo '[MOCK RESPONSE]'                 │
│   ────────────────────────────────────────              │
│   [ + Add New Provider ]                                │
│   [ ← Back to Main Menu ]                               │
│                                                          │
└─────────────────────────────────────────────────────────┘

Select a provider to edit or delete it. Adding a new provider shows a form:

  • Name: Short identifier (e.g., claude)
  • Command: The CLI command (e.g., claude -p)
  • Description: What this provider does

Testing Tools

Before deploying a tool, test it with the built-in mock provider:

  1. Select "Test tool" from the main menu
  2. Choose the tool you want to test
  3. Enter test input in the text editor
  4. See the result (uses mock provider by default)

This lets you verify your prompts and variable substitution without making real API calls.

Keyboard Shortcuts

Key Action
/ Navigate menu items
Enter Select / confirm
Esc Cancel / go back
Tab Move to next field (in forms)
q Quit the application

UI Backends

SmartTools automatically uses the best available terminal UI library:

urwid (Best)

Mouse support, smooth

pip install urwid

snack

BIOS-style dialogs

apt install python3-newt

dialog/whiptail

Fallback option

apt install dialog

CLI vs Visual Builder

When should you use each?

Use the UI when... Use YAML when...
You're new to SmartTools You're comfortable with YAML
Building your first few tools Making quick edits
Managing providers Copying tools between machines
Testing interactively Version control integration

Next Up

Now that you know both ways to build tools: