소스 정보
- 저장소
- Sanuu7/AndroidHarness
- 최근 소스 활동
- 2026년 9월 2일 02:48
- 감지된 SKILL.md 언어
- 영어
- 스타
- 5
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Sanuu7/AndroidHarness --skill browser명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
Deep self-test battery, 22 checks across 8 phases. Superset of doctor for full regression sweeps.
Run a self-test battery of every harness tool family and report pass/fail.
Force ideas out of the user's head — sharp questions one at a time, then forge the answers into a concrete plan.
| name | browser |
| description | Drive the in-app browser: navigate, click, type, scroll, inspect DOM and logs. |
Drive the in-app WebView with the browser_* tools when a task needs a real rendered page: testing workspace HTML or localhost previews, clicking through UI, filling forms, reading what JavaScript rendered.
The user sees every action live in the web preview sheet, with an "Agent is controlling the browser" banner and an activity trail. Say what you are about to do before you do it.
shell_background (for example python3 -m http.server 8000, npx serve, or dev servers like npm run dev) before navigating.browser_navigate first. It accepts external URLs and localhost dev servers (e.g. http://localhost:8000). Local workspace files can also be opened directly via workspace-relative files (served under https://harness.workspace/ws/...), but hosting on localhost is preferred for full client-server behavior. It returns URL, title, scroll position, text excerpt, and interactive elements numbered [1], [2], ... with [offscreen] / [DISABLED] markers. Those numbers are your handles.browser_click, browser_type (set clear_first to replace text). Missing ids and selectors are hard errors, not silent no-ops; on "not found" re-run browser_get_dom and pick the fresh number instead of retrying blind.scrollY, so verify a jump actually happened. If a click "did nothing", check browser_get_logs for JS errors before retrying; an unchanged URL does not mean the click failed.browser_wait_for (selector / text / url_contains) instead of guessing delays.browser_back / browser_forward / browser_refresh. These preserve console logs and are preferable to re-navigating, which resets app state.browser_get_url is the cheap way to confirm where you are (it reads the page's own location, so it is accurate for local and synthetic pages alike).browser_eval is synchronous and sandboxed: the last expression's value (or an explicit return) comes back as the result, and both runtime throws and syntax errors are reported as tool failures with the real message. There is no await; for async work, kick off the request, then browser_wait_for on the state it produces (stash results in localStorage and read them in a follow-up eval).browser_scroll then browser_get_dom for content below the fold.browser_screenshot captures the viewport and shows the image inline in the chat. Use it when layout or styling is the question, not for routine checks.python3 -m http.server) before testing in browser when possible.browser_get_dom and browser_back over re-navigating; re-navigation resets app state.