Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Snowboard Remote Runtime Agent

Remote runtime agent for Citrix/VDI automation with native UIAutomation selectors.

Built by: Yash Sharma, Sr AI/ML Engineer, Yash (Yash_Personal_openSource)

Overview

The Snowboard Remote Runtime Agent runs on Citrix/VDI machines to enable native selector-based automation from Snowboard Studio. It provides:

  • Native UIAutomation: Access to Windows UIAutomation API inside remote sessions
  • TCP/IP Communication: Secure communication with Studio over port 9250
  • Auto-Discovery: UDP broadcast for automatic discovery on the network
  • Health Monitoring: Auto-restart on failures for reliability
  • Self-Contained: Single .exe deployment with no external dependencies

Installation

Option 1: Console Mode (For Testing)

SnowboardRemoteRuntime.exe --console

Option 2: Windows Service (Production)

# Install service (requires Administrator)
sc create SnowboardRemoteRuntime binPath= "C:\Path\To\SnowboardRemoteRuntime.exe" start= auto

# Start service
sc start SnowboardRemoteRuntime

# Check status
sc query SnowboardRemoteRuntime

# Stop service
sc stop SnowboardRemoteRuntime

# Uninstall service
sc delete SnowboardRemoteRuntime

Configuration

The agent listens on port 9250 for TCP connections and port 9251 for UDP discovery.

Ensure these ports are open in your firewall:

netsh advfirewall firewall add rule name="Snowboard Remote Runtime TCP" dir=in action=allow protocol=TCP localport=9250
netsh advfirewall firewall add rule name="Snowboard Remote Runtime UDP" dir=in action=allow protocol=UDP localport=9251

Logs

Logs are stored at:

%LOCALAPPDATA%\Snowboard\RemoteRuntime\
  - runtime_YYYYMMDD.log  (main logs)
  - health_YYYYMMDD.log   (health check logs)

Capabilities

The remote runtime supports:

  • Find Element: Locate UI elements by AutomationId, Name, ClassName, ControlType
  • Click: Single, double, and right-click actions
  • Type Text: Text input with optional clear-first
  • Get Text: Extract text from UI elements
  • Screen Capture: Capture screenshots from remote session

Architecture

┌─────────────────────────┐         ┌─────────────────────────┐
│   Snowboard Studio      │ TCP/IP  │  Remote Runtime Agent   │
│   (Developer Machine)   │<------->│  (Citrix/VDI Machine)   │
└─────────────────────────┘  9250   └─────────────────────────┘
         │                                      │
         │ UDP Discover (9251)                  │
         └──────────────────────────────────────┘

Security

  • No Credentials Stored: Agent does not store any credentials
  • Local Network Only: Designed for LAN/VPN environments
  • Admin Rights Required: Requires Administrator for UIAutomation access

Troubleshooting

Agent Not Discovered

  1. Check firewall rules on both Studio and Agent machines
  2. Verify UDP port 9251 is open
  3. Ensure both machines are on same network/VLAN

Connection Failures

  1. Check TCP port 9250 is open
  2. Verify agent is running: sc query SnowboardRemoteRuntime
  3. Check logs for errors

UIAutomation Not Working

  1. Verify agent is running with Administrator privileges
  2. Check if target application is visible (not minimized)
  3. Ensure UIAutomation is enabled on the system

Version History

  • v1.0.0 (2025-01-27): Initial release with full UIAutomation support