Skip to content

Repository files navigation


PicGo-Core

standardGitHubBuild StatusnpmPicGo Conventionnode

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

npm install picgo -g
# or
yarn global add picgo

Local install

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:

$ picgo -h
Usage: picgo [options] [command]
Options:
-v, --version output the version number
-d, --debug debug mode
-s, --silent silent mode
-c, --config <path>set config path
-p, --proxy <url>set proxy for uploading
-h, --help display helpforcommand
Commands:
install|add [options] <plugins...> install picgo plugin
uninstall|rm <plugins...> uninstall picgo plugin
update [options] <plugins...> update picgo plugin
set<module> [name] [configName] configure config of picgo modules (uploader/transformer/plugin)
upload|u [input...] upload, go go go
use [module] [name] [configName] use module (uploader/transformer/plugin) of picgo
get get current picgo module config (uploader/transformer/plugins)
i18n [lang] change picgo language
uploader manage uploader configurations
server [options] run PicGo as a standalone server
login [token] login to cloud.picgo.app
logoutlogout from cloud.picgo.app
cloud manage PicGo Cloud
help [command] display helpforcommand

Upload a picture from path

picgo upload /xxx/xx/xx.jpg

Upload a picture from clipboard

picture from clipboard will be converted to png

picgo upload

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

Run as a server

picgo server -p 36677 -h 127.0.0.1

Login to PicGo Cloud

picgo login
# or
picgo login <token>

Logout from PicGo Cloud

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.

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.:

{"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).

# current uploader type (resolved as picBed.uploader -> picBed.current -> picgo-cloud)
picgo get uploader
# current transformer (defaults to path)
picgo get transformer
# installed plugins with enabled/disabled state
picgo get plugins
# machine-readable output
picgo get uploader --format json
picgo get plugins --format json

In json mode each command prints a single parseable line, e.g.:

{"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:

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:

Usage: picgo uploader [options] [command]
Options:
-h, --help display helpforcommand
Commands:
list [type] list uploader configurations
rename <type><oldName><newName> rename a config
copy <type><configName><newConfigName> copy a config (does not switch current uploader)
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:

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

Use in node project

Common JS

const{ PicGo }=require('picgo')

ES Module

import{PicGo}from'picgo'

API usage example

constpicgo=newPicGo()// upload a picture from pathpicgo.upload(['/xxx/xxx.jpg'])// upload a picture from clipboardpicgo.upload()

Documentation

For more details, you can checkout documentation.

About

⚡The ultimate image uploading engine. Both CLI & API supports.

Topics

Resources

Stars

982 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages