flypod update
Ship a new version of a directory or file to the linked flypod site; the new version becomes live immediately.
flypod update ships a new version to the site linked to the current folder, or to an explicit --site. The new version becomes live immediately.
Plain flypod in a folder that already has a site does the same thing, with the same receipt; flypod update is the explicit spelling, and the one that also takes --site and --token. To make a separate site from a linked folder, run flypod --new.
Synopsis
flypod update [path] [flags]With no path, update deploys the folder the site was last deployed from; when that folder is gone, it follows the same auto-detection rules as flypod [path]. flypod resolves the target site from the folder-to-site link saved on the last deploy, or from --site.
A version id is derived from the content hash of the files, so re-running flypod update with byte-identical content returns the same version id and adds no new version — nothing is re-stored. If that content matches an older version, that version becomes live again. The upload still happens and the CLI still reports the version as live; there is no special "nothing changed" message.
Flags
| Flag | Description |
|---|---|
--site <id> | Target a specific site id instead of the linked one. |
--token <manage_token> | Authorize with a manage_token instead of your session. |
--json | Emit a single JSON object. |
--timeline | Show a History chip on the site's pages. See the version timeline. --no-timeline hides it; --history and --no-history are the same flags. The --json result then carries timeline: true or false, and history_url when it is on. The new version is live either way: a refused switch is reported, not a failure, and timeline is the state the site is actually in. To switch it without deploying, use flypod versions --timeline. |
--verbose | More of the same receipt: also the history command and the full version id. With --json: also the expiry as days and as an ISO date (expires_in_days, expires_at_iso) and a next_note. |
-q, --quiet | Print only the URL on stdout. |
-h, --help | Print usage and exit. |
Examples
Ship a new version to the linked site:
flypod update ./dist ✓ Updated · version 8f1a0c2e is live
https://a3f1c2d4e5b60789.flypod.page
undo flypod rollback puts the previous version back
expires 19 Oct 2026 in 14 days
keep it flypod login free · removes the expiryOn a site that is yours the expires row is absent. When stdout is not a terminal, the URL alone is printed there, so URL=$(flypod update) works. If something was left out of the upload (see what is uploaded), a notice lists it first.
Machine-readable output:
flypod update ./dist --json{
"ok": true,
"action": "updated",
"site_id": "a3f1c2d4e5b60789",
"version_id": "8f1a0c2e44b7d913",
"url": "https://a3f1c2d4e5b60789.flypod.page",
"healed": [],
"warnings": [],
"expires_at": 1782929906088,
"next": {
"update": "flypod update",
"versions": "flypod versions",
"rollback": "flypod rollback",
"keep": "flypod login --json"
}
}action is always "updated" here (a first deploy says "created"), so a caller that ran plain flypod can tell which happened. As on a first deploy, skipped appears when something was left out, and timeline / history_url when --timeline or --no-timeline was passed.
Target a specific site with a manage token — for an anonymous site on a machine that doesn't remember it. Get the token with flypod token on the machine that does:
flypod update ./dist --site a3f1c2d4e5b60789 --token fk_...If the site is yours, flypod login on the second machine is the better path: a session can be replaced, a manage_token cannot.
Notes
warningsworks as it does on a first deploy: check it before treating the new version as good. In a terminal a warning is shown between the URL and the next steps.- No link and no
--sitefails withno_sitebefore anything is read or uploaded. Itsreasonsays whether the folder was never linked, its site expired, the site is gone, or a folder above or below this one is the linked one. - A
401or403response fails withunauthorized, and thefixdepends on what this machine sent: the folder's stored token, an account, or nothing. When the site refuses the folder's stored token and you are signed in, flypod retries once as your account; if that works, the site was kept by your account and the link is updated to match. - A
404fails withsite_gone: the linked site no longer exists. flypod drops the stale link and tells you to runflypodto create a fresh deploy. Plainflypodin that folder does not fail: it drops the link and creates a new site. - When plain
flypodran the update and it was refused, thefixends withTo make a separate new site from this folder instead, run `flypod --new`. - Credentials:
--tokenwins, then themanage_tokenthis machine stored for the site, then your session orFLYPOD_TOKEN. See credential precedence. - Use
flypod versionsto inspect history andflypod rollbackto revert.