Skip to main content
  • upload creates a new application, with a new ID.
  • commit sends files to an application that already exists and keeps its ID, domain and settings.
  • zip builds the same zip locally, without sending it, so you can check what goes in.
upload and commit also exist under squarecloud app (squarecloud app upload, squarecloud app commit). New here? Start with the Quickstart.

What goes in the zip

upload, commit and zip zip the current folder and leave out what squarecloud.ignore, in the project root, lists. It uses .gitignore syntax and is the same file the VS Code extension reads.
  • Always left out first: node_modules, .git, .github, .vscode, package-lock.json, pnpm-lock.yaml and yarn.lock. Dependencies are installed on the platform from your manifest. To send a lockfile because you need pinned versions, add a ! rule, such as !package-lock.json.
  • Links: a symbolic link to a file is zipped as that file; links to folders and broken links are skipped with a note on stderr.
  • Older file names (.squareignore, .squarecloudignore, square.ignore) are still read when squarecloud.ignore is missing, with a warning to rename the file.

squarecloud upload

Usage
Zips the current folder and creates a new application from it. The folder needs a squarecloud.app or squarecloud.config file.
Output
After a successful upload, the CLI writes ID=<appID> into the configuration file of the current folder, so later commands know which app you mean. See where the app ID is saved. With --json, stdout carries only the created application (ID, name, description, domain, cluster, memory, CPU and language) as JSON; progress messages go to stderr.

squarecloud commit

Usage
Aliases: squarecloud push, squarecloud app commit, squarecloud app push Zips the current folder and sends it to an existing application. The ID comes from the argument or from the ID= line of your configuration file. Unlike other commands, commit never opens a picker: without either, it stops with exit code 1.
Output
Large commits are not cut off by a timeout. commit has no JSON output.

squarecloud zip

Usage
Zips the current folder the same way upload and commit do and saves it as <folder name>.zip inside that folder, replacing an existing file with that name. It doesn’t need a login.
Output
If the zip can’t be written, the CLI prints Couldn't zip your application. with the reason; if an old <folder name>.zip can’t be deleted, it says so. Both exit with code 1. To deploy on every push instead, see GitHub deploys.