linux-at-spi2

Query and act on AT-SPI2 accessibility trees for Linux desktop UI automation.

3|1|Updated Dec 3, 2025
One-click install
npx skills add https://github.com/Probably-Group/Dev-AID --skill linux-at-spi2-probably-group
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: linux-at-spi2
Source: https://github.com/Probably-Group/Dev-AID/tree/main/.dev-aid/skills/expert/linux-at-spi2
Command: npx skills add https://github.com/Probably-Group/Dev-AID --skill linux-at-spi2-probably-group

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Linux accessibility automation becomes brittle when AI tooling clicks or queries UI elements without safety guardrails, timeouts, and D-Bus-aware validation.

Core Features & Use Cases

  • AT-SPI2-first desktop UI control: Traverse and query the accessibility tree for GTK/Qt applications and drive UI actions through accessible interfaces.
  • Security guardrails for accessibility IPC: Apply D-Bus access control principles, treat all accessibility data as untrusted input, block sensitive roles (e.g., password fields), and enforce privilege separation via isolated process patterns.
  • Deterministic, resilient interaction logic: Use GLib main loop patterns, bounded traversal (depth/node limits), cycle detection, event-driven listeners, and state verification before actions.

Quick Start

Use linux-at-spi2 to generate code that finds a focused window control and safely activates a clickable element in a Linux desktop app via AT-SPI2, respecting timeouts and role/state checks.

Frequently Asked Questions about linux-at-spi2

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate GTK and Qt application UI testing on Linux?

Automate Linux desktop UI testing by querying and acting on AT-SPI2 accessibility trees for GTK and Qt applications. This approach drives interactions through accessible interfaces, using GLib main loop patterns and state verification to ensure deterministic test execution and reliable element discovery.

What is the AT-SPI2 accessibility tree and how does it work for UI automation?

The AT-SPI2 accessibility tree exposes UI elements as accessible objects via D-Bus, allowing automation tools to traverse nodes, query roles and states, and trigger actions. Bounded traversal with depth limits and cycle detection ensures reliable element discovery without infinite loops.

Can I use D-Bus to verify UI elements in Linux integration tests?

Yes, D-Bus based UI verification is supported by querying AT-SPI2 accessibility trees to check element states and roles before acting. Event-driven listeners enable responsive integration tests, while strict GLib.Error handling and timeouts prevent hangs during asynchronous D-Bus communication.

How do I safely automate Linux desktop apps without security risks?

Safe Linux desktop automation requires treating all accessibility data as untrusted input, blocking sensitive roles like password fields, and enforcing D-Bus access control principles. Privilege separation via isolated process patterns further protects against D-Bus misuse during automated interactions.

Why does my Linux accessibility automation become brittle or hang during testing?

Linux accessibility automation becomes brittle without safety guardrails, timeouts, and D-Bus-aware validation. Applying bounded traversal with node limits, GLib main loop patterns, and state verification before actions prevents unresponsive hangs and ensures resilient, deterministic UI interactions.

Does AT-SPI2 UI automation work for both GTK and Qt applications?

Yes, AT-SPI2 accessibility automation supports both GTK and Qt applications by traversing their respective accessibility trees via D-Bus. Both toolkits expose UI elements through the AT-SPI2 interface, enabling consistent automation logic for element discovery and action execution across frameworks.