Skip to content

v3.0.0

Latest

Choose a tag to compare

@Molunerfinn Molunerfinn released this 01 Jul 02:16
9018569

Features

PicGo Cloud Uploader (New Built-in Uploader)

PicGo Cloud is now a built-in uploader and the new default (previously SM.MS). Upload images directly to PicGo Cloud with multipart upload support for large files.

Every registered user gets a free tier200 file items and 500 MB storage — no credit card required.

How to use (new users):

New installations default to picgo-cloud uploader, no extra configuration needed:

picgo login            # login to PicGo Cloud first
picgo upload image.png # upload using the default uploader (picgo-cloud)

Upgrading from v2.x:

If you already have an uploader configured (e.g., smms), you need to switch manually:

picgo login                        # login to PicGo Cloud first
picgo use uploader picgo-cloud      # switch to picgo-cloud uploader
picgo upload image.png             # now uploads to PicGo Cloud
  • Multipart Upload: Large files are automatically split into chunks and uploaded in parallel with progress tracking. Interrupted uploads can be resumed.
  • Auto Import: Uploaded images are automatically added to your cloud album (configurable).

For plugin authors and Node.js users

The default uploader resolution order is: picBed.uploaderpicBed.currentpicgo-cloud. If neither is configured, PicGo Cloud is used automatically.


PicGo Cloud Album Management

A full-featured album management system for PicGo Cloud. You can now import your local upload history to the cloud, and manage cloud album items directly from the CLI.

How to use:

Import your existing upload history to PicGo Cloud:

picgo cloud album import

Manage cloud album items:

picgo cloud album list          # list album items with pagination
picgo cloud album get <id>      # get details of a specific item
picgo cloud album update <id>   # update an item
picgo cloud album delete <id>   # delete an item (with confirmation)
picgo cloud album retry         # retry failed imports
picgo cloud status              # check login & plan status
  • Batch Import: Import from local picgo.db, JSON file, or inline JSON. Features a visual progress bar and spinner, with --verbose for per-batch details.
  • Auto Import: When you upload via PicGo Cloud uploader, successfully uploaded images are automatically synced to your cloud album.
  • Retry Queue: Failed imports go to a pending queue. Run picgo cloud album retry to retry them.
  • Flexible Output: All commands support --format json (compact JSON for scripts/AI) and --format pretty (human-readable, default).

Shortcuts:

For convenience, some frequently used commands have top-level shortcuts:

picgo cloud list       # shortcut for cloud album list
picgo cloud import     # shortcut for cloud album import
picgo login            # shortcut for cloud login
picgo logout           # shortcut for cloud logout
picgo config sync      # shortcut for cloud config sync

Upload Flow Enhancements

Several improvements to the upload pipeline for better observability and reliability.

JSON output for uploads:

picgo upload image.png --format json

Outputs compact JSON with origin, imgUrl, fileName, type, contentType, size and more.

origin field tracking: The path transformer now sets an origin field on each output item, allowing you to trace back to the original input (URL or file path). This benefits plugins like pic-migrater which can now pass URLs directly to upload().

Partial upload failure handling: When uploading multiple images, if some succeed and others fail:

  • Successfully uploaded URLs are still output to the user.
  • afterUploadPlugins and afterFinishPlugins (e.g., cloud auto-import) still execute for successful items.
  • Both FINISHED and FAILED events are emitted.

Server API response: The upload endpoint now returns an items array with per-item details (origin, imgUrl, fileName, etc.) alongside the existing result array (URL strings only), maintaining backward compatibility.


picgo get — Query Current Configuration

A new command to quickly inspect your current PicGo configuration.

picgo get uploader      # show current uploader
picgo get transformer   # show current transformer
picgo get plugins       # list installed plugins with enabled/disabled state

All subcommands support --format json for machine-readable output.


Reactive Plugin Config

Resolves PicGo#1411 — plugin configuration panels now support cascading dropdowns and reactive fields.

For plugin authors

  • dependsOn: Declare field dependencies with dependsOn: ['otherField']. When the depended field changes, your field's choices and default are re-evaluated.
  • Function-form choices / default: choices: (answers) => [...] and default: (answers) => value now receive the correct answers snapshot on both CLI and GUI.
  • Zero overhead for existing plugins: If you don't declare dependsOn, nothing changes. The reactive pipeline is only triggered when dependsOn is present.
const config = (ctx) => [
  {
    name: 'region',
    type: 'list',
    choices: ['us-east', 'us-west', 'eu-central'],
    default: 'us-east'
  },
  {
    name: 'bucket',
    type: 'list',
    dependsOn: ['region'],
    choices: (answers) => getBucketsForRegion(answers.region),
    default: (answers) => getDefaultBucket(answers.region)
  }
]

New Plugin Config Field: type: 'editor'

Resolves PicGo#1408 — plugin config now supports a multi-line text editor field.

For plugin authors

Use type: 'editor' for config fields that need multi-line input (API key lists, scripts, templates, etc.):

{
  name: 'customScript',
  type: 'editor',
  required: false,
  message: 'Enter your custom script'
}
  • CLI: Opens your system editor ($VISUAL$EDITOR → platform default).
  • GUI (PicGo >= 3.0.0): Renders as a resizable <Textarea> that auto-grows with content.
  • Backward compatible: Older PicGo GUI versions silently skip unknown field types — no errors.

Breaking Changes

  • Node.js >= 20.19.0 or >= 22.12.0 is now required, due to the stability of ES Module support.
  • Default uploader changed: The default uploader is now picgo-cloud (previously smms / SM.MS). If you have picBed.uploader or picBed.current configured, your existing setting is respected — run picgo use uploader to switch. This only affects fresh installations with no prior configuration.