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.

View source

PicGo-Core

standard GitHub Build Status npm PicGo Convention node

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

bash
npm install picgo -g

# or

yarn global add picgo

Local install

bash
npm 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:

bash
1$ 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
bash
picgo upload /xxx/xx/xx.jpg
Upload a picture from clipboard

picture from clipboard will be converted to png

bash
picgo upload

Thanks to vs-picgo && Spades-S for providing the method to upload picture from clipboard.

Run as a server
bash
picgo server -p 36677 -h 127.0.0.1
Login to PicGo Cloud
bash
picgo login
# or
picgo login <token>
Logout from PicGo Cloud
bash
picgo 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.

bash
picgo 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:

StatusMeaningExit code
logged_inToken is valid0
logged_outNo local token1
invalidToken exists but is rejected by the server (401)2
errorProbe 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).

bash
1# 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:

bash
picgo 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:

bash
1Usage: 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:

bash
npx picgo-init plugin <your-plugin-folder>

Use in node project

Common JS
js
const { PicGo } = require('picgo')
ES Module
js
import { PicGo } from 'picgo'
API usage example
js
const 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.