Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计通过

daseldasel 搜索

Agent Skill

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

总安装

288

周安装

12

GitHub Stars

公开资料未说明

下载量

96
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/aaronflorey/agent-skills --skill dasel

简介

dasel 是一个跨格式结构化数据查询工具,可用于 JSON、YAML、TOML 等格式的读取、修改和转换。

  • 适合在数据处理流水线中统一查询语法,简化多源配置文件的提取和操作。
  • 支持从 stdin、文件或 URL 读取输入,输出可指定格式,便于集成到脚本中。
  • 使用时应注意输入格式声明,避免因格式误判导致解析错误。
  • dasel 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Dasel v3

Dasel (Data-Select) is a CLI tool for querying, modifying, and converting structured data files using a consistent query syntax across formats.

Docs are bundled in references/. Read them when you need deeper detail on a topic.

CLI basics

# Read from stdin, specify input format
echo '{"name":"Tom"}' | dasel -i json 'name'
# => "Tom"

# Read from a file via stdin redirection
dasel -i yaml 'database.host' < config.yaml

# Convert formats: read JSON, output YAML
cat data.json | dasel -i json -o yaml

# Output the whole document (needed when modifying)
echo '{"a":1}' | dasel -i json --root 'a = 2'
# => {"a": 2}

Key flags:

FlagShortPurpose
--in FORMAT-iInput format (json, yaml, toml, xml, csv, hcl, ini)
--out FORMAT-oOutput format
--rootOutput the full document, not just the selected value
--var name=fmt:file:pathPass a file as a named variable
--read-flag key=valParser-specific read options
--write-flag key=valParser-specific write options
--config PATH-cPath to dasel config file (default: ~/dasel.yaml)
--unstableEnable unstable/experimental features

Query syntax

Queries are dot-chained accessors and function calls, terminated with ; when using multiple statements.

# Access nested fields
user.address.city

# Array index (zero-based)
users[0].name

# Range slice
users[0:4]

# Assign (modifies the value in the document)
user.name = "Alice"

# Variables - $root is stdin, $this is current element
$root.users.filter(active == true).map(name)

Multi-statement queries (use ; to separate, last statement is the output):

$active = $root.users.filter(active == true);
$active.map(name)

Environment variables

GREETING=hello NAME=tom dasel '$GREETING + " " + $NAME'
# => "hello tom"

Common patterns

Read a value

echo '{"foo":{"bar":"baz"}}' | dasel -i json 'foo.bar'
# => "baz"

Modify a value (output full document)

echo '{"foo":"old"}' | dasel -i json --root 'foo = "new"'
# => {"foo": "new"}

Edit a file in place

dasel -i yaml --root 'server.port = 9090' < config.yaml > config.yaml.tmp \
  && mv config.yaml.tmp config.yaml
Note: there is no -f flag for data files in v3. Always use stdin (< file or cat file |). Note: always go via a temp file — bash truncates the target before dasel reads it.

Filter an array

echo '{"users":[{"name":"Alice","active":true},{"name":"Bob","active":false}]}' \
  | dasel -i json 'users.filter(active == true).map(name)'
# => ["Alice"]

Map / transform

echo '[1,2,3]' | dasel -i json 'map($this * 2)'
# => [2, 4, 6]

Modify elements in place with each

echo '[1,2,3]' | dasel -i json 'each($this = $this + 1)'
# => [2, 3, 4]

Default / coalesce

# Fall back to a default if path missing
dasel -f config.yaml 'server.timeout ?? 30'

Conditional

dasel -f data.json 'if(count > 5) { "many" } else { "few" }'

Recursive descent — find all values by key

# All values with key "name" at any depth
dasel -f data.json '..name'

# All values at any depth
dasel -f data.json '..*'

Predicate-based deep search

dasel -f data.json 'search(has("id") && has("name"))'

Format conversion

cat file.json | dasel -i json -o yaml
cat file.yaml | dasel -i yaml -o toml

Build a new object

echo '{"first":"Tom","last":"Wright"}' \
  | dasel -i json '{"fullName": first + " " + last}'

Spread operator

# Merge objects
echo '{"a":1}' | dasel -i json '{$this..., "b": 2}'
# => {"a":1,"b":2}

# Append to array
echo '[1,2,3]' | dasel -i json '[$this..., 4, 5]'
# => [1,2,3,4,5]

Supported formats

FormatReadWriteNotes
json
yaml
xmlSee --read-flag xml-mode=structured
csvAll values as strings; --read-flag csv-delimiter=;
hcl--read-flag hcl-block-format=array
tomlGenerally working; unsorted maps
iniBasic sections + key values only

Key functions

FunctionDescriptionExample
filter(pred)Filter array by predicatearr.filter($this > 1)
map(expr)Transform each elementarr.map($this * 2)
each(expr)Iterate and modify in placearr.each($this = $this+1)
search(pred)Recursive predicate searchsearch(has("key"))
has(key)Check key/index existshas("name")
len(x)Length of array/stringlen($root.items)
keys(obj)Keys of a mapkeys($root.config)
add(a,b)Add / concatenateadd(1, 2)
join(arr, sep)Join array to stringjoin(tags, ",")
replace(str,old,new)String replacereplace(name,"_"," ")
sortBy(key)Sort array of objectsusers.sortBy(name)
reverse(arr)Reverse arrayreverse(items)
min(arr) / max(arr)Min/max of numbersmin(scores)
sum(arr)Sum numberssum(prices)
toString(x)Convert to stringtoString(id)
toInt(x)Convert to inttoInt(count)
typeOf(x)Type nametypeOf(value)
parse(fmt, str)Parse a string as a formatparse("json", raw)
readFile(path)Read a filereadFile("x.json")
base64e(str)Base64 encodebase64e(token)
base64d(str)Base64 decodebase64d(encoded)
For full function signatures and examples, see references/functions.md.

Reference files

FileWhen to read
references/syntax.mdDeep dive: types, arrays, objects, conditionals, spread, coalesce, branches, regex, recursive descent
references/functions.mdAll function signatures with examples
references/input-output.mdStdin/stdout, file editing, variables, format flags

Tips

  • Always use --root when modifying data and wanting the full document back.
  • Use ; to write multi-statement queries for clarity.
  • $root is the stdin document; $this is the current element inside functions.
  • For in-place file edits, always redirect to a .tmp file first, then mv.
  • The ternary operator (?:) is not yet implemented — use if/else form instead.
  • branch is unstable — requires --unstable flag.

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

39.35%
按下载量换算38

Claude

28.92%
按下载量换算28

Cursor

18.64%
按下载量换算18

Gemini CLI

10.04%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills