Agent skill

Tasker XML

by mikeyobrien in mikeyobrien/rho

Create Tasker profiles and tasks via XML for Android automation.

MITAuto-check passedMobile

Install Tasker XML

skills CLI
$ npx skills add mikeyobrien/rho --skill tasker-xml -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mikeyobrien/rho tasker-xml --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mikeyobrien/rho.git skills-src && mkdir -p .claude/skills && cp -r skills-src/platforms/android/skills/tasker-xml .claude/skills/tasker-xml && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tasker-xml
GitHub stars
371
Token cost
~3.1k tokens
SKILL.md length
419 words
Files
1
Skills in repo
35
Repo updated
First seen
Licence
MIT

At a glance

Create Tasker profiles and tasks via XML for Android automation.

  • Works in 4 steps: Open Tasker app → For profiles: Long press PROFILES tab →… → For tasks: Long press TASKS tab → Import… → …
  • Adding new Tasker functionality
  • SKILL.md covers Output Location, File Suffixes, Import Instructions and XML Structure, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Tasker XML is an agent skill from mikeyobrien/rho. Create Tasker profiles and tasks via XML for Android automation. Use when adding new Tasker functionality, creating Intent Received handlers, or building automation that integrates with the rho.tasker extension.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile. It works with Android. The repository describes itself as: An AI agent that stays running, remembers across sessions, and checks in on its own. macOS, Linux, Android. Built on Pi. The licence is MIT.

When your agent uses it

  • Adding new Tasker functionality
  • Creating Intent Received handlers
  • Building automation that integrates with the rho.tasker extension

Example prompts

  • “/tasker-xml”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Open Tasker app
  2. For profiles: Long press PROFILES tab → Import Profile
  3. For tasks: Long press TASKS tab → Import Task
  4. Navigate to Download folder, select the XML file

What it can do on your machine

Read from SKILL.md and the folder at commit 073a3ee. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are xml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tasker XML loads about 3.1k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 419 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~56
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mikeyobrien/rho at commit 073a3ee, republished under its MIT licence (© mikeyobrien). 419 words, ~3,054 tokens.

Download SKILL.mdSave it as .claude/skills/tasker-xml/SKILL.md (or your agent's skills folder).
name
tasker-xml
description
Create Tasker profiles and tasks via XML for Android automation. Use when adding new Tasker functionality, creating Intent Received handlers, or building automation that integrates with the rho.tasker extension.

Tasker XML Creation

Create importable Tasker profiles and tasks via XML files.

Output Location

Write XML files to /storage/emulated/0/Download/ for easy import:

/storage/emulated/0/Download/MyProfile.prf.xml

File Suffixes

  • .prf.xml - Profile with linked task(s)
  • .tsk.xml - Standalone task
  • .prj.xml - Full project

Import Instructions

  1. Open Tasker app
  2. For profiles: Long press PROFILES tab → Import Profile
  3. For tasks: Long press TASKS tab → Import Task
  4. Navigate to Download folder, select the XML file

XML Structure

Basic Profile with Task
xml
<?xml version="1.0" encoding="UTF-8"?>
<TaskerData sr="" dvi="1" tv="6.3.13">
    <Profile sr="prof1" ve="2">
        <cdate>1706900000000</cdate>
        <edate>1706900000000</edate>
        <id>1</id>
        <mid0>1</mid0>
        <nme>Profile Name</nme>
        <!-- Event/State goes here -->
    </Profile>
    <Task sr="task1">
        <cdate>1706900000000</cdate>
        <edate>1706900000000</edate>
        <id>1</id>
        <nme>Task Name</nme>
        <pri>6</pri>
        <!-- Actions go here -->
    </Task>
</TaskerData>

Important: Profile <mid0> must match Task <id>.

Event Codes (for Profile triggers)

Use inside <Profile> with <Event sr="con0" ve="2">:

CodeEvent
599Intent Received
461Notification
463New Window
2078App Changed
3050Variable Set
Intent Received Event (code 599)
xml
<Event sr="con0" ve="2">
    <code>599</code>
    <Str sr="arg0" ve="3">rho.tasker.my_action</Str>
    <Int sr="arg1" val="0"/>
    <Int sr="arg2" val="0"/>
    <Str sr="arg3" ve="3"/>
    <Str sr="arg4" ve="3"/>
</Event>
  • arg0: Intent action name (e.g., rho.tasker.open_app)
  • arg1: Priority (0 = normal)
  • arg2: Stop event (0 = no)
  • arg3: Cat (category filter, usually empty)
  • arg4: Data filter (usually empty)

Action Codes (for Task steps)

Use inside <Task> with <Action sr="actN" ve="7">:

Common Actions
CodeActionKey Args
20Launch Apparg0=app name
25Go Home(none)
30Waitarg0=hours, arg1=mins, arg2=ms, arg3=secs
37Ifarg0=condition
38End If(none)
43Else(none)
104Browse URLarg0=url
123Run Shellarg0=command, arg1=use root, arg2=timeout
126Return(stops task)
130Perform Taskarg0=task name
137Stop(stops task)
410Write Filearg0=path, arg1=content
547Variable Setarg0=name, arg1=value
548Variable Cleararg0=name
549Variable Addarg0=name, arg1=value
550Variable Subtractarg0=name, arg1=value
559Flasharg0=text
AutoInput Actions (code -1)

AutoInput uses plugin action code -1 with Bundle configuration.

Show full SKILL.md (172 more words)Show less
UI Query (Read Screen)
xml
<Action sr="act0" ve="7">
    <code>-1</code>
    <Bundle sr="arg0">
        <Vals sr="val">
            <com.twofortyfouram.locale.intent.extra.BLURB>Check Screen
Configuration: Check Screen</com.twofortyfouram.locale.intent.extra.BLURB>
            <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
            <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
            <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
        </Vals>
    </Bundle>
    <Str sr="arg1" ve="3">com.joaomgcd.autoinput</Str>
    <Str sr="arg2" ve="3">com.joaomgcd.autoinput.activity.ActivityConfigUIQuery</Str>
    <Int sr="arg3" val="600"/>
</Action>

After this action, these variables are available:

  • %aitext() - Array of visible text
  • %aiid() - Array of element IDs
  • %aicoords() - Array of x,y coordinates
  • %aiapp - Current app package
Click by Text
xml
<Action sr="act0" ve="7">
    <code>-1</code>
    <Bundle sr="arg0">
        <Vals sr="val">
            <com.twofortyfouram.locale.intent.extra.BLURB>Action: Click [ Type:Text Value:%target ]</com.twofortyfouram.locale.intent.extra.BLURB>
            <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
            <action_type>click</action_type>
            <action_type-type>java.lang.String</action_type-type>
            <value>%target</value>
            <value-type>java.lang.String</value-type>
            <type>text</type>
            <type-type>java.lang.String</type-type>
            <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
            <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
        </Vals>
    </Bundle>
    <Str sr="arg1" ve="3">com.joaomgcd.autoinput</Str>
    <Str sr="arg2" ve="3">com.joaomgcd.autoinput.activity.ActivityConfigAction</Str>
    <Int sr="arg3" val="600"/>
</Action>
Click by Coordinates
xml
<Action sr="act0" ve="7">
    <code>-1</code>
    <Bundle sr="arg0">
        <Vals sr="val">
            <com.twofortyfouram.locale.intent.extra.BLURB>Action: Click [ Type:Point Value:%xcoord,%ycoord ]</com.twofortyfouram.locale.intent.extra.BLURB>
            <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
            <action_type>click</action_type>
            <action_type-type>java.lang.String</action_type-type>
            <value>%xcoord,%ycoord</value>
            <value-type>java.lang.String</value-type>
            <type>point</type>
            <type-type>java.lang.String</type-type>
            <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
            <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
        </Vals>
    </Bundle>
    <Str sr="arg1" ve="3">com.joaomgcd.autoinput</Str>
    <Str sr="arg2" ve="3">com.joaomgcd.autoinput.activity.ActivityConfigAction</Str>
    <Int sr="arg3" val="600"/>
</Action>

Action Examples

Variable Set (code 547)
xml
<Action sr="act0" ve="7">
    <code>547</code>
    <Str sr="arg0" ve="3">%my_var</Str>
    <Str sr="arg1" ve="3">my value</Str>
    <Int sr="arg2" val="0"/>
    <Int sr="arg3" val="0"/>
    <Int sr="arg4" val="0"/>
    <Int sr="arg5" val="3"/>
    <Int sr="arg6" val="0"/>
</Action>
Launch App (code 20)
xml
<Action sr="act0" ve="7">
    <code>20</code>
    <Str sr="arg0" ve="3">Telegram</Str>
    <Str sr="arg1" ve="3"/>
    <Int sr="arg2" val="0"/>
    <Int sr="arg3" val="0"/>
    <Int sr="arg4" val="0"/>
</Action>
Wait (code 30)
xml
<Action sr="act0" ve="7">
    <code>30</code>
    <Int sr="arg0" val="0"/>
    <Int sr="arg1" val="0"/>
    <Int sr="arg2" val="500"/>
    <Int sr="arg3" val="0"/>
    <Int sr="arg4" val="0"/>
</Action>
  • arg0=hours, arg1=minutes, arg2=milliseconds, arg3=seconds
Write File (code 410)
xml
<Action sr="act0" ve="7">
    <code>410</code>
    <Str sr="arg0" ve="3">/storage/emulated/0/rho/result.txt</Str>
    <Str sr="arg1" ve="3">Content to write
Can be multiline
Variables work: %myvar</Str>
    <Int sr="arg2" val="0"/>
    <Int sr="arg3" val="0"/>
    <Int sr="arg4" val="0"/>
</Action>
Flash (code 559)
xml
<Action sr="act0" ve="7">
    <code>559</code>
    <Str sr="arg0" ve="3">Toast message here</Str>
    <Int sr="arg1" val="0"/>
</Action>
Go Home (code 25)
xml
<Action sr="act0" ve="7">
    <code>25</code>
    <Int sr="arg0" val="0"/>
    <Int sr="arg1" val="0"/>
</Action>
Run Shell (code 123)
xml
<Action sr="act0" ve="7">
    <code>123</code>
    <Str sr="arg0" ve="3">echo "Hello"</Str>
    <Int sr="arg1" val="0"/>
    <Int sr="arg2" val="10"/>
    <Str sr="arg3" ve="3">%output</Str>
    <Str sr="arg4" ve="3">%err_output</Str>
    <Str sr="arg5" ve="3"/>
</Action>
If/Else/End If (codes 37, 43, 38)
xml
<!-- If %direction equals "down" -->
<Action sr="act0" ve="7">
    <code>37</code>
    <Str sr="arg0" ve="3">%direction</Str>
    <Int sr="arg1" val="0"/>
    <Str sr="arg2" ve="3">down</Str>
    <Int sr="arg3" val="0"/>
</Action>
<!-- Actions for down -->
<Action sr="act1" ve="7">
    <code>43</code>
</Action>
<!-- Else actions -->
<Action sr="act2" ve="7">
    <code>38</code>
</Action>

Rho Integration Pattern

For rho.tasker.* handlers, use this standard pattern:

xml
<?xml version="1.0" encoding="UTF-8"?>
<TaskerData sr="" dvi="1" tv="6.3.13">
    <Profile sr="prof1" ve="2">
        <cdate>1706900000000</cdate>
        <edate>1706900000000</edate>
        <id>1</id>
        <mid0>1</mid0>
        <nme>Rho Action Name</nme>
        <Event sr="con0" ve="2">
            <code>599</code>
            <Str sr="arg0" ve="3">rho.tasker.action_name</Str>
            <Int sr="arg1" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
        </Event>
    </Profile>
    <Task sr="task1">
        <cdate>1706900000000</cdate>
        <edate>1706900000000</edate>
        <id>1</id>
        <nme>Rho Action Handler</nme>
        <pri>6</pri>
        
        <!-- A1: Get result_file from intent -->
        <Action sr="act0" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%result_file</Str>
            <Str sr="arg1" ve="3">%result_file</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        
        <!-- A2: Do the actual work here -->
        
        <!-- A3: AutoInput UI Query to get screen state -->
        <Action sr="act1" ve="7">
            <code>-1</code>
            <Bundle sr="arg0">
                <Vals sr="val">
                    <com.twofortyfouram.locale.intent.extra.BLURB>Check Screen
Configuration: Check Screen</com.twofortyfouram.locale.intent.extra.BLURB>
                    <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
                    <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
                    <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
                </Vals>
            </Bundle>
            <Str sr="arg1" ve="3">com.joaomgcd.autoinput</Str>
            <Str sr="arg2" ve="3">com.joaomgcd.autoinput.activity.ActivityConfigUIQuery</Str>
            <Int sr="arg3" val="600"/>
        </Action>
        
        <!-- A4: Write result file in standard format -->
        <Action sr="act2" ve="7">
            <code>410</code>
            <Str sr="arg0" ve="3">%result_file</Str>
            <Str sr="arg1" ve="3">%aiapp
~~~
%aicoords()
~~~
%aiid()
~~~
%aitext()
~~~
%err</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
        </Action>
    </Task>
</TaskerData>

Result File Format

The rho.tasker extension expects results in this format:

app_name
~~~
x1,y1,x2,y2,...
~~~
id1,id2,...
~~~
text1|||text2|||...
~~~
error_message_or_empty

Use %aiapp, %aicoords(), %aiid(), %aitext() from AutoInput.

Tips

  1. Action numbering: Actions use sr="act0", sr="act1", etc. Sequential.

  2. Profile/Task IDs: Use unique IDs (100+) to avoid conflicts with existing Tasker config.

  3. Intent extras: Variables from intent extras are automatically available with same name (e.g., %app_name from intent extra app_name).

  4. Test incrementally: Start with a Flash action to verify the profile triggers, then add complexity.

  5. Debugging: Add Flash actions to show variable values during development.

© mikeyobrien, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in platforms/android/skills/tasker-xml of mikeyobrien/rho.

Open the folder on GitHubat commit 073a3ee

Compare with similar skills

Tasker XML next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tasker XML compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tasker XML this skillmikeyobrien/rho371—~3.1kAutomated safety check: PassMIT
Compose Multiplatform Patternsmonta-app/ocpp-emulator1795 repos~2kAutomated safety check: PassApache-2.0
Phone HarnessShawnPana/phone-harness3.2k—~4.3kAutomated safety check: PassMIT
Stylesarindamxd/camerax-android1324 repos~2.3kAutomated safety check: PassApache-2.0
Verified Emailarindamxd/camerax-android1324 repos~4.7kAutomated safety check: PassApache-2.0
Argent Metro Debuggerbbplayer-app/BBPlayer1.1k—~3.4kAutomated safety check: PassMIT

Similar skills

  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    179 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Phone Harness

    ShawnPana/phone-harness

    Control the user's phone — an iPhone through the Mac's iPhone Mirroring window, an Android over adb, or a rented cloud Android: open apps, tap, type, swipe, read the screen.

    3.2k GitHub stars~4.3k tokensUpdated 10 days ago
    MobileAuto-check passed
  • Styles

    arindamxd/camerax-android

    A skill your agent uses to integrate the Jetpack Compose Styles API into an Android project.

    132 GitHub starsUsed in 4 repos~2.3k tokens
    MobileAuto-check passed
  • Verified Email

    arindamxd/camerax-android

    Provides a complete workflow for implementing verified email retrieval on Android Credential Manager API.

    132 GitHub starsUsed in 4 repos~4.7k tokens
    MobileAuto-check passed
  • Argent Metro Debugger

    bbplayer-app/BBPlayer

    Debug a JS runtime via CDP using argent debugger tools. An agent skill from bbplayer-app/BBPlayer.

    1.1k GitHub stars~3.4k tokensUpdated yesterday
    MobileAuto-check passed
  • 统一 Android XML 资源命名:layout、drawable、mipmap、color、values、id 的前缀与 snakecase 规则;把颜色/圆角/描边/状态编码进文件名(bg、border、textcolor…selector)。

    1.6k GitHub stars~1.3k tokensUpdated 1 mo ago
    MobileAuto-check passed

More from mikeyobrien/rho

All 35 skills in this repo
  • Rho Cloud Onboard

    mikeyobrien/rho

    Register an agent email address on Rhobot Mail (name@rhobot.dev).

    371 GitHub stars~1.4k tokensUpdated 7 days ago
    Auto-check passed
  • Install Rho

    mikeyobrien/rho

    Install and configure Rho from scratch (Doom-style init.toml + sync).

    371 GitHub stars~1.6k tokensUpdated 7 days ago
    Auto-check: notes
  • Open URL

    mikeyobrien/rho

    Open URLs and launch apps on Android. An agent skill from mikeyobrien/rho.

    371 GitHub stars~480 tokensUpdated 7 days ago
    Auto-check passed
  • Release Changelog

    mikeyobrien/rho

    Keep CHANGELOG.md idiomatic (Keep a Changelog) and cut a tag-based GitHub release that triggers npm publish CI.

    371 GitHub stars~1.4k tokensUpdated 7 days ago
    Auto-check passed
  • Rho Cloud Email

    mikeyobrien/rho

    Manage agent email at name@rhobot.dev via the Rhobot Mail API.

    371 GitHub stars~2.6k tokensUpdated 7 days ago
    Auto-check passed
  • Clipboard

    mikeyobrien/rho

    Read or write the Linux clipboard. An agent skill from mikeyobrien/rho.

    371 GitHub stars~333 tokensUpdated 7 days ago
    Auto-check: notes

Works with

Categories

Questions about Tasker XML

What does Tasker XML do?

Create Tasker profiles and tasks via XML for Android automation. Tasker XML is an agent skill from mikeyobrien/rho. Create Tasker profiles and tasks via XML for Android automation.

When should I use Tasker XML?

Tasker XML fits situations like: adding new Tasker functionality; creating Intent Received handlers; building automation that integrates with the rho.tasker extension.

How do I install Tasker XML in Claude Code?

Run `npx skills add mikeyobrien/rho --skill tasker-xml -a claude-code`. Or copy the skill folder (platforms/android/skills/tasker-xml in mikeyobrien/rho) into .claude/skills/tasker-xml in your project. Claude Code loads it when a task matches its description.

How do I install Tasker XML in Codex?

Run `npx skills add mikeyobrien/rho --skill tasker-xml -a codex`. Or copy the skill folder (platforms/android/skills/tasker-xml in mikeyobrien/rho) into .agents/skills/tasker-xml in your project. Codex loads it when a task matches its description.

Can I use Tasker XML in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mikeyobrien/rho --skill tasker-xml -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tasker-xml, .gemini/skills/tasker-xml, .github/skills/tasker-xml and .opencode/skills/tasker-xml in your project.

What does Tasker XML need to run?

SKILL.md names no scripts, command-line tools or credentials: Tasker XML is instructions for the agent only.

Does Tasker XML access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Tasker XML safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tasker XML use?

Tasker XML is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tasker XML use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Tasker XML?

Skills that share tags, products or a category with Tasker XML: Compose Multiplatform Patterns (monta-app/ocpp-emulator, 179 stars), Phone Harness (ShawnPana/phone-harness, 3.2k stars), Styles (arindamxd/camerax-android, 132 stars) and Verified Email (arindamxd/camerax-android, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tasker XML?

mikeyobrien (a GitHub user) maintains it in mikeyobrien/rho, which has 371 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 1, 2026.

Source: mikeyobrien/rho on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.