Skip to content
Agent Memory
Skill

/tasker-xml

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.

BOOST
From plugin
rho
37328 skills
Install
$ npx -y skills add mikeyobrien/rho --skill tasker-xml --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/tasker-xml

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

tasker-xml.SKILL.md
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 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">`:

| Code | Event | |------|-------| | 599 | Intent Received | | 461 | Notification | | 463 | New Window | | 2078 | App Changed | | 3050 | Variable Set |

Intent Received Event (code 599)

<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

| Code | Action | Key Args | |------|--------|----------| | 20 | Launch App | arg0=app name | | 25 | Go Home | (none) | | 30 | Wait | arg0=hours, arg1=mins, arg2=ms, arg3=secs | | 37 | If | arg0=condition | | 38 | End If | (none) | | 43 | Else | (none) | | 104 | Browse URL | arg0=url | | 123 | Run Shell | arg0=command, arg1=use root, arg2=timeout | | 126 | Return | (stops task) | | 130 | Perform Task | arg0=task name | | 137 | Stop | (stops task) | | 410 | Write File | arg0=path, arg1=content | | 547 | Variable Set | arg0=name, arg1=value | | 548 | Variable Clear | arg0=name | | 549 | Variable Add | arg0=name, arg1=value | | 550 | Variable Subtract | arg0=name, arg1=value | | 559 | Flash | arg0=text |

AutoInput Actions (code -1)

AutoInput uses plugin action code `-1` with Bundle configuration.

UI Query (Read Screen)

<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

<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

<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.a
Read more
Ships withrho

An always-on personal AI operator that: stays running in the background, remembers context across sessions, and checks in proactively on a schedule. Runs on macOS, Linux, and Android (plus iPhone/iPad via SSH). Built on pi coding agent. Terminal demo

Get the whole plugin
Stats
373
Stars
29
Forks
Active
Maintenance
TypeScript
Language
MIT
License
16d ago
Last commit
8mo ago
Created
3h ago
Added

Repo: mikeyobrien/rho

Other skills on rho.

device
Skill

device

Device controls — vibration, torch, volume, battery status, toast messages. Use for haptic feedback, flashlight, or quick status…

@mikeyobrien@mikeyobrienInstall Skill
dialog
Skill

dialog

Show interactive dialogs for user input — text, confirmations, choices, date/time pickers. Use when you need user input beyond…

@mikeyobrien@mikeyobrienInstall Skill