Skip to main content

v-flow

Move footage and photos between camera cards, long-term storage, and editing drives without ever losing track of the safe copy.

Wait, what does it do?

v-flow is a CLI for people who shoot a lot of video and photos. It copies your camera card into a protected archive and proves the copy with checksums. It puts temporary copies on your editing SSD, saves finished videos and DaVinci Resolve backups, and deletes an editing copy only after verifying the archived original. Nothing is ever moved or deleted as a side effect of anything else.

You can drive it from the terminal, or just talk to Claude Code, Codex, or Cursor. The bundled skill teaches your agent the whole workflow.

Install

curl -fsSL https://raw.githubusercontent.com/kaungzinye/v-flow/main/install_vflow.sh | bash

That installs the v-flow command plus the agent skill. Claude Code and Cowork users can grab the plugin instead, and the skill installs the CLI from PyPI on first use:

/plugin marketplace add kaungzinye/v-flow
/plugin install v-flow@v-flow

Then point it at your drives:

v-flow make-config

Then check the whole environment in one command, which tells you in plain words what works and what to fix:

v-flow doctor

Use it

Ingest a card. Footage lands in a Shoot, photos in a Collection, one command:

v-flow ingest --source "/Volumes/SDCARD" --auto

Put a Shoot on your editing drive, and clean it up when you're done (cleanup verifies checksums and your Resolve project first):

v-flow checkout --shoot "2026-08-02_Ingest" --working-location work_ssd
v-flow cleanup  --shoot "2026-08-02_Ingest" --working-location work_ssd --project "Summer Film" --confirm

Or skip the flags entirely and ask your agent:

Ingest this card, then put the footage on my SSD.

Every state-changing command supports a dry run, names the safety gate that failed, and leaves your card and archive intact on any error.

Every decision v-flow needs has a flag that carries it, such as --confirm for a deletion or --merge-into for a date overlap. Reach one without the flag and without a terminal to ask, and the command stops and names the flag rather than guessing. Long copies print plain progress lines, and an interrupted run resumes when you re-run the same command.

Notes

This is a personal tool that grew documentation. It works on macOS, it's tested, and it guards your media obsessively. Still, expect sharp edges in places one person's workflow never reached.

Docs

  • The agent skill: the workflow reference, branch by branch
  • Domain language: what Shoot, Collection, Archive, and friends mean precisely
  • Every command: v-flow --help

Contributing

Issues and PRs welcome. Read CONTEXT.md first. The vocabulary is load-bearing.

Download files

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

Source Distribution

vflow_cli-0.3.0.tar.gz (80.3 kB view details)

Uploaded Source

Built Distribution

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

vflow_cli-0.3.0-py3-none-any.whl (62.6 kB view details)

Uploaded Python 3

File details

Details for the file vflow_cli-0.3.0.tar.gz.

File metadata

  • Download URL: vflow_cli-0.3.0.tar.gz
  • Upload date:
  • Size: 80.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for vflow_cli-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a7b70fec8768553ddae1da7279f86f1d50388f951468c160036b41ea4b0f4f09
MD5 5390ca0aa80618f3d2693ed3561c0600
BLAKE2b-256 2aa73ea8964612cc36c5018fc95b69ab05544f6a2fa5f6d66b86de79308f0cde

See more details on using hashes here.

Provenance

The following attestation bundles were made for vflow_cli-0.3.0.tar.gz:

Publisher: publish.yml on kaungzinye/v-flow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vflow_cli-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: vflow_cli-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 62.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for vflow_cli-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 520f40b36aca78cdb16ab2ffa7e697a7841c332888f89736ed893a60a7c157e8
MD5 431eafb98b2730f6d28d5c745a34c261
BLAKE2b-256 c63709864b5777eb00ab8e7cd59cf5d7e51516ee3db83dbd033ad99e10f990df

See more details on using hashes here.

Provenance

The following attestation bundles were made for vflow_cli-0.3.0-py3-none-any.whl:

Publisher: publish.yml on kaungzinye/v-flow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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