CLI Reference
Complete command reference for tend.
tend
A modern, Go-based end-to-end testing framework for Grove.
This tool provides structured, maintainable testing capabilities to replace ad-hoc bash scripts with proper error handling, cleanup, and beautiful output.
Features: • Interactive step-through testing mode • Parallel test execution • Beautiful terminal output with progress bars • Comprehensive logging and error reporting • Git worktree support for multi-branch testing • Docker container management • Grove-specific command helpers
USAGE tend [command]
COMMANDS completion Generate the autocompletion script for the specified shell demo Manage demo environments for screenshots and demos docs Print the structured JSON documentation for this tool ecosystem Run tests across the entire Grove ecosystem list List available test scenarios record Record a manual TUI session to multiple output formats run Run test scenarios sessions Manage tend test sessions tui Launch an interactive TUI for browsing and running tests validate Validate test scenarios version Print the version information for this binary
Flags: -c/—config, —docker-filter, -g/—grove, -h/—help, -i/—interactive, —json, -m/—monitor, -r/—root, -t/—tags, -v/—verbose, —very-verbose
Use “tend [command] —help” for more information.
tend demo
Create and manage isolated demo environments for screenshots and demonstrations.
Demo environments provide complete, isolated Grove ecosystems for testing and demos. Each demo type creates different content (repositories, notes, plans, etc.) and can have its own tmux session with a preconfigured layout.
Available demos: homelab - Full-featured demo with 3 ecosystems, 13 repos, worktrees, notes, and plans
Commands: tend demo create <name> Create a new demo environment tend demo attach <name> Attach to the demo tmux session tend demo destroy <name> Remove the demo environment tend demo status <name> Show demo environment status
USAGE tend demo [command]
COMMANDS attach Attach to a demo tmux session create Create a new demo environment destroy Remove a demo environment status Show demo environment status
Flags: -h/—help
Use “tend demo [command] —help” for more information.
tend demo attach
Attach to the demo environment’s isolated tmux session.
This spawns a shell with the demo’s environment variables and connects to the demo’s tmux server.
USAGE tend demo attach <name> [flags]
FLAGS -h, —help help for attach -o, —output-dir Demo directory
tend demo create
Create a new demo environment with isolated ecosystems, repositories, and notebooks.
Available demos: homelab - Full ecosystem with 3 ecosystems, 13 repos, worktrees, notes, and plans
The environment is created at ~/.grove-demos/<name> by default, or at the path specified with —output-dir. Use —force to overwrite an existing demo environment.
After creation, use ‘tend demo attach <name>’ to connect to the demo tmux session.
USAGE tend demo create <name> [flags]
FLAGS -a, —attach Attach to the demo session immediately after creation -f, —force Overwrite existing demo environment -h, —help help for create -o, —output-dir Output directory (default: ~/.grove-demos/<name>)
tend demo destroy
Remove the demo environment and all its contents.
This kills the demo tmux server and removes all demo files.
USAGE tend demo destroy <name> [flags]
FLAGS -f, —force Skip confirmation prompt -h, —help help for destroy -o, —output-dir Demo directory
tend demo status
Display the current state of the demo environment.
USAGE tend demo status <name> [flags]
FLAGS -h, —help help for status -o, —output-dir Demo directory
tend docs
This command outputs the structured documentation for this tool in JSON format, which is used by other ecosystem tools like grove-mcp.
USAGE tend docs [flags]
FLAGS -h, —help help for docs
tend ecosystem
USAGE tend ecosystem [command]
COMMANDS run Discover and run all E2E test suites
Flags: -h/—help
Use “tend ecosystem [command] —help” for more information.
tend ecosystem run
USAGE tend ecosystem run [flags]
FLAGS -h, —help help for run -j, —jobs Number of parallel jobs (default: half of CPU cores) (default: 0) -p, —parallel Run ecosystem tests in parallel using a TUI
tend list
List all available test scenarios with their descriptions and tags.
This command helps you discover what scenarios are available and understand their purpose before running them.
USAGE tend list [flags]
FLAGS -h, —help help for list -k, —keyword Filter scenarios by keyword (searches name, description, and tags)
EXAMPLES tend list # List all scenarios tend list —tags=smoke # List scenarios tagged with ‘smoke’ tend list —keyword=git # List scenarios containing ‘git’ in name, description, or tags tend list —verbose # List with detailed information
tend record
Launches a command within a recordable sub-shell. All keystrokes and terminal output are captured and saved to five formats:
- .html: Interactive HTML report (for human review)
- .md: Markdown report (for LLM consumption, plain text)
- .ansi.md: Markdown with ANSI codes (for color debugging)
- .xml: XML report (for LLM consumption, plain text)
- .ansi.xml: XML with ANSI codes (for color debugging)
This is useful for creating shareable, replayable recordings of a TUI session, often for providing context to an LLM for writing automated tests.
Use ’—’ to separate the recorder’s flags from the command you want to record. If no command is provided, it will default to launching your default shell ($SHELL).
USAGE tend record [—out basename] — <command…> [flags]
FLAGS -h, —help help for record -o, —out Base filename for output files (without extension) (default: tend-recording)
EXAMPLES tend record —out my-session — nb tui # Creates: my-session.{html,md,ansi.md,xml,ansi.xml}
tend run
Run one or more test scenarios.
If no scenarios are specified, all scenarios in the scenarios directory will be run. Scenarios can be filtered by tags using the —tags flag.
USAGE tend run [scenario…] [flags]
FLAGS -d, —debug Enable debug mode (shorthand for -i —no-cleanup —tmux-split —nvim —very-verbose) —debug-session Enable debug mode in a new tmux session with windows (implies -i, —no-cleanup) —explicit Run only explicit-only scenarios (automatically enables —no-cleanup) —format Output format (text, json, junit) (default: text) -h, —help help for run —include-local Include local-only scenarios even when in a CI environment -j, —jobs Number of parallel jobs (default: half of CPU cores) (default: 0) —json Write JSON report to file —junit Write JUnit XML to file —no-cleanup Skip cleanup after scenario execution —nvim Start nvim in the new tmux split (requires —tmux-split) -p, —parallel Run scenarios in parallel —record-tui Directory to save TUI session recordings for failed tests —run-steps Run specific test steps at startup then pause (e.g., ‘1,2,3’) —server Debug session server type (‘main’ or ‘dedicated’). Overrides config. (requires —debug-session) —timeout Timeout for scenario execution (default: 10m0s) —tmux-split Split tmux window and cd to test directory —use-real-deps A comma-separated list of dependencies to use real binaries for instead of mocks (e.g., flow,cx). Use ‘all’ to swap all.
EXAMPLES tend run # Run all scenarios tend run agent-isolation # Run specific scenario tend run —tags=smoke # Run scenarios tagged with ‘smoke’ tend run —interactive agent-* # Run agent scenarios interactively tend run —parallel —timeout=5m # Run with 5 minute timeout in parallel
tend sessions
Manage and navigate tend debug test sessions.
This command launches a TUI for listing, previewing, and managing tend debug sessions created with ‘tend run —debug-session’.
USAGE tend sessions [flags] tend sessions [command]
COMMANDS attach Attach to a running tend session capture Capture the contents of a tmux pane cleanup Clean up orphaned tend test tmux servers kill Kill one or more tend sessions list List active tend debug sessions send-keys Send keystrokes to a tmux pane
Flags: -h/—help
EXAMPLES tend sessions # List sessions for current workspace tend sessions —all # List sessions for all workspaces
Use “tend sessions [command] —help” for more information.
tend sessions attach
USAGE tend sessions attach <session-name> [flags]
FLAGS -h, —help help for attach
tend sessions capture
USAGE tend sessions capture <session-target> [flags]
FLAGS -h, —help help for capture —timeout Timeout when using —wait-for (default: 5s) —wait-for Wait for text to appear before capturing —with-ansi Preserve ANSI escape codes in output (default: strip)
tend sessions cleanup
Clean up orphaned tmux servers created by tend tests.
Tend tests create isolated tmux servers using sockets named “tend-test-*”. These servers are normally cleaned up automatically, but may remain if tests are interrupted (Ctrl+C) or crash. This command finds and kills all orphaned tend test tmux servers.
USAGE tend sessions cleanup [flags]
FLAGS —dry-run Show what would be cleaned up without actually doing it -h, —help help for cleanup —remove-stale Also remove stale socket files where servers are not running
tend sessions kill
USAGE tend sessions kill [session-name…] [flags]
FLAGS —all Kill all active tend sessions -h, —help help for kill
tend sessions list
USAGE tend sessions list [flags]
FLAGS -h, —help help for list
tend tui
Launch an interactive Terminal User Interface to browse, manage, and run ‘tend’ test scenarios across the ecosystem.
USAGE tend tui [flags]
FLAGS -h, —help help for tui
tend validate
Validate that all test scenarios are properly defined and can be loaded.
This command checks: • Scenario files can be parsed • Required fields are present • Steps are properly defined • No circular dependencies exist
This is useful for CI/CD pipelines to catch configuration errors early.
USAGE tend validate [flags]
FLAGS -h, —help help for validate
EXAMPLES tend validate # Validate all scenarios tend validate —verbose # Show detailed validation output
tend version
USAGE tend version [flags]
FLAGS -h, —help help for version —json Output version information in JSON format