App Disk Files
Keelson apps have a persistent /data disk. Use keelson files when an
agent needs to change one file on that disk without redeploying the app.
This is useful for Streamlit and data apps that read local CSV or TSV files:
import pandas as pd
df = pd.read_csv("/data/data/sales.tsv", sep="\t")Commands
Section titled “Commands”Upload a file:
keelson files put sales.tsv --app sales-dashboard --dest data/sales.tsv --if-not-exists --ndjsonReplace a file intentionally:
keelson files put sales.tsv --app sales-dashboard --dest data/sales.tsv --replace --ndjsonDownload a file:
keelson files get data/sales.tsv --app sales-dashboard -o ./sales.tsv --jsonOverwrite a local download destination intentionally:
keelson files get data/sales.tsv --app sales-dashboard -o ./sales.tsv --force --jsonList a directory:
keelson files ls --app sales-dashboard --path data --jsonRemove one file:
keelson files rm data/sales.tsv --app sales-dashboard --yes --jsonAgent Guidance
Section titled “Agent Guidance”For non-interactive agents, prefer --ndjson for put. It waits until the
helper Job finishes writing the app disk. --json starts the operation and
returns immediately.
Use an explicit conflict mode:
--if-not-existswhen creating a new file.--if-remote-sha256 <hex>when replacing a file you previously inspected.--replaceonly when the user explicitly asked to overwrite the file.--forceonly when the user explicitly asked to overwrite a local download.--yesonly when the user explicitly asked to delete the remote file.
If your token can access multiple workspaces, add --tenant <tenant-id>.
Paths and Limits
Section titled “Paths and Limits”Remote paths are relative to /data. For example, data/sales.tsv maps to
/data/data/sales.tsv inside the app container.
Keelson rejects absolute paths, .., symlink components, device files,
sockets, FIFOs, directory overwrites, and unsafe database/WAL/journal destructive
operations. rm removes regular files only.
The initial file size limit is tuned for single-file data updates. Use snapshots or backups for bulk data, SQLite database replacement, or large directory moves.