Skip to main content

fss-cli

CI Python License: AGPL-3.0-or-later

fss-cli provides POSIX-shaped Typer commands for async fsspec filesystems. Your application configures the filesystems and embeds the commands in its CLI. The package installs no executable or module entry point.

Releases up to 0.10.0 were named fsspec-cli, imported as fsspec_cli. See ADR 0010.

Install

uv add "git+https://github.com/opencadc/fsspec-tools@main#subdirectory=libs/fss-cli"

Quick start

from contextlib import asynccontextmanager

import fsspec
import typer
from fsspec.implementations.asyn_wrapper import AsyncFileSystemWrapper
from fss_cli import App


@asynccontextmanager
async def data_source():
    # One fresh async-capable filesystem per command invocation.
    yield AsyncFileSystemWrapper(fsspec.filesystem("memory"))


app = typer.Typer()
app.add_typer(App({"data": data_source}).typer_app, name="fs")

if __name__ == "__main__":
    app()

Operands use name:/path to select a configured source:

python app.py fs ls data:/

The example uses an in-memory filesystem. The overview shows how to configure local disk and a remote VOSpace archive. With sources named local and archive, copy a file between them with:

python app.py fs cp local:/results.csv archive:/2026/results.csv

Commands

ls · du · find · tree · size · test · info · stat · head · tail · cat · cp · mv · mkdir · rmdir · unlink · rm.

Recursive cp -R is available by default. Enable recursive rm -R explicitly:

App({"data": data_source}, capabilities={"recursion": {"remove": True}})

Public API

App, AppCapabilities, RecursionCapabilities, AsyncFilesystemSource, CommandCallback, and CommandContext.

Documentation

For Read
Embedding it: sources, lifecycle, capabilities, exit statuses Integration guide
What each command does Command reference
The public API API reference
The command contract and its rationale docs/design/
Architecture decisions docs/adr/

Scope

fss-cli uses familiar shell layouts for backend metadata and marks missing values as unknown. It does not claim POSIX, GNU, BSD/macOS, or all-fsspec compatibility. Supported host platforms are Linux and macOS.

License

Copyright (c) 2026 National Research Council of Canada / Government of Canada.

fss-cli is distributed under the terms of the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). fss-cli 0.10.0 and earlier releases were published under the BSD 3-Clause License.

Long listings and repeated copies

ls -l keeps shell column order even when metadata is sparse. Unknown scalar fields show -, unknown permission bits show ?, and old dates show the year. VOSpace access groups share one field (r=OSSOS,w=NONE) rather than implying POSIX group ownership; raw access and lock metadata remain available in info.

Recursive cp -R skips files only after compatible MD5 metadata or staged SHA-256 comparison establishes equality. Equal size alone is insufficient. Without content checksums, comparison downloads both files. If their contents differ, the upload reuses the staged source bytes.

Metadata

Release files for fss-cli 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fss-cli 0.11.0
File Size Uploaded Provenance
fss_cli-0.11.0.tar.gz 229.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fss-cli 0.11.0
File Interpreter ABI Platform
fss_cli-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 318.8 kB

Release files / fss_cli-0.11.0.tar.gz

Download URL fss_cli-0.11.0.tar.gz
Size 229.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7bf7f21199d2af0e673579b56ac02cb407a22ab54701305994aa2c1531c49855
BLAKE2b-256 checksum
How to use checksums
e8bc11b1f784ca6d38a62a16c9f594dd9dbd85a8b7694b24b12045f98620c1a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / fss_cli-0.11.0-py3-none-any.whl

Download URL fss_cli-0.11.0-py3-none-any.whl
Size 89.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8bf9fd2e2e56c736aee4116e546e159d45916b7150ab7e2fc2f908f6030362b7
BLAKE2b-256 checksum
How to use checksums
bf8fb8a8760c088285071d83d8615ef70de439bb6d27d0d8baa53cced7ccb6f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for fss-cli 0.11.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fss_cli-0.11.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page