# gkd-kit/gkd

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gkd-kit-gkd).**

36,084 stars · 1,753 forks · Kotlin · gpl-3.0

## Links

- GitHub: https://github.com/gkd-kit/gkd
- Homepage: https://gkd.li
- awesome-repositories: https://awesome-repositories.com/repository/gkd-kit-gkd.md

## Topics

`accessibility` `android` `auto` `click` `compose` `jetpack-compose` `kotlin` `kotlin-js` `kotlin-multiplatform` `webassembly`

## Description

GKD is an automation engine that leverages the Android accessibility framework to monitor system events and execute predefined interaction rules. By acting as a background service, it identifies interface elements in real-time and performs automated tasks, such as dismissing pop-ups or navigating through application screens, based on the current state of the device.

The project distinguishes itself through a declarative rule engine that processes human-readable configuration files. Users can define sophisticated interaction logic using a specialized selector syntax that supports hierarchical relationships, attribute filtering, and contextual node traversal. This allows for precise targeting of interface components across different applications, enabling both global automation and application-specific workflows.

Beyond its core automation capabilities, the platform includes diagnostic tools for inspecting the structural hierarchy of visible interface components. It supports snapshot management for debugging, including features for redacting sensitive information before sharing data. The system is designed for persistent background operation, utilizing native API query optimizations to maintain performance while minimizing resource consumption.

The application requires accessibility permissions to function and provides configuration options for managing background execution and system-level task locking. Users can import rule sets from local storage or external services to customize their automation environment.

## Tags

### Development Tools & Productivity

- [Accessibility Automation Tools](https://awesome-repositories.com/f/development-tools-productivity/accessibility-automation-tools.md) — Provides real-time interface analysis by traversing the system view hierarchy via accessibility services.
- [Automation Frameworks](https://awesome-repositories.com/f/development-tools-productivity/automation-frameworks.md) — Monitors system accessibility events to execute predefined interaction rules immediately upon the appearance of specific interface states.
- [Automation Rules](https://awesome-repositories.com/f/development-tools-productivity/automation-rules.md) — Create universal rules to automate interactions across multiple applications, such as dismissing intrusive pop-ups or advertisements automatically without manual intervention. ([source](https://gkd.li/guide/subscription))
- [Interface Automation Rules](https://awesome-repositories.com/f/development-tools-productivity/interface-automation-rules.md) — Defining global rules to handle common interface patterns like dismissing pop-ups or advertisements across multiple different applications.
- [Task Automation Engines](https://awesome-repositories.com/f/development-tools-productivity/task-automation-engines.md) — Perform recurring interface tasks automatically by defining rules that trigger responses whenever specific conditions or user interface elements appear on the screen. ([source](https://gkd.li/guide/what-is-gkd))
- [Declarative Rule Engines](https://awesome-repositories.com/f/development-tools-productivity/declarative-rule-engines.md) — Processes human-readable configuration files to trigger conditional actions against detected interface elements.
- [Interaction Logic Engines](https://awesome-repositories.com/f/development-tools-productivity/interaction-logic-engines.md) — A configuration-driven environment that triggers automated actions when specific interface conditions or UI states are detected by the system.
- [Rule Definition Languages](https://awesome-repositories.com/f/development-tools-productivity/rule-definition-languages.md) — Create custom rules using structured data formats to identify and interact with specific interface elements within target applications based on visual snapshots. ([source](https://gkd.li/guide/subscription))
- [Configuration Engines](https://awesome-repositories.com/f/development-tools-productivity/configuration-engines.md) — Processes declarative automation logic defined in human-readable configuration files to trigger conditional actions against detected UI elements.
- [Quick Access Shortcuts](https://awesome-repositories.com/f/development-tools-productivity/quick-access-shortcuts.md) — Enable or disable core application tools and permissions directly from the system notification panel to provide rapid access to frequently used functions. ([source](https://gkd.li/guide/external))
- [Subscription Management](https://awesome-repositories.com/f/development-tools-productivity/subscription-management.md) — Customize automated behavior for specific software environments by defining application groups and rule categories to match user preferences. ([source](https://gkd.li/guide/subscription))
- [Workflow Optimization Tools](https://awesome-repositories.com/f/development-tools-productivity/workflow-optimization-tools.md) — Managing global and application-specific rule sets to streamline user interactions and remove manual friction within mobile software.

### Mobile Development

- [Android Automation Frameworks](https://awesome-repositories.com/f/mobile-development/automation-qa/android-automation-frameworks.md) — A background service that executes custom rule sets to interact with interface elements based on accessibility service events. ([source](https://cdn.jsdelivr.net/gh/gkd-kit/gkd@main/README.md))
- [Automation Utilities](https://awesome-repositories.com/f/mobile-development/automation-qa/automation-utilities.md) — Executing repetitive tasks and handling common UI patterns like dismissing pop-ups across various applications automatically.
- [Debugging Tools](https://awesome-repositories.com/f/mobile-development/build-and-tooling/debugging-tools.md) — A diagnostic tool that retrieves and analyzes the structural hierarchy and property data of visible interface components for debugging purposes.

### User Interface & Experience

- [UI Inspection Tools](https://awesome-repositories.com/f/user-interface-experience/ui-inspection-tools.md) — Retrieve dimensions, hierarchy data, and specific attributes to analyze the structure and properties of visible interface components within an application. ([source](https://gkd.li/guide/node))
- [UI Selection Engines](https://awesome-repositories.com/f/user-interface-experience/ui-selection-engines.md) — Target specific elements within complex layouts by defining hierarchical relationships such as parent-child or ancestor-descendant connections to isolate the desired component. ([source](https://gkd.li/guide/example))
- [UI Traversal Utilities](https://awesome-repositories.com/f/user-interface-experience/ui-traversal-utilities.md) — Locate relative interface elements by navigating through parent, child, and sibling relationships using specialized matching techniques to find specific nodes in a tree. ([source](https://gkd.li/guide/node))
- [UI Query Languages](https://awesome-repositories.com/f/user-interface-experience/ui-query-languages.md) — Create node selection rules using attribute filters and relationship combinators to isolate specific elements within an application hierarchy for further interaction or analysis. ([source](https://gkd.li/guide/selector))
- [Accessibility Inspection Tools](https://awesome-repositories.com/f/user-interface-experience/accessibility-inspection-tools.md) — Analyzing the structure and properties of interface components by accessing system-level accessibility data for debugging or automation.
- [Declarative Interaction Frameworks](https://awesome-repositories.com/f/user-interface-experience/declarative-interaction-frameworks.md) — Defining custom rules in structured formats to trigger specific actions when target interface elements or visual states appear.
- [Dynamic UI Querying](https://awesome-repositories.com/f/user-interface-experience/dynamic-ui-querying.md) — Filter interface elements by applying context-aware traversal methods that account for their position, sibling status, or specific child node properties. ([source](https://gkd.li/guide/example))
- [Interface Selectors](https://awesome-repositories.com/f/user-interface-experience/interface-selectors.md) — Identify specific interface nodes for automation using a selector syntax that supports hierarchical relationships and contextual filtering to ensure precise interaction. ([source](https://cdn.jsdelivr.net/gh/gkd-kit/gkd@main/README.md))
- [UI Element Selectors](https://awesome-repositories.com/f/user-interface-experience/ui-element-selectors.md) — Identifies target interface components by evaluating complex parent-child and sibling relationships within the captured node tree.
- [Interface Query Languages](https://awesome-repositories.com/f/user-interface-experience/interface-query-languages.md) — A domain-specific language for identifying and targeting interface nodes through hierarchical relationships and attribute-based filtering logic.
- [Selector Composition Engines](https://awesome-repositories.com/f/user-interface-experience/selector-composition-engines.md) — Combine multiple matching rules with logical operators to create sophisticated criteria for identifying specific interface elements within a complex layout. ([source](https://gkd.li/guide/selector))
- [UI Inspection Utilities](https://awesome-repositories.com/f/user-interface-experience/ui-inspection-utilities.md) — Evaluate node properties using equality, pattern matching, and containment operators to validate the current state or text content of interface elements. ([source](https://gkd.li/guide/selector))

### DevOps & Infrastructure

- [Background Service Managers](https://awesome-repositories.com/f/devops-infrastructure/background-service-managers.md) — Maintains continuous operation by configuring system-level task locking and power management settings.

### System Administration & Monitoring

- [Accessibility Service Integrations](https://awesome-repositories.com/f/system-administration-monitoring/accessibility-service-integrations.md) — Activate accessibility services by following manual configuration steps or using trusted installation methods to bypass system restrictions and enable core automation features. ([source](https://gkd.li/guide/faq))
- [Background Process Management](https://awesome-repositories.com/f/system-administration-monitoring/background-process-management.md) — Configure system battery and task-locking settings to prevent the operating system from suspending the application process during background operation for consistent performance. ([source](https://gkd.li/guide/faq))

### Testing & Quality Assurance

- [Debuggers](https://awesome-repositories.com/f/testing-quality-assurance/debugging-diagnostics/debuggers.md) — Record current interface states using floating buttons or system shortcuts to analyze and debug the underlying structure of user interface nodes. ([source](https://gkd.li/guide/snapshot))
- [Runtime Debugging Tools](https://awesome-repositories.com/f/testing-quality-assurance/debugging-diagnostics/runtime-debugging-tools.md) — Compare attributes and values across different interface elements to validate the current state or trigger specific logic during automated testing or interaction sequences. ([source](https://gkd.li/guide/node))
- [Data Validation Libraries](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/data-validation-libraries.md) — Verify integers, strings, and screen positions by specifying matching patterns and coordinate types to ensure accuracy during the execution of automated tasks. ([source](https://gkd.li/api/))

### Security & Cryptography

- [Permission Management Tools](https://awesome-repositories.com/f/security-cryptography/permission-management-tools.md) — Resolve device-specific permission errors by adjusting security settings and developer options to grant the necessary access required for complex automation tasks. ([source](https://gkd.li/guide/faq))

### Operating Systems & Systems Programming

- [System Integration Frameworks](https://awesome-repositories.com/f/operating-systems-systems-programming/platform-development-integration/system-integration-frameworks.md) — Connect with system-level frameworks to gain extended access to platform APIs for improved automation and performance capabilities across the operating system. ([source](https://gkd.li/guide/faq))

### Software Engineering & Architecture

- [Query Optimization Tools](https://awesome-repositories.com/f/software-engineering-architecture/query-optimization-tools.md) — Target the root node directly to bypass full-tree traversal and perform immediate lookups for matching interface elements without scanning the entire document structure. ([source](https://gkd.li/guide/optimize))
