PicGo-CoreDeepSeek Harness plugin
:zap:The ultimate image uploading engine. Both CLI & API supports.
- Stars
- 983
- Forks
- 101
- License
- MIT
- Last commit
- Aug 27, 2026
- Latest release
- v3.0.2
Overview
:zap:The ultimate image uploading engine. Both CLI & API supports.
Original README
Cached from the project repository on Sep 3, 2026. This is source content, separate from the Agents.md review above.
PicGo-Core

A tool for image uploading. Both CLI & api supports. It also supports plugin system, please check Awesome-PicGo to find powerful plugins.
More details please see the Homepage of PicGo.
Typora supports PicGo-Core natively.
Installation
PicGo requires Node.js >= 20.19.0 or >= 22.12.0. For older PicGo versions (<= v1.5.x), Node.js >= 16 is sufficient. Cause we need the stability of ES Module support.
Global install
bashnpm install picgo -g # or yarn global add picgo
Local install
bashnpm install picgo -D # or yarn add picgo -D
Usage
Use in CLI
PicGo uses
SM.MS(S.EE)as the default upload image host.
Show help:
bash1$ picgo -h 2 3 Usage: picgo [options] [command] 4 5 Options: 6 -v, --version output the version number 7 -d, --debug debug mode 8 -s, --silent silent mode 9 -c, --config <path> set config path 10 -p, --proxy <url> set proxy for uploading 11 -h, --help display help for command 12 13 Commands: 14 install|add [options] <plugins...> install picgo plugin 15 uninstall|rm <plugins...> uninstall picgo plugin 16 update [options] <plugins...> update picgo plugin 17 set <module> [name] [configName] configure config of picgo modules (uploader/transformer/plugin) 18 upload|u [input...] upload, go go go 19 use [module] [name] [configName] use module (uploader/transformer/plugin) of picgo 20 get get current picgo module config (uploader/transformer/plugins) 21 i18n [lang] change picgo language 22 uploader manage uploader configurations 23 server [options] run PicGo as a standalone server 24 login [token] login to cloud.picgo.app 25 logout logout from cloud.picgo.app 26 cloud manage PicGo Cloud 27 help [command] display help for command
Upload a picture from path
bashpicgo upload /xxx/xx/xx.jpg
Upload a picture from clipboard
picture from clipboard will be converted to
png
bashpicgo upload
Thanks to vs-picgo && Spades-S for providing the method to upload picture from clipboard.
Run as a server
bashpicgo server -p 36677 -h 127.0.0.1
Login to PicGo Cloud
bashpicgo login # or picgo login <token>
Logout from PicGo Cloud
bashpicgo logout
Check PicGo Cloud login status
Use picgo cloud auth status to inspect the current PicGo Cloud login state without triggering an interactive login. The check is non-blocking: when there is no local token it returns immediately without any network request.
bashpicgo cloud auth status # machine-readable output picgo cloud auth status --format json
The command sets a process exit code so it can be used in scripts:
| Status | Meaning | Exit code |
|---|---|---|
logged_in | Token is valid | 0 |
logged_out | No local token | 1 |
invalid | Token exists but is rejected by the server (401) | 2 |
error | Probe failed (network / server error) | 3 |
The --format json output is a single line, e.g.:
json{"status":"logged_in","loggedIn":true,"user":"someone","plan":1}
Inspect current module config
Use picgo get to read the currently selected picgo modules. Each subcommand supports --format pretty|json (defaults to pretty).
bash1# current uploader type (resolved as picBed.uploader -> picBed.current -> picgo-cloud) 2picgo get uploader 3 4# current transformer (defaults to path) 5picgo get transformer 6 7# installed plugins with enabled/disabled state 8picgo get plugins 9 10# machine-readable output 11picgo get uploader --format json 12picgo get plugins --format json
In json mode each command prints a single parseable line, e.g.:
json{"uploader":"github"} {"transformer":"path"} {"plugins":[{"name":"picgo-plugin-xxx","enabled":true}]}
Manage uploader configs
Since v1.8.0, PicGo-Core supports multiple configurations per uploader. Just like the configuration of the Electron version of PicGo.
You can use picgo set uploader <type> [configName] to configure different uploader configurations.
And you can use picgo use uploader <type> [configName] to switch between different uploader configurations.
For example:
bashpicgo set uploader github Test picgo use uploader github Test
For more details, you can use picgo uploader -h to check the help of uploader management:
bash1Usage: picgo uploader [options] [command] 2 3 4Options: 5 -h, --help display help for command 6 7Commands: 8 list [type] list uploader configurations 9 rename <type> <oldName> <newName> rename a config 10 copy <type> <configName> <newConfigName> copy a config (does not switch current uploader) 11 rm <type> <configName> remove a config
Init a picgo plugin template
Note: the plugin's template initializer has moved to the standalone picgo-init package.
You can use the following command to init a picgo plugin template:
bashnpx picgo-init plugin <your-plugin-folder>
Use in node project
Common JS
jsconst { PicGo } = require('picgo')
ES Module
jsimport { PicGo } from 'picgo'
API usage example
jsconst picgo = new PicGo() // upload a picture from path picgo.upload(['/xxx/xxx.jpg']) // upload a picture from clipboard picgo.upload()
Documentation
For more details, you can checkout documentation.