Use this skill for the tzst command-line interface. Default to execution when the user clearly wants a real archive action and the required paths or archive names are already known.
This skill is CLI-only. If the user is asking about Python code such as from tzst import ..., treat that as a general Python library or API documentation task instead of using this skill as the main guide.
When to Use
Use this skill when the user:
- mentions
.tzst or .tar.zst archives
- wants to create, extract, flatten, list, or test a
tzst archive
- needs help installing
tzst or choosing CLI flags
- wants machine-readable
tzst output for scripting or automation
- needs safe conflict handling or extraction filter guidance
Do not use this skill for generic tar, zip, or Python API questions unless tzst is actually part of the request.
Preflight
- Check whether
tzst is available with tzst --version or tzst --help.
- If it is missing, prefer one of these installation paths:
- Re-run
tzst --version or tzst --help before doing real work.
Workflow
- Decide whether the request is execution or guidance.
Requests like "archive these files", "extract this backup", "list what is inside", "test this archive", or "install tzst" are execution intent.
- Choose the command that matches the request:
a, add, create for archive creation
x, extract for normal extraction with directory structure preserved
e, extract-flat only when the user explicitly wants flattened output
l, list for archive inspection
t, test for integrity checks
- If the user wants to extract only a few members and the member names are uncertain, list first.
- Load
references/cli-reference.md when you need the command matrix, exact flag names, or copy-paste examples.
Safe Defaults
- Prefer
x over e unless flattening is explicitly requested.
- Keep
--filter data as the default extraction mode.
- Use
--filter tar only when the user needs standard tar-style compatibility.
- Use
--filter fully_trusted only when the user explicitly says the archive source is completely trusted.
- Keep atomic archive creation enabled. Only reach for
--no-atomic when the user explicitly wants it.
- Prefer
--streaming for large archives or memory-constrained environments.
- For automation or pipelines, prefer
tzst --json --no-banner ....
- For automated extraction, require an explicit non-interactive
--conflict-resolution choice such as replace_all, skip_all, or auto_rename_all.
- Do not combine
--json with interactive conflict prompting.
Scripting Notes
- Put global flags before the subcommand in examples, such as
tzst --json --no-banner l archive.tzst.
- Use exit codes in scripts:
0 for success, 1 for operation errors, 2 for argument parsing errors, and 130 for interruption.
- When archive naming matters, tell the user that
tzst may normalize a creation target to .tzst or .tar.zst.
Common Mistakes
- Using
e when the user expected the original directory structure to be preserved
- Recommending
fully_trusted for archives from an unknown or untrusted source
- Forgetting an explicit conflict strategy for non-interactive extraction
- Treating a Python API question as a CLI question
- Guessing flags from
tar habits instead of checking the bundled reference or the installed CLI help
1---2name: tzst3description: Use when the user needs to create, extract, flatten, list, test, install, script, or troubleshoot `tzst` CLI workflows for `.tzst` or `.tar.zst` archives, including compression levels, streaming mode, extraction filters, conflict resolution, JSON output, or standalone binary setup, even if they describe the archive task without naming `tzst`.4---56Use this skill for the `tzst` command-line interface. Default to execution when the user clearly wants a real archive action and the required paths or archive names are already known.78This skill is CLI-only. If the user is asking about Python code such as `from tzst import ...`, treat that as a general Python library or API documentation task instead of using this skill as the main guide.910## When to Use1112Use this skill when the user:1314- mentions `.tzst` or `.tar.zst` archives15- wants to create, extract, flatten, list, or test a `tzst` archive16- needs help installing `tzst` or choosing CLI flags17- wants machine-readable `tzst` output for scripting or automation18- needs safe conflict handling or extraction filter guidance1920Do not use this skill for generic `tar`, `zip`, or Python API questions unless `tzst` is actually part of the request.2122## Preflight23241. Check whether `tzst` is available with `tzst --version` or `tzst --help`.252. If it is missing, prefer one of these installation paths:26 - `uv tool install tzst`27 - `pip install tzst`28 - a standalone release binary from <https://github.com/xixu-me/tzst/releases/latest> when the user does not want a Python installation293. Re-run `tzst --version` or `tzst --help` before doing real work.3031## Workflow32331. Decide whether the request is execution or guidance.34 Requests like "archive these files", "extract this backup", "list what is inside", "test this archive", or "install tzst" are execution intent.352. Choose the command that matches the request:36 - `a`, `add`, `create` for archive creation37 - `x`, `extract` for normal extraction with directory structure preserved38 - `e`, `extract-flat` only when the user explicitly wants flattened output39 - `l`, `list` for archive inspection40 - `t`, `test` for integrity checks413. If the user wants to extract only a few members and the member names are uncertain, list first.424. Load [`references/cli-reference.md`](./references/cli-reference.md) when you need the command matrix, exact flag names, or copy-paste examples.4344## Safe Defaults4546- Prefer `x` over `e` unless flattening is explicitly requested.47- Keep `--filter data` as the default extraction mode.48- Use `--filter tar` only when the user needs standard tar-style compatibility.49- Use `--filter fully_trusted` only when the user explicitly says the archive source is completely trusted.50- Keep atomic archive creation enabled. Only reach for `--no-atomic` when the user explicitly wants it.51- Prefer `--streaming` for large archives or memory-constrained environments.52- For automation or pipelines, prefer `tzst --json --no-banner ...`.53- For automated extraction, require an explicit non-interactive `--conflict-resolution` choice such as `replace_all`, `skip_all`, or `auto_rename_all`.54- Do not combine `--json` with interactive conflict prompting.5556## Scripting Notes5758- Put global flags before the subcommand in examples, such as `tzst --json --no-banner l archive.tzst`.59- Use exit codes in scripts: `0` for success, `1` for operation errors, `2` for argument parsing errors, and `130` for interruption.60- When archive naming matters, tell the user that `tzst` may normalize a creation target to `.tzst` or `.tar.zst`.6162## Common Mistakes6364- Using `e` when the user expected the original directory structure to be preserved65- Recommending `fully_trusted` for archives from an unknown or untrusted source66- Forgetting an explicit conflict strategy for non-interactive extraction67- Treating a Python API question as a CLI question68- Guessing flags from `tar` habits instead of checking the bundled reference or the installed CLI help