AI가 마우스 대신 접근성 트리를 쥐었다
위뉴즈, 맥·윈도우 GUI를 이름으로 찾아 조작하는 에이전트용 자동화 도구
AI 에이전트가 사람 대신 마우스와 키보드를 잡는 도구가 또 하나 공개됐다. 깃허브에 올라온 위뉴즈(winuse)는 화면을 캡처해 좌표를 찍는 방식이 아니라, 운영체제가 이미 제공하는 접근성 정보를 읽어 창과 버튼을 이름으로 찾아 조작한다. 러스트(Rust)로 코어를 만들고 그 위에 파이썬(Python) API와 에이전트용 명령줄 도구를 얹은 구조다.
무슨 일인가
위뉴즈는 맥오에스 접근성(Accessibility)과 윈도우 UI 오토메이션(UI Automation)을 같은 백엔드 인터페이스 뒤로 감춰 한 코드로 두 운영체제를 다룬다. 저장소에는 에이전트 지침 파일과 스킬 폴더가 함께 들어 있어, 사람이 쓰는 자동화 라이브러리가 아니라 처음부터 코딩 에이전트가 호출하는 것을 전제로 설계됐음을 보여준다. 커밋 35개, 별 1개 수준의 초기 단계 프로젝트다.
권한 조건은 플랫폼마다 다르다. 맥에서는 맥오에스 15.2 이상이 필요하고 위뉴즈를 실행하는 터미널이나 파이썬 호스트에 접근성 권한을 줘야 하며, 스크린샷을 쓰려면 화면 기록 권한이 추가로 필요하다. 윈도우 10과 11은 별도 개인정보 권한이 필요 없지만, 무결성 격리 때문에 관리자 권한으로 뜬 앱에는 입력이 막힌다. 같은 무결성 수준으로 실행해야 하고, 보안 데스크톱 화면은 아예 지원하지 않는다.
핵심 짚어보기
API는 앱 이름으로 창을 잡고 역할과 이름으로 요소를 찾는 흐름이다. 텍스트 영역을 찾아 값을 채우거나 커서 위치에 삽입하고, 엔터나 단축키를 누르고, 더블클릭·호버·드래그까지 지시할 수 있다. 창은 활성화·최소화·복원·최대화·닫기가 가능하고, 클립보드는 내용 종류를 텍스트·파일·이미지·빈값으로 구분해 읽어온다.
실전에서 갈리는 대목은 두 가지다. 첫째는 상태 대기다. 전송 버튼이 활성화될 때까지 10초, 상태 표시가 완료로 바뀔 때까지 30초를 기다리라고 한 줄로 지시할 수 있어 스냅샷을 반복 조회하는 코드를 직접 짜지 않아도 된다. 둘째는 감시다. 메시지 목록 같은 하위 영역을 0.25초 간격으로 지켜보며 항목이 추가되거나 사라질 때 변경 이벤트로 받는다. 하위 트리를 지정 깊이까지 떠서 텍스트로 만드는 기능도 있어 그 결과를 모델 입력으로 바로 쓸 수 있다.
스크린샷을 매번 모델에 넣는 방식보다 토큰과 지연이 크게 줄고, 창 크기나 테마가 바뀌어도 동작이 깨지지 않는다는 점이 가장 큰 차이다.
1인기업 실전 적용 포인트
- 공개 API가 없는 국내 업무 프로그램(전자세금계산서, 쇼핑몰 관리자, 사내 관리 프로그램)의 반복 입력을 역할·이름 기반으로 자동화한다.
- 로그인이나 인증번호처럼 사람이 개입해야 하는 구간은 상태 대기로 멈춰두고, 통과되면 나머지 단계를 자동으로 이어받게 만든다.
- 문의 목록과 주문 목록을 감시 기능에 걸어 새 항목이 생길 때만 후속 작업을 실행한다. 1초에 네 번 화면을 다시 읽는 폴링 루프를 직접 관리할 필요가 없다.
- 긴 문장은 클립보드에 넣고 붙여넣기 단축키로 처리한다. 한 글자씩 타이핑하는 방식보다 빠르고 한글 조합이 깨지는 사고도 줄어든다.
전망과 주의점
아직 별 하나짜리 초기 프로젝트이므로 실제 업무에 붙일 때는 검증 부담을 감안해야 한다. 접근성 정보를 제대로 노출하지 않는 화면에서는 요소를 찾지 못하고, 관리자 권한 앱과 보안 데스크톱은 구조적으로 조작할 수 없다. 실계정과 결제가 걸린 화면부터 붙이면 사고가 난다. 읽기 전용 동작으로 먼저 검증하고, 되돌릴 수 없는 클릭 앞에는 확인 단계를 넣는 편이 안전하다. 자동화가 해당 서비스 약관에 저촉되는지도 미리 확인할 필요가 있다.
출처: 깃허브 lgxz/winuse (https://github.com/lgxz/winuse)