Skip to main content

uitree

Read desktop UI Automation trees so an agent can act on meaning, not pixels.

Windows exposes every well-behaved app as a semantic tree — controls with types, names, AutomationIds, enabled states and values. It's a DOM for the desktop. uitree makes that tree available to scripts and agents: dump it, search it, watch it change.

$ uitree windows
      132016  (untitled)
      65908  Панель задач
      197840  ZCode

$ uitree dump "Notepad"
Window "Untitled - Notepad"  [88,232 962x468]
  MenuBar "Application"
    MenuItem "File"
    MenuItem "Edit"
  Edit "Text Editor" id=15  value=''  [96,300 946x368]
  StatusBar ...

$ uitree find "Notepad" --type Edit
  Edit         name='Text Editor' id='15'  [96,300 946x368]

$ uitree watch "Notepad" --interval 1
[2]
  + appeared: Dialog "Save As"
  + appeared: Button "Save" id=CmdSave

Commands

uitree windows [--json]
uitree dump <title-or-handle> [--depth N] [--json]
uitree find <window> [--name X] [--contains] [--type T] [--automation-id A] [--json]
uitree watch <window> [--interval 1] [--count 10]     # reports appeared / gone / value changes
uitree demo [dir]                                     # Notepad + Save-As fixture trees, offline

Read-only by contract — uitree never injects input, so it's safe to run against any window. Acting on an element is done through the element's AutomationId with pywinauto directly (see the skill).

Live trees are Windows-only and need pywinauto (installed automatically on Windows by pip). Everywhere else, --fixtures <dir> replays saved trees — which is also how the tests work and how uitree demo teaches the workflow without touching your screen.

Python 3.11+.

Install: pip install uitree — or from this repo: pip install "git+https://github.com/juzorei/uitree#subdirectory=tools/uitree"

The companion agent skill lives in skills/desktop-uia-automation: inspect → locate by AutomationId → act through patterns → verify by re-reading the tree. Skills: npx skills add juzorei/uitree.

Metadata

Release files for uitree 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uitree 0.1.0
File Size Uploaded Provenance Actions
uitree-0.1.0.tar.gz 10.4 kB With provenance Details for uitree-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for uitree 0.1.0
File Interpreter ABI Platform Actions
uitree-0.1.0-py3-none-any.whl Python 3 none any Details for uitree-0.1.0-py3-none-any.whl

Total release size: 19.7 kB

Release files / uitree-0.1.0.tar.gz

Download URL uitree-0.1.0.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9969fc59e855146823f84666239ab235b6d9a4c101af180ada691e00d5cbbf4f
BLAKE2b-256 checksum
How to use checksums
d0f672b985d057e5fcfe5a89d7663ebb97fc954626893848d9e160d7eb2e05e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Release files / uitree-0.1.0-py3-none-any.whl

Download URL uitree-0.1.0-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
40963f2f0dd00d191da0d583f4e99c364289120020b777fa37d69a4afc25e8a8
BLAKE2b-256 checksum
How to use checksums
153ee2c6e809a5eefedb24495cd6bb57664ed073ddd01da5799c321c2e38ded6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Security for uitree 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for uitree-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page