Agent Skillsnodetool-ai/nodetool › sandbox-csv

sandbox-csv

GitHub

提供沙箱内CSV文件的解析与生成能力,基于papaparse实现异步转换,支持自定义分隔符及表头配置。

packages/sandbox-packs/sandbox-csv/SKILL.md nodetool-ai/nodetool

Trigger Scenarios

需要解析CSV文本为记录对象 需要将数据记录序列化为CSV字符串

Install

npx skills add nodetool-ai/nodetool --skill sandbox-csv -g -y
More Options

Non-standard path

npx skills add https://github.com/nodetool-ai/nodetool/tree/main/packages/sandbox-packs/sandbox-csv -g -y

Use without installing

npx skills use nodetool-ai/nodetool@sandbox-csv

指定 Agent (Claude Code)

npx skills add nodetool-ai/nodetool --skill sandbox-csv -a claude-code -g -y

安装 repo 全部 skill

npx skills add nodetool-ai/nodetool --all -g -y

预览 repo 内 skill

npx skills add nodetool-ai/nodetool --list

SKILL.md

Frontmatter
{
    "name": "sandbox-csv",
    "description": "Parse and write CSV in a Code node or CodeAct action, with papaparse running on the host behind a generated facade"
}

CSV in the sandbox

Specifier: @nodetool-ai/sandbox-csv. Import it at the top of the body.

papaparse imports node:stream, so it cannot be compiled into the guest. This pack is a host module: the import resolves to a generated facade whose two exports call NodeTool's own implementation. Both are async — a host call is a round trip.

parse — CSV text to records

import { parse } from "@nodetool-ai/sandbox-csv";

const rows = await parse(inputs.csv);           // records keyed by the header row
const raw = await parse(inputs.csv, { header: false });   // string[][]
return { count: rows.length, first: rows[0] ?? null };

Options: header (default true), delimiter (one character; omit to auto-detect).

Values stay strings. There is no dynamicTyping, so a column never changes shape between runs — convert what you need with Number() or new Date().

stringify — records back to CSV

import { stringify } from "@nodetool-ai/sandbox-csv";

const csv = await stringify(inputs.rows, { delimiter: ";" });
return { csv };

Takes records or row arrays. Options: header (default true), delimiter (exactly one character).

Gotchas

  • Every export is async. parse(...) without await gives you a Promise.
  • 5 MB of text per call. Input over that is refused by name. Split a bigger file, or read it in slices with workspace.read.
  • Bounded concurrency still helps. Host calls start when invoked, so Promise.all over several parse calls runs them together; parallelMap is the bounded form.

Version History

  • a6a7e57 Current 2026-08-20 09:52

Same Skill Collection

.claude/skills/ask-matt/SKILL.md
.claude/skills/ast-grep-outline/SKILL.md
.claude/skills/ast-grep/SKILL.md
.claude/skills/codebase-design/SKILL.md
.claude/skills/companion-clis/SKILL.md
.claude/skills/diagnosing-bugs/SKILL.md
.claude/skills/domain-modeling/SKILL.md
.claude/skills/flash/SKILL.md
.claude/skills/implement/SKILL.md
.claude/skills/improve-codebase-architecture/SKILL.md
.claude/skills/nodetool-api-reference/SKILL.md
.claude/skills/nodetool-browser-agent/SKILL.md
.claude/skills/nodetool-chat-cli/SKILL.md
.claude/skills/nodetool-custom-node-developer/SKILL.md
.claude/skills/nodetool-deployment/SKILL.md
.claude/skills/nodetool-model-provider-config/SKILL.md
.claude/skills/nodetool-rag-indexing/SKILL.md
.claude/skills/nodetool-troubleshooter/SKILL.md
.claude/skills/nodetool-workflow-builder/SKILL.md
.claude/skills/prototype/SKILL.md
.claude/skills/research/SKILL.md
.claude/skills/resolving-merge-conflicts/SKILL.md
.claude/skills/setup-matt-pocock-skills/SKILL.md
.claude/skills/tdd/SKILL.md
.claude/skills/to-spec/SKILL.md
.claude/skills/to-tickets/SKILL.md
.claude/skills/triage/SKILL.md
.claude/skills/wayfinder/SKILL.md
.claude/skills/wizard/SKILL.md
.claude/skills/yts806379-everything-claude-code-e2e-testing/SKILL.md
packages/sandbox-packs/sandbox-aws/SKILL.md
packages/sandbox-packs/sandbox-chrono/SKILL.md
packages/sandbox-packs/sandbox-color/SKILL.md
packages/sandbox-packs/sandbox-dates/SKILL.md
packages/sandbox-packs/sandbox-decimal/SKILL.md
packages/sandbox-packs/sandbox-diff/SKILL.md
packages/sandbox-packs/sandbox-docx/SKILL.md
packages/sandbox-packs/sandbox-dsl/SKILL.md
packages/sandbox-packs/sandbox-epub/SKILL.md
packages/sandbox-packs/sandbox-exif/SKILL.md
packages/sandbox-packs/sandbox-expr/SKILL.md
packages/sandbox-packs/sandbox-fabric/SKILL.md
packages/sandbox-packs/sandbox-flow/SKILL.md
packages/sandbox-packs/sandbox-gif/SKILL.md
packages/sandbox-packs/sandbox-html/SKILL.md
packages/sandbox-packs/sandbox-ics/SKILL.md
packages/sandbox-packs/sandbox-jmespath/SKILL.md
packages/sandbox-packs/sandbox-mammoth/SKILL.md
packages/sandbox-packs/sandbox-markdown/SKILL.md

Metadata

Files
0
Version
a6a7e57
Hash
9235c925
Indexed
2026-08-20 09:52

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-25 08:09
浙ICP备14020137号-1 $방문자$