Publish updates

Connect a game once, then ship new builds to the same link.

Connect the game

rosebud connect

This prints a private approval_url. Open it, sign in and select Allow updates. If the game isn't claimed yet, the button reads Claim game and allow updates, and approving also claims it. The link expires after 30 minutes; run rosebud connect again for a new one.

Published with an active rosebud login? The connection is already saved, so skip this step.

Ship a new build

rosebud status
rosebud update --directory ./dist
  • Rebuild first, or copy your files into ./dist again if you have no build step.
  • status shows whether access is active and which version of the game is live.
  • Titles, descriptions and covers you don't pass to update stay as they are.
  • update makes the game exactly the folder you give it. A file the game has that the folder lacks is removed from the game, and files Rosebud already has aren't uploaded again.
  • If an update is interrupted, run the same command again. It won't publish twice.

If the game changed on Rosebud

Edits in the Rosebud editor, changes by Rosie and updates from another agent make your saved version stale. update then stops with version_conflict (exit 3) instead of overwriting, and changes nothing. Its changed_paths says what changed:

changed_pathsMeaning
A list of pathsRosebud changed, added or removed these files since your last sync (up to 4,000 paths).
[]No file changed. Only the title, description, cover or published copy did.
nullRosebud can't tell which files changed, for example for a version you learned only from status.
MissingThis Rosebud server doesn't report changed files.

For [], run rosebud status and pass its content_version as --expected-version.

Bring those changes in with rosebud pull, then update:

rosebud pull --directory ./dist
rosebud update --directory ./dist

pull keeps your own edits and lists any file changed on both sides as a conflict to merge; rosebud pull --force takes Rosebud's version of each conflicted file instead. Files Rosebud has that your folder lacks are listed under missing_locally, and the next update removes them from the game unless you restore them. If your game has a build step, pull into a new, empty folder such as ./rosebud-files, copy the changes into your source and rebuild, then update with --expected-version <content_version from the pull>. If you can't pull (it needs the owner's plan to include code download), ask what changed in the editor and make the same changes locally, then accept the current version explicitly:

rosebud update --directory ./dist --expected-version <content_version from status>

update never merges or overwrites on its own.

On another computer

rosebud connect --project <project_id>

This works for a claimed game. The project ID is in .rosebud/project.json, or in the editor's address, https://rosebud.ai/edit/<project_id>. Approve the new link, then run rosebud status before your first update.

Revoke access

Access lasts 90 days and covers only this game. Revoke it any time in the editor under Project Settings → Manage connected agents, or run:

rosebud disconnect

The game stays online.

On this page