Skip to main content
The instapods files commands let you manage files inside your pods without SSH.

List Files

Lists files and directories. The path argument is optional and defaults to the pod’s app root. Output includes file name, size, and permissions.

Read a File

Outputs the file contents to stdout.

Write a File

Creates or overwrites a file with the given content. You can also pipe content via stdin:

Create a Directory

Use -p to create parent directories recursively (like mkdir -p).

Upload a File

Uploads a local file to the pod. If --remote is not specified, the file is placed in the pod’s app root with the same filename. --remote takes either an absolute path or one relative to the app root, and it can rename the file on the way in:

Sync a Directory

Recursively uploads an entire local directory to the pod. Shows progress with checkmarks for each file uploaded. A directory of any size works. The API accepts 100 MB per request, so files sync groups files into batches under a 64 MB budget and sends them one after another - you don’t need to split a large project into subdirectory syncs by hand. Files whose content already matches what’s on the pod are skipped, so a repeat sync only sends what changed. --dry-run prints the total size as well as the file count, and tells you up front when the transfer will be chunked:

Sync Flags

Examples

Common patterns like node_modules, .git, .env, __pycache__, and .DS_Store are excluded by default. Add --exclude flags for any additional patterns you want to skip.
PHP preset: The web root is /home/instapod/app/public, not /home/instapod/app. Upload your public-facing files (index.php, CSS, JS) to the public/ subdirectory, and application logic to the app root.