InstallAnywhere .iapxml Query Patterns
SkillFiles & storageDasel v3 query patterns for InstallAnywhere .iap_xml installer definitions — use when querying action sequences, discovering variables, resolving platform conditions, navigating panels, or comparing installer variants. Files are 2.5+ MB, 65,000+ lines — too large for context reads, requires structural dasel queries.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the InstallAnywhere .iapxml Query Patterns skill
What this skill tells your AI
The instructions your AI receives, as published by jamie-bitflight/claude_skills in plugins/dasel/skills/enterprise-installanywhere/SKILL.md and read by ahel’s review.
<when_to_use>
Load this skill when working with any .iap_xml file — auditing install actions, listing file copy operations, discovering variables, finding platform-specific branches, or comparing two installer variants (e.g., RA vs NON_RA builds).
</when_to_use>
Operational Constraints
- Always pass
-i xmlexplicitly — auto-detection fails on.iap_xmlextensions - Write all intermediate results to
/tmp/— never to the source tree - Files are 2.5–2.6 MB, 65,000+ lines — use structural dasel queries, never read the file into context
Root Structure
InstallAnywhere .iap_xml files have a fixed root path: InstallAnywhere.project.
# Top-level element names at the document root
cat installer.iap_xml | dasel -i xml 'keys($this)'
# Navigate to the install action sequence
cat installer.iap_xml | dasel -i xml 'InstallAnywhere.project.installSequence'
# Children of the project node
cat installer.iap_xml | dasel -i xml 'InstallAnywhere.project.keys($this)'
Recursive descent — finds elements at any depth without knowing the full path:
# All elements named "action" at any depth
cat installer.iap_xml | dasel -i xml '..action'
# All elements named "panel" at any depth
cat installer.iap_xml | dasel -i xml '..panel'
# Any node at any depth where a specific attribute exists
cat installer.iap_xml | dasel -i xml 'search(has("-name"))'
..elementName descends recursively. search(predicate) matches nodes at any depth.
Action Sequence Analysis
# All action names in execution order
cat installer.iap_xml | dasel -i xml '..action.map("-name")'
# All action types
cat installer.iap_xml | dasel -i xml '..action.map("-type")'
# Count all action elements
cat installer.iap_xml | dasel -i xml 'len(..action)'
# Write for analysis
cat installer.iap_xml | dasel -i xml '..action.map("-name")' > /tmp/action_names.txt
cat installer.iap_xml | dasel -i xml '..action.map("-type")' > /tmp/action_types.txt
Variable Discovery
# All variable definitions
cat installer.iap_xml | dasel -i xml '..variable.map("-name")' > /tmp/installer_vars.txt
Platform Conditions
# All platform conditions (Windows vs Linux branches)
cat installer.iap_xml | dasel -i xml 'search(has("-platform")).map("-platform")' > /tmp/platforms.txt
Cross-Variant Comparison
When comparing two builds of the same installer (e.g., RA vs NON_RA, Windows vs Linux variant):
# Compare action sets between two installer files
cat installer_a.iap_xml | dasel -i xml '..action.map("-name")' | sort > /tmp/actions_a.txt
cat installer_b.iap_xml | dasel -i xml '..action.map("-name")' | sort > /tmp/actions_b.txt
diff /tmp/actions_a.txt /tmp/actions_b.txt > /tmp/installer_diff.txt
# Compare panel sets
cat installer_a.iap_xml | dasel -i xml '..panel.map("-name")' | sort > /tmp/panels_a.txt
cat installer_b.iap_xml | dasel -i xml '..panel.map("-name")' | sort > /tmp/panels_b.txt
diff /tmp/panels_a.txt /tmp/panels_b.txt
File Copy Operations
# All file copy sources
cat installer.iap_xml | dasel -i xml '..installFile.map("-source")' > /tmp/file_copies.txt
Panel Navigation
# Panel names and count
cat installer.iap_xml | dasel -i xml '..panel.map("-name")'
cat installer.iap_xml | dasel -i xml 'len(..panel)'
Attribute Syntax Reference
XML attributes use - prefix in dasel friendly mode:
# Access specific attribute on first match
cat installer.iap_xml | dasel -i xml '..action[0].-name'
# Discover attributes and children of a node
cat installer.iap_xml | dasel -i xml '..action[0].keys($this)'
# Extract attribute values across all matching nodes
cat installer.iap_xml | dasel -i xml '..elementName.map("-attributeName")'
# Count matching elements
cat installer.iap_xml | dasel -i xml 'len(..elementName)'
# Search with attribute predicate at any depth
cat installer.iap_xml | dasel -i xml 'search(has("-attributeName"))'
Signals
- GitHub stars
- 66
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
enterprise-installanywhere- Source
- github.com/jamie-bitflight/claude_skills