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 tier — 200 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.uploader → picBed.current → picgo-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 importManage 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--verbosefor 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 retryto 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 syncUpload Flow Enhancements
Several improvements to the upload pipeline for better observability and reliability.
JSON output for uploads:
picgo upload image.png --format jsonOutputs 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.
afterUploadPluginsandafterFinishPlugins(e.g., cloud auto-import) still execute for successful items.- Both
FINISHEDandFAILEDevents 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 stateAll 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 withdependsOn: ['otherField']. When the depended field changes, your field'schoicesanddefaultare re-evaluated.- Function-form
choices/default:choices: (answers) => [...]anddefault: (answers) => valuenow receive the correctanswerssnapshot on both CLI and GUI. - Zero overhead for existing plugins: If you don't declare
dependsOn, nothing changes. The reactive pipeline is only triggered whendependsOnis 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(previouslysmms/ SM.MS). If you havepicBed.uploaderorpicBed.currentconfigured, your existing setting is respected — runpicgo use uploaderto switch. This only affects fresh installations with no prior configuration.