"Resolve data sources, load and save HyperTools data, and open
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill io --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Io?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-arex-skill-arex-skill)More formats (shields.io, HTML) on the badges page.
---
name: io
description: "Resolve data sources, load and save HyperTools data, and open
numeric LSL streams."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# IO
Use this route for `hyp.load`, `hyp.save`, `hypertools.io.sources`,
`hyp.io.lsl_stream`, and the streaming helpers that turn resolved input into a
form the visualization layer can consume.
## Use this sub-skill when the user wants to
- Load built-in datasets, local files, remote URLs, Hugging Face ids, Google
Sheets/Drive links, Dropbox links, FiveThirtyEight datasets, or Kaggle
datasets.
- Save arrays, DataFrames, lists of arrays, fitted models, and other
serializable results to disk.
- Check how a string resolves to a dataset source, or why a source failed.
- Open a live numeric LSL stream for later plotting.
- Inspect or normalize stream rows with `hypertools.io.streaming.is_stream`
and `row_to_vector`.
## Route elsewhere when the task is really about
- Plotting, animating, or exporting a figure/movie from loaded or streaming
data: use `../visualization/`.
- Choosing, tuning, or reusing `reduce`/`align`/`normalize`/`ndims` stages
after a load: use `../pipeline/`.
- Any model-selection or plotting-style work that does not start with source
resolution or file/stream I/O.
## Read first
- `references/io-reference.md` for source precedence, file formats, trust
rules, remote handling, and LSL semantics.
- `references/troubleshooting.md` for missing extras, unsupported extensions,
pickle trust, and LSL/network failures.
- `scripts/smoke_io.py` to run a tiny local round-trip check; add
`--lsl-local-smoke` when `pylsl` is installed and you want a real local
outlet/inlet check.
## Fast routing guide
- Decide whether a string is a built-in name, local path, explicit prefix, or
URL before doing anything else.
- If a remote payload is pickle-backed, require an explicit trust decision.
- If the extension is not a supported data format, expect pickle fallback
unless the bytes clearly match a known binary format.
- If the input is an LSL outlet or stream generator, keep it numeric and hand
the rendering step to the visualization route.
- If a raw string might be data or just text, use
`hypertools.io.sources.is_loadable_string` before routing it.
- If `hyp.load(..., reduce=..., ndims=..., align=..., normalize=...)` is used
on ordinary data, the pipeline owns those stage choices; streaming datasets
reject those kwargs at load time.
## Success signals
- `hyp.load(...)` returns raw data, a DataFrame/array/list/dict, or a
streaming `IterableDataset`.
- `hyp.save(...)` creates the requested file and round-trips through
`hyp.load(...)`.
- `hyp.io.lsl_stream(...)` returns a generator of numeric vectors.
- The smoke script prints a round-trip success message and, when requested, a
local LSL success message.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!