droid-control
Installation
SKILL.md
Droid Control
Automate terminals, browsers, and desktop apps. Route by the user's requested method first, then load only the mechanics and evidence stages needed.
Ground rules
- Real apps, real environments. Non-deterministic behavior (LLM responses, network latency, variable output) is expected. Handle it with
wait/wait-idle. Never substitute fixtures or mocked data. - Recover from evidence. After a failed or uncertain action, observe current state before retrying. Honor method constraints and permission boundaries; a refusal does not authorize another driver or broader target.
- Atoms include their references. Load linked material on demand. Desktop-use does not require a separately installed cua skill.
tctlowns recorded terminal sessions. It wrapsasciinema recaround the PTY; browser and desktop drivers own their separate lifecycles. Never calltuistory launchdirectly. ResolveTCTLto an absolute path only for terminal workflows or worker handoffs.- Isolate every run. Multiple droids may be filming simultaneously on the same machine. Session names and output paths share a global namespace (
/tmp/tctl-sessions/). At the start of every workflow, generate a run ID (RUN_ID=$(date +%s)-$$or similar) and use it as a prefix for all session names and a scoped temp directory for all output files:
Never use bare session names likeRUN_ID="$(date +%s)-$$" RUN_DIR="$(mktemp -d /tmp/droid-run-${RUN_ID}-XXXXXX)" # Session names: -s ${RUN_ID}-before, -s ${RUN_ID}-after # Output paths: ${RUN_DIR}/before.cast, ${RUN_DIR}/after.cast-s demo,-s before,-s after— they will collide with concurrent runs. Separate names and paths do not isolate shared desktop focus or keyboard input. Keep one controller for a visible desktop.