Skip to main content

flyfile

Agent-native data transfer. Push/pull anything (text, files, directories) through a central server, or stream it directly client-to-client. Built for AI agents: JSON output everywhere, stable exit codes, content-addressed dedup, burn-after-read.

pip install flyfile

# server (single worker; data lives in LMDB via flaxkv2)
flyfile serve --port 8632 --token SECRET

# client
export FLYFILE_SERVER=http://host:8632 FLYFILE_TOKEN=SECRET
echo "build log" | flyfile push - --name buildlog --tag ci --ttl 2h
flyfile push ./model.bin --reads 1            # burn after one read
flyfile push ./dataset/                       # dirs stream as tar, no temp files
flyfile ls --tag ci --json
flyfile preview k3x9m2pq                      # peek without consuming reads
flyfile pull k3x9m2pq -o ./model.bin

# client → client (server relays the stream, nothing is stored)
flyfile send ./results/          # prints: code: amber-falcon
flyfile recv amber-falcon        # on the other machine

Agent contract

  • JSON everywhere: --json, or automatic when stdout is not a TTY. Progress goes to stderr, data to stdout. Never prompts.
  • Exit codes (stable): 0 ok · 2 usage · 3 not found · 4 auth · 5 conflict · 6 expired/burned · 7 network (retryable) · 1 other.
  • Errors are JSON on stderr: {"error", "message", "retryable", "suggestion"}.
  • Idempotent push: content-addressed (sha256). Re-pushing the same bytes is instant ("deduped": true).
  • flyfile preview <id> reads the head of an object (or a dir's file manifest) without downloading and without consuming burn-after-read counts.
  • flyfile schema [cmd] dumps the command tree as JSON for introspection.
  • flyfile send --json emits NDJSON events; the code event arrives before the transfer starts, so an agent can hand it to the receiver immediately.

Design notes

  • Storage is flaxkv2 (LMDB): metadata and 8 MiB content chunks in one env. The LMDB file does not shrink after deletes (free pages are reused; file size ≈ historical peak).
  • Compression (zstd-3) happens on the client; the server stores/relays compressed bytes. Each 8 MiB chunk of a large upload is an independent zstd frame, so parallel upload, resume, and parallel download all work per-chunk.
  • Burn-after-read: the read is claimed atomically when chunk 0 (or /content) is fetched. Later chunks of an in-flight parallel download are served during a grace period (default 15 min) even after the object burns.
  • Run exactly one uvicorn worker: relay pairing and the burn-claim lock are in-process.

Development

uv venv && uv pip install -e ".[dev]"
.venv/bin/pytest
scripts/bench.sh   # 1 GiB loopback throughput smoke test

Download files

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

Source Distribution

flyfile-0.1.0.tar.gz (37.4 kB view details)

Uploaded Source

Built Distribution

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

flyfile-0.1.0-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flyfile-0.1.0.tar.gz
  • Upload date:
  • Size: 37.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for flyfile-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c1bfacd0b14c1879abeccb67c1aa4b9feb7c7d6133aa64eaf133ebcc7f2c42b3
MD5 5c1815d48e49c19658ab2b54a77474f9
BLAKE2b-256 d71146f4a9d852c77e0f8759738ec10f32471ca4648de53b44967dd324975991

See more details on using hashes here.

Provenance

The following attestation bundles were made for flyfile-0.1.0.tar.gz:

Publisher: python-publish.yml on KenyonY/flyfile

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

File details

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

File metadata

  • Download URL: flyfile-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for flyfile-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c53382810f90056c7f12b1d2e66f8bbed10282c2e03e2f70586178c0f95cd0c8
MD5 cae162c820cce75a9f7f7afdc5609f66
BLAKE2b-256 1833d1e9fe3bfb1263717c53a542777c290e4191e5099b0dfbcda00a98917d80

See more details on using hashes here.

Provenance

The following attestation bundles were made for flyfile-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on KenyonY/flyfile

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

Release history Release notifications | RSS feed

0.4.0

2 files

0.3.0

2 files

This release

0.1.0 This release

2 files

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