Trailblaze
Support
Initializing search
Trailblaze
Trailblaze
Trailblaze
Introduction
CLI
Android On-Device Testing
Architecture
Configuration
Getting Started
Host JVM Unit Tests
LLM Configuration
LLM Support
Logging
Maestro Compatibility
Packs
Project Layout
Revyl Cloud Device Integration
Roadmap
Author Your First Scripted Tool
Support
Trailblaze Tools
Benchmarks
Benchmarks
Playwright-Native Benchmarks
Devlog
Devlog
Devlog
LLM as Compiler Architecture
Trail Recording Format (YAML)
Maestro as Current Execution Backend
Tool Execution Modes
Tool Naming Convention
Handwritten Agent Loop
Custom Tool Authoring
Desktop Application (Moving Away from IDE-based Execution)
Koog Library for LLM Communication
Kotlin as Primary Language
Logging and Reporting Architecture
Trailblaze MCP
Self-Heal
Device-Specific Trail Recordings
Custom Tool Architecture
App Target Configuration
LLM Provider Configuration
Mobile-Agent-v3 Integration Plan
Trail/Blaze Agent Architecture
Agent Resilience, Maestro Decoupling, and Driver-Specific Hierarchies
Recording Memory Template Substitution
Scripted Tools Vision (TypeScript/QuickJS)
TrailblazeNode — Type-Safe Driver-Specific View Hierarchy
Trail YAML v2 Syntax
Agentic Development Loop
Recording Optimization Pipeline
Waypoints and App Navigation Graphs
MCP STDIO-to-HTTP Proxy for Development
iOS TrailblazeNode Support via IosMaestro
MCP API Redesign: verify→blaze, Mode Defaults, iOS launchApp Fix
Screenshot Format Optimization (WebP Everywhere)
CLI-Based OAuth/Auth and Dynamic On-Device Instrumentation Args
Support reasoning_effort in LLM Config
Unified trailblaze-config/ Classpath Layout
Workspace Config Resolution: .trailblaze/ and trailblaze-config/ Conventions
Unified Provider Auto-Detection Across Host and Android
CLI and MCP Session Management: Device State and Multi-Terminal Behavior
Platform-Native Hierarchical Snapshots with Stable Element Refs
Ref-Based Tap Replaces Node ID Tap
Scripted Tools PR A2 — Synchronous Tool Execution from JS
Scripted Tools PR A3 — Host-Side Subprocess MCP Toolsets (Scope)
Scripted Tools PR A3 Phase 1 — Subprocess MCP Client, Lifecycle, and Registration
Scripted Tools Execution Model (QuickJS + Synchronous Host Bridge)
Scripted Tools — MCP Extension Conventions
Scripted Tools PR A3 — MCP SDK Subprocess Toolsets
Scripted Tools PR A5 — MCP Toolsets Bundled for On-Device
Scripted Tools — Toolset Consolidation & Revised Sequencing
YAML-Defined Tools (the `tools:` mode)
Maestro Scripting & Flow Control — Comparison and Self-Validation
runTrail: Trail-as-Tool Primitive (Proposal)
Scripted Tools — MCP Server Integration Patterns (forward-looking)
Waypoint Discovery via `matchWaypoint` — Agent-Driven, Retroactive
@trailblaze/scripting — Authoring Vision & Roadmap (for TS authors)
Scripting SDK — client.callTool Round-Trip
Scripting SDK — Envelope Migration & Callback Transport (D1 + D2)
A TrailblazeTool is a function call (MCP tool, RPC request — same thing)
On-device MCP tool callbacks — direct QuickJS binding
Trailblaze as the Robot Pattern — and More
Target Packs: Local-First Packaging for Target-Aware Capabilities
Pack Manifest V1
Library vs Target Packs
Pack config cleanup: id-based targets, implicit tools, transitive dependencies
Pack Tools: Nested Subdirectories + Waypoint Auto-Discovery
Waypoint graph viewer: focal+depth, agent prompt tab, dock UX
Waypoint + shortcut graph: planner/executor, express routes, semantic recording
Waypoint --target Flag and Magic capture-example
Why Trailblaze beats code generators
DriverDispatch and the iOS settle gap
Use npm for Trailmap Distribution
Generated
Generated
Built-in LLM Models
Trailblaze Tools
CLI Usage Scenarios
External Config
Functions
Functions
Custom
Custom
assertEquals
assertMath
assertNotEquals
assertNotVisibleWithText
assertVisible
assertWithAi
Compose click
Compose request details
Compose scroll
Compose type
Compose verify element visible
Compose verify text visible
Compose wait
dumpMemory
eraseText
hideKeyboard
inputText
launchApp
mobile pasteClipboard
mobile setClipboard
networkConnection
objectiveStatus
openUrl
playwright desktop launchGoose
pressBack
pressKey
rememberNumber
rememberText
rememberWithAi
Revyl assert
Revyl back
revyl doubleTap
Revyl navigate
revyl pressKey
Revyl swipe
Revyl tap
Revyl type
scrollUntilTextIsVisible
setActiveToolSets
Swipe
takeSnapshot
Tap
tapOnPoint
Wait
web applyCookies
Web assert network event
Web click
web currentUrl
Web evaluate
web fillSecret
web getStorageState
Web hover
Web navigate
Web press key
Web request details
Web scroll
Web select option
Web snapshot
Web type
Web verify element visible
Web verify list visible
Web verify text visible
Web verify value
Web wait
web waitForUrl
Generator
Generator
Index
Mcp
Mcp
MCP Integration
Support
GitHub Issues