Skip to main content

A visual, pipeline-driven file manager that turns file operations into composable, repeatable workflows.

Project description

cascade

cascade is a visual, pipeline-driven desktop file manager.

You select files, add operations in panes from left to right, and only the final pane writes to disk.

Think of it as Unix pipes with a face.

Current State

  • UI: PySide6 (Qt) is the active/default frontend.
  • Status: Alpha / MVP in progress.
  • Core workflow already works for browsing, filtering, and writing outputs.

Project details and roadmap live in spec/design.md and spec/roadmap.md.

Quick Start

Requirements

  • Python 3.13+
  • uv

Install and Run

git clone <repository-url>
cd cascade
uv sync
uv run cascade

For platform notes and troubleshooting, see docs/installation.md.

How cascade works

Pipeline model:

[ Browse Files ] -> [ Filter ] -> [ Transform ] -> [ Save To ]
  • Pane 1 is the filesystem browser.
  • Each next pane applies one operation to the previous pane output.
  • Executing a pane marks panes to the right as stale.
  • Final output is written only by the final write operation.

Built-in Operations (today)

  • Browser filtering: name pattern + type
  • rename_pattern (label in UI: Rename)
  • image_transform (unified image operation)
  • unarchive
  • create_archive
  • save_to

Release Scope (Milestone 2)

This release targets a stable MVP flow:

  • browse files/folders,
  • chain supported operations in panes,
  • execute and inspect intermediate results,
  • write final output with save_to,
  • restore or clear last session snapshot on startup.

Known Limitations

  • Cache strategy still needs the planned metadata/content split refactor.
  • Workflow/session JSON schema is currently version 1 and intended for same-version app usage.
  • Advanced graph editing, plugins, and remote filesystems are not part of this release.
  • Very large directories and heavy transforms may still require manual pacing.

Development

Setup

uv sync

Test / Lint / Typecheck

# tests
uv run pytest -q

# lint
uv run ruff check src tests

# typecheck
uv run pyright

Optional: task runner (just)

just test
just lint
just format
just typecheck
just build

Build / Publish

uv run python -m build

Upload (maintainers):

uv run twine upload dist/*

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cascade_fm-0.1.0.tar.gz (55.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cascade_fm-0.1.0-py3-none-any.whl (54.1 kB view details)

Uploaded Python 3

File details

Details for the file cascade_fm-0.1.0.tar.gz.

File metadata

  • Download URL: cascade_fm-0.1.0.tar.gz
  • Upload date:
  • Size: 55.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cascade_fm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 eb5a62df0798837e110515979890fa018f04190d3bcb195990ce9c399a2361fd
MD5 c8c7bc14064b37620988d68348b2c5a1
BLAKE2b-256 8670ce7d48abd61492243afd24d4af44739e74a07f1724653794009d36be0da7

See more details on using hashes here.

File details

Details for the file cascade_fm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cascade_fm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 54.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cascade_fm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a85d663aba508ed978c230d3a545e1cb491795f026d367c56fbdf6d91d55b6d4
MD5 6c4aa8afadbcdae8d874c88b6bbd8af6
BLAKE2b-256 22891e44ae88d14ed0362caa47b91380e3497a55e32efec9327f3e2dea7a6fd5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page