Skip to content

Guide · Agent skill

How to use the SPL to APL Translator agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The spl-to-apl skill teaches an AI agent how Splunk's search language (SPL) maps onto Axiom's query language (APL). It is meant for engineers moving dashboards or alerts from Splunk to Axiom, and for analysts who already know SPL and want APL equivalents quickly. By the end of this guide you will know how to install the skill, how to ask for a translation, and which differences to check before you trust the output.

SPL to APL Translatoropenclaw/clawhub · MIT

Quick start

  1. 1Download the ZIP. Download the spl-to-apl skill ZIP from this page. The skill is MIT licensed.
  2. 2Unzip into a skills folder. Unzip it into ~/.claude/skills/ for all projects, or into the project's .claude/skills/ folder for one project.
  3. 3Or upload it in the Claude apps. In the Claude apps, open Settings, go to Capabilities, then Skills, and upload the skill.
  4. 4Ask for a translation. Paste your SPL search and say you want it converted to Axiom APL, or ask for the APL equivalent of a pattern.
  5. 5Check the output. Review time ranges, string casts, cidrmatch order and any transaction logic before running the query in Axiom.

What the spl-to-apl skill makes the agent do

Once installed, the agent knows the command, function and syntax mappings between SPL and APL. When you give it a Splunk search, it uses those mappings to produce an APL query and points out where the two languages behave differently.

The skill is reference-driven. It is a translator, not a connection to either system: it does not query Splunk or Axiom on your behalf, and it does not run your converted query for you.

  • Maps SPL commands such as stats, eval, rex and timechart to APL operators such as summarize, extend, parse and bin.
  • Maps common functions, for example dc to dcount, median to percentile(field, 50), and if to iff.
  • Flags differences you need to handle, such as explicit time ranges, reversed cidrmatch arguments and casting string fields before numeric comparisons.
  • Notes SPL constructs with no direct equivalent, such as transaction, and suggests a summarize-based rebuild.

How to install the spl-to-apl skill

You can install the skill in one of two ways. Download the ZIP of the spl-to-apl skill from this page and unzip it into one of these folders, depending on whether you want it for all projects or one project:

Option A, for your user account: unzip into ~/.claude/skills/ so the skill folder sits there. Option B, for one project: unzip into the .claude/skills/ folder inside that project.

Option C, in the Claude apps: open Settings, go to Capabilities, then Skills, and upload the skill from the ZIP.

  • Make sure the unzipped folder contains SKILL.md at its top level, since that file defines the skill.
  • Restart or start a new session in your agent if it was already running, so it picks up the new skill.

How to trigger the skill with natural requests

You do not need a special command. The skill's description says to use it when migrating from Splunk, converting SPL queries, or learning APL equivalents of SPL patterns, so ask for those things in plain language.

Paste the full SPL search and say what you want. Mention the Axiom dataset name if you know it, because the skill writes queries against a dataset in place of a Splunk index.

  • Convert this Splunk search to Axiom APL: index=logs | stats count by status
  • Migrate this SPL alert to APL and tell me what needs manual review.
  • What is the APL equivalent of SPL's rex with a named capture group?
  • Show me APL equivalents for these three SPL pipelines so I can learn the patterns.

Examples of SPL to APL translation

The source shows side-by-side patterns the agent draws from. A basic stats search becomes a summarize, and the index becomes a dataset in square brackets.

A conditional count inside stats becomes countif in APL. Note that a Splunk time picker does not carry over, so the APL needs an explicit time filter.

  • SPL search index=logs with a time picker of last 24 hours becomes ['logs'] | where _time between (ago(24h) .. now()).
  • SPL timechart span=5m count by status becomes summarize count() by bin(_time, 5m), status.
  • SPL stats count(eval(status>=500)) as errors by host becomes summarize errors = countif(status >= 500) by host.
# SPL | stats count by status # APL | summarize count() by status

What the skill needs, safety notes and tips

The skill itself needs no account and does not use the network or run scripts. You need an Axiom account or Playground access only if you want to run the queries the agent produces.

Treat the output as a draft. The bundled tests were checked against sample data, but some SPL constructs have no direct equivalent and need manual rework, and translations of string fields need checking against your real data types.

  • Runs scripts: no. Uses network: no.
  • Cast string fields before numeric comparison. Write toint(status) >= 500 rather than status >= 500, because status is often stored as a string.
  • Join in APL is a preview feature, limited to 50k rows, and supports inner, innerunique and leftouter only.
  • The cidrmatch arguments are reversed: SPL cidrmatch(cidr, ip) becomes APL ipv4_is_in_range(ip, cidr).
  • For string matching, field == value is fastest, contains is moderate, and match or regex is slowest. Prefer has over contains where word matching is enough.

Where to find the full mappings

The skill folder includes reference files with complete lists. Ask the agent to check them when your search uses a command or function that is not in the summary table.

The skill's main file links to the APL documentation at https://axiom.co/docs/apl/introduction for details on any operator.

  • reference/command-mapping.md lists the complete command mappings.
  • reference/function-mapping.md lists the complete function mappings.
  • reference/examples.md has full query translation examples.
  • tests/test-queries.md holds the bundled test queries.

What people use it for

  • Moving a set of Splunk dashboard searches to Axiom, one query at a time, with the agent flagging constructs that need rework.
  • Converting a Splunk alert's stats and where logic into APL summarize and where clauses for review.
  • Learning APL by asking for side-by-side translations of SPL patterns you already know.
  • Checking whether a converted error-rate calculation uses countif and a real time filter before you run it.

Frequently asked questions

Is the spl-to-apl skill free to use?

The skill is published under the MIT licence, and this page offers it as a ZIP download. Running the queries it produces requires an Axiom account or Playground access, which this skill does not provide.

Do I need an Axiom account to use the skill?

No. The skill itself does not require an Axiom account. You only need one, or Playground access, to run the APL queries the agent produces.

How do I install the spl-to-apl skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for your user account, or into a project's .claude/skills/ folder. In the Claude apps, you can instead upload it under Settings, Capabilities, Skills.

Does the skill convert every Splunk SPL command?

No. The mappings cover common commands and functions, and the reference files list the complete set. Constructs like transaction have no direct APL equivalent and need manual rework using summarize and make_list.

Why does my converted query return the wrong results for status codes?

Fields such as status are often stored as strings, so a comparison like status >= 500 can run as a string comparison. Cast the field first, for example toint(status) >= 500, and check the result against your data.

How does spl-to-apl compare with writing APL by hand?

The skill gives you a fast first draft and explains the differences from SPL. It does not connect to Axiom or check results against your live data, so you still need to review and test the query yourself.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you are migrating Splunk searches to Axiom or want APL equivalents of SPL patterns, and you are willing to review each output. Pick something else if you need to translate to or from query languages other than SPL and APL, or if you expect a production migration to run without manual review.

Download the skill