--- name: tau-e2e-testing-tmux description: Use Tau's dev tmux helper for manual agent-controlled end-to-end testing of the current checkout. --- # Tau end-to-end testing with tmux Use the hidden `tau dev tmux` helper to run a manual Tau session in a private tmux server with isolated scratch state. This is for agent-controlled manual E2E checks, not an automated test framework. 1. Build the current checkout: ```sh cargo build -p dpc-tau ``` 2. Start an isolated tmux session. When `--scratch-root` / `--root` is omitted, the helper generates a unique temporary scratch root and prints it in the startup output. Copy the printed `scratch root:` value into `scratch_root` for later commands: ```sh target/debug/tau dev tmux start \ --tau-bin target/debug/tau scratch_root='' ``` By default this sets scratch `HOME`, `XDG_CONFIG_HOME`, `XDG_STATE_HOME`, `XDG_RUNTIME_DIR`, disables all extensions, and enables only `core-shell` with its working directory pointed at scratch `work/`. Use `--workdir` only for an existing external directory that should not be created or chmodded by the helper. Provider access is opt-in. If `~/.config/tau/testing.yaml` is absent, start prints a warning and copies no real provider credentials/config/state. To let the tmux Tau use selected real provider profiles, configure exact provider profile names: ```yaml testing_providers: - chatgpt ``` Discover exact profile names in the real Tau environment with `tau provider list`; use the displayed profile name, which must match the stem of `~/.local/state/tau/auth.d/.json`. The helper copies only `~/.local/state/tau/auth.d/.json` for those names into scratch state and then enables `provider-builtin`; it never copies all providers or general user config. For more detail, load the built-in self-knowledge skills `tau-self-knowledge-e2e-testing` and `tau-self-knowledge-ext-provider-builtin`. 3. Inspect the UI using the printed scratch root: ```sh target/debug/tau dev tmux capture --scratch-root "$scratch_root" ``` 4. Send input: ```sh target/debug/tau dev tmux send --scratch-root "$scratch_root" -- :version ``` Add `--no-enter` to paste without submitting. 5. Stop and clean up: ```sh target/debug/tau dev tmux stop --scratch-root "$scratch_root" --remove-scratch ``` Use `--scratch-root` or its shorter `--root` alias when you need a specific scratch location. Use `--session`, `--width`, and `--height` when you need a non-default session name or fixed pane size.