tendril0.0.4

reference

Reference

Commands, flags, configuration and environment for Tendril 0.0.4.

Commands

CommandMain optionsDoes
list--all-apps (Android)Windows, displays, cameras and devices
list-elements--include-offscreenSemantic elements of a target, or globally
capture-o --format png|jpeg --compression --max-width --max-height --timeout-msA screenshot or camera frame
run input--restore-focus --no-restore-focus --no-lock --lock-timeout-ms --lock-stale-ms --lock-pathText or a run sequence
listen--outputRecord audio, or report capability
clipboard get|setRead, or own and serve, a text selection
alias--name --shell bash|zsh|fish|powershellA shell function bound to a target
permissions--request (macOS)Permission status, read-only by default
updateCheck, stage and promote a release
versionThe running version
mcp stdioThe MCP server

Flags for every command

FlagMeans
--jsonA JSON envelope instead of text
--window ID, --display ID, --camera IDThe target; acting commands need exactly one
--remote user@hostRun on another machine over SSH
--wsl-tunnelRun the Windows build on the Windows host, from WSL
--android SERIAL|autoDrive an Android device over ADB

Configuration

Machine-local defaults live in ~/.config/tendril/config.yaml, or $TENDRIL_CONFIG_DIR/config.yaml. Flags override it.

capture:  format: png            # or jpeg  compression: 85        # 0–100  max_width: 512         # captures fit a 512 × 512 box unless raised  max_height: 512  timeout_ms: nulllogging:  level: info            # error, warn, info, debug or traceexecution_lock:  enabled: true  timeout_ms: 60000      # how long a run waits in the queue  stale_ms: 30000        # heartbeat age before a holder is reaped  path: null             # default: under the temporary directoryfeedback:                # optional; off when omitted  enabled: true  component: tendril  strategy:    type: webhook        # webhook, caco_cli, file, stderr or disabled    url: https://example.invalid/feedback    token_env: TENDRIL_FEEDBACK_TOKEN

Environment

VariableUsed for
TENDRIL_CONFIG_DIRWhere config.yaml is
TENDRIL_LOCK_PATH, TENDRIL_LOCK_TIMEOUT_MS, TENDRIL_LOCK_STALE_MS, TENDRIL_NO_LOCKThe execution lock
TENDRIL_LOCK_SESSIONThe session part of the lock's name; otherwise from WAYLAND_DISPLAY, DISPLAY or XDG_SESSION_ID
TENDRIL_REMOTE_BINThe tendril binary on a --remote host
TENDRIL_WSL_WINDOWS_BINThe Windows binary for --wsl-tunnel
TENDRIL_ANDROID_SERIAL, TENDRIL_ADB_BIN, TENDRIL_ANDROID_ARTIFACT_DIRThe Android device, the adb binary and the debug trail
TENDRIL_SKIP_PERMISSION_PROBESkip the live macOS Screen Recording probe, for tests
TENDRIL_*_FIXTURE_JSONTest fixtures for targets, captures, elements and input

Updates

tendril update uses the shared release flow: it discovers a newer tagged release, verifies its checksum, stages it and promotes it at the next start. tendril version prints the running version without touching anything.

Rust API

The workspace's Rust documentation is generated at publish time and served under api/: the tendril library and binary, the Windows backend crate and the shared command surface.

Development

CommandDoes
nix developRust, Clippy, rustfmt and helpers, pinned
cargo testUnit tests and the integration suites (flows, MCP parity, platform contract, runtime-dependency audit)
nix build .#checks.system.clippyThe canonical Clippy gate
scripts/tendril-headless.sh … smokeSmoke tests against a disposable desktop

This site is built from site/ by scripts/site/build.py and checked by scripts/check-site.py; scripts/build-docs.sh adds the Rust API and assembles what is published.