DocsReplay CLI

The upload command

How `replay upload` resolves a session, what it sends, and what Skillsync returns.

These docs cover the CLI publishing path only. Claude Code has full support. Codex support is currently in beta.

replay upload is the command that publishes a local transcript to Skillsync.

Command shape

replay upload [session-id-or-title]

The argument is optional:

  • Omit it to open an interactive picker and choose a session to publish.
  • Pass a session ID to publish that exact session.
  • Pass the exact session title to publish by name.

If your title contains spaces, quote it in the shell:

replay upload "fix billing webhook retries"

Flags

FlagEffect
-g, --globalConsider sessions across every project, not just the current directory.
--workspace <SLUG>Publish into a workspace by slug, overriding your saved default.
--personalPublish to your personal account, ignoring any saved default workspace.
--autoNon-interactive sync used by replay auto. Other flags are ignored when set.

--workspace and --personal are mutually exclusive. To set a default target so you don't pass --workspace each time, use replay workspace use <slug>.

How Skillsync finds the session

When you run replay upload, the CLI scans the local transcript sources it knows about, then looks for a session whose ID exactly matches the argument or whose title exactly matches the argument.

If there is no exact match, the upload fails with Session '<value>' not found.

What Skillsync sends

Skillsync uploads the transcript plus the metadata it can recover locally:

  • Session ID
  • Agent identifier
  • Session timestamp
  • Transcript messages
  • Project path when present
  • Git branch when present
  • Title when present
  • CLI version when present
  • Model metadata when present

First upload behavior

On a new upload, Skillsync creates a thread and returns a share URL.

New uploads are private by default. You can change visibility from the thread page after the upload completes.

Re-upload behavior

If the same session was already uploaded by the same account, Skillsync updates the existing thread instead of minting a second copy.

That means the URL stays stable as your local session evolves.

Authentication requirement

If you are not logged in, replay upload fails immediately.

Use:

replay login

You can confirm the current account with:

replay whoami

Practical workflow

The normal publishing loop looks like this:

replay login
replay upload <session-id-or-title>

Then copy the returned URL and share it.