Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问clear审计通过

spl-to-aplspl 到 apl

Agent Skill

spl-to-apl 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

5,866

周安装

242

GitHub Stars

8

下载量

1,917
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:spl-to-apl(spl 到 apl)
来源仓库:https://github.com/axiomhq/skills
仓库路径:skills/spl-to-apl
安装命令:
npx skills add https://github.com/axiomhq/skills --skill spl-to-apl
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/axiomhq/skills --skill spl-to-apl

简介

spl-to-apl 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中快速定位目标内容。

  • 适用于基于关键词或任务场景的信息检索与筛选需求。
  • 通过 npx skills add 命令从 GitHub 仓库安装并调用。
  • 建议确认权限范围和维护状态,避免不必要的联网或文件访问。
  • 可结合原始文档进一步验证功能细节和使用方式。

SKILL.md

SPL to APL Translator

Type safety: Fields like status are often stored as strings. Always cast before numeric comparison: toint(status) >= 500, not status >= 500.


Critical Differences

  1. Time is explicit in APL: SPL time pickers don't translate — add where _time between (ago(1h).. now())
  2. Structure: SPL index=... | command → APL ['dataset'] | operator
  3. Join is preview: limited to 50k rows, inner/innerunique/leftouter only
  4. cidrmatch args reversed: SPL cidrmatch(cidr, ip) → APL ipv4_is_in_range(ip, cidr)

Core Command Mappings

SPLAPLNotes
search index=...['dataset']Dataset replaces index
search field=valuewhere field == "value"Explicit where
wherewhereSame
statssummarizeDifferent aggregation syntax
evalextendCreate/modify fields
table / fieldsprojectSelect columns
fields -project-awayRemove columns
rename x as yproject-rename y = xRename
sort / sort -order by... asc/descSort
head Ntake NLimit rows
top N field`summarize count() by field \top N by count_`Two-step
dedup fieldsummarize arg_max(_time, *) by fieldKeep latest
rexparse or extract()Regex extraction
joinjoinPreview feature
appendunionCombine datasets
mvexpandmv-expandExpand arrays
timechart span=Xsummarize... by bin(_time, X)Manual binning
rare N field`summarize count() by field \order by count_ asc \take N`Bottom N
spathparse_json() or json['path']JSON access
transactionNo direct equivalentUse summarize + make_list

Complete mappings: reference/command-mapping.md


Stats → Summarize

# SPL
| stats count by status

# APL
| summarize count() by status

Key function mappings

SPLAPL
countcount()
count(field)countif(isnotnull(field))
dc(field)dcount(field)
avg/sum/min/maxSame
median(field)percentile(field, 50)
perc95(field)percentile(field, 95)
first/lastarg_min/arg_max(_time, field)
list(field)make_list(field)
values(field)make_set(field)

Conditional count pattern

# SPL
| stats count(eval(status>=500)) as errors by host

# APL
| summarize errors = countif(status >= 500) by host

Complete function list: reference/function-mapping.md


Eval → Extend

# SPL
| eval new_field = old_field * 2

# APL
| extend new_field = old_field * 2

Key function mappings

SPLAPLNotes
if(c, t, f)iff(c, t, f)Double 'f'
case(c1,v1,...)case(c1,v1,...,default)Requires default
len(str)strlen(str)
lower/uppertolower/toupper
substrsubstring0-indexed in APL
replacereplace_string
tonumbertoint/tolong/torealExplicit types
match(s,r)s matches regex "r"Operator
split(s, d)split(s, d)Same
mvjoin(mv, d)strcat_array(arr, d)Join array
mvcount(mv)array_length(arr)Array length

Case statement pattern

# SPL
| eval level = case(
    status >= 500, "error",
    status >= 400, "warning",
    1==1, "ok"
  )

# APL
| extend level = case(
    status >= 500, "error",
    status >= 400, "warning",
    "ok"
  )

Note: SPL's 1==1 catch-all becomes implicit default in APL.


Rex → Parse/Extract

# SPL
| rex field=message "user=(?<username>\w+)"

# APL - parse with regex
| parse kind=regex message with @"user=(?P<username>\w+)"

# APL - extract function
| extend username = extract("user=(\\w+)", 1, message)

Simple pattern (non-regex)

# SPL
| rex field=uri "^/api/(?<version>v\d+)/(?<endpoint>\w+)"

# APL
| parse uri with "/api/" version "/" endpoint

Time Handling

SPL time pickers don't translate. Always add explicit time range:

# SPL (time picker: Last 24 hours)
index=logs

# APL
['logs'] | where _time between (ago(24h) .. now())

Timechart translation

# SPL
| timechart span=5m count by status

# APL
| summarize count() by bin(_time, 5m), status

Common Patterns

Error rate calculation

# SPL
| stats count(eval(status>=500)) as errors, count as total by host
| eval error_rate = errors/total*100

# APL
| summarize errors = countif(status >= 500), total = count() by host
| extend error_rate = toreal(errors) / total * 100

Subquery (subsearch)

# SPL
index=logs [search index=errors | fields user_id | format]

# APL
let error_users = ['errors'] | where _time between (ago(1h) .. now()) | distinct user_id;
['logs']
| where _time between (ago(1h) .. now())
| where user_id in (error_users)

Join datasets

# SPL
| join user_id [search index=users | fields user_id, name]

# APL
| join kind=inner (['users'] | project user_id, name) on user_id

Transaction-like grouping

# SPL
| transaction session_id maxspan=30m

# APL (no direct equivalent — reconstruct with summarize)
| summarize
    start_time = min(_time),
    end_time = max(_time),
    events = make_list(pack("time", _time, "action", action)),
    duration = max(_time) - min(_time)
  by session_id
| where duration <= 30m

String Matching Performance

SPLAPLSpeed
field="value"field == "value"Fastest
field="*value*"field contains "value"Moderate
field="value*"field startswith "value"Fast
match(field, regex)field matches regex "..."Slowest

Prefer has over contains (word-boundary matching is faster). Use _cs variants for case-sensitive (faster).


Reference

  • reference/command-mapping.md — complete command list
  • reference/function-mapping.md — complete function list
  • reference/examples.md — full query translation examples
  • APL docs: https://axiom.co/docs/apl/introduction

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

27.52%
按下载量换算528

Cursor

23.19%
按下载量换算445

Gemini CLI

18.98%
按下载量换算364

Codex

12.83%
按下载量换算246

OpenCode

7.02%
按下载量换算135

Antigravity

3.5%
按下载量换算67

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills