veto studio command launches a full-screen terminal UI for interactive policy development and testing.
Syntax
Description
Veto Studio is an interactive terminal UI that provides:- Real-time policy editing with live validation
- Coverage visualization showing which tools have rules
- Decision preview for testing tool calls
- Rule management with create/edit/delete operations
- Workspace discovery for multi-package monorepos
Options
Renderer Selection
auto- Automatically select best renderer (default)ink- React-based renderer (best for most terminals)ansi- Lightweight ANSI fallbackopentui- Experimental modern renderer
Theme Selection
veto- Default Veto themeclaude- Claude-inspired themehigh-contrast- High contrast for accessibility
Workspace Directory
Scan Options
examples/ directory in tool discovery scan.
test/, tests/, __tests__/ directories in tool discovery scan.
Example:
Demo Mode
Examples
Launch Studio (Default)
Launch with Specific Renderer
Open Specific Workspace
./packages/backend workspace.
Custom Theme
Include Test Files in Scan
Studio Navigation
Workspace View
When you launch Studio, you see a list of discovered workspaces:Enter to enter a workspace.
Main View
After selecting a workspace:Key Bindings
| Key | Action |
|---|---|
Enter | Select/Enter workspace |
↑/↓ | Navigate list |
g | Generate policy for selected tool |
c | Check guard (test tool call) |
s | Re-run coverage scan |
r | Reload rules from disk |
q | Quit Studio |
? | Show help |
Renderer Comparison
Ink Renderer (Recommended)
- React-based, smooth updates
- Best terminal compatibility
- Rich layout support
- Larger bundle size
- Requires full terminal support
ANSI Renderer (Fallback)
- Lightweight
- Works in limited terminals
- Fast startup
- Basic layout only
- Less visual feedback
OpenTUI Renderer (Experimental)
- Modern architecture
- Future feature support
- Experimental, may have bugs
- Limited compatibility
Workflows
Generate a Policy
- Launch Studio:
veto studio - Navigate to an uncovered tool
- Press
gto generate - Enter natural language prompt
- Review generated YAML
- Save to file
Test a Tool Call
- Launch Studio:
veto studio - Press
cto check guard - Enter tool name
- Enter arguments as JSON
- See decision (allow/block/require_approval)
Review Coverage
- Launch Studio:
veto studio - Main view shows coverage percentage
- Scroll through tool list
- Green checkmarks = covered
- Red X = uncovered
Troubleshooting
Studio Won’t Launch
Rendering Issues
Workspace Not Detected
Slow Performance
Environment Variables
Studio respects these environment variables:Legacy REPL Mode
For backwards compatibility, you can launch the legacy line-based REPL:Next Steps
- Generate Policies - Create policies from natural language
- Guard Check - Test tool calls against rules
- Scan Coverage - Audit tool coverage headlessly
- Policy Apply - Deploy policies to cloud

