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
- Launch: Run
smarttools ui - Select: Choose "Create new tool"
- Info: Go to "Info & Args", set name to
summarize - Add Argument: Click "Add Argument", set flag to
--length, default to100 - Add Step: Go to "Steps", select "Add Prompt Step"
- Provider: Choose your AI provider (or create one)
- Prompt: Enter your prompt template with
{input}and{length} - 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:
- Select "Test tool" from the main menu
- Choose the tool you want to test
- Enter test input in the text editor
- 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:
- YAML Configuration - Deep dive into the config format
- Adding Arguments - Custom flags and options
- Providers - Configure AI backends