Get started with PicList-Core
PicList-Core is a standalone upload engine with a CLI, terminal UI, HTTP server, and Node.js API. The npm package is piclist; installed commands are picgo and picgo-server.
Normal desktop drag-and-drop uploads do not need a separate Core installation. Use Core for servers, terminal batches, or application integration.
1. Check Node.js and install
Core 3.0.0 requires Node.js 22.x, at least 22.13.0. Its engine range is ^22.13.0:
node --version
npm install -g [email protected]
picgo --versionThe last command should show 3.0.0. If picgo is missing, reopen your terminal and check that npm's global executable directory is on PATH.
2. Create an account-free practice destination
In an interactive terminal, run:
picgo initChoose Local, a destination directory, and a configuration name as prompted. First create a writable directory, such as D:\Pictures\PicList or /home/YOU/Pictures/piclist, and enter its absolute path. This is a storage path, not a public image address.
Alternatively, save a minimal JSON configuration without interactive prompts. Create practice.json:
{
"picBed": {
"uploader": "local",
"current": "local",
"local": {
"path": "D:/Pictures/PicList"
}
}
}{
"picBed": {
"uploader": "local",
"current": "local",
"local": {
"path": "/home/YOU/Pictures/piclist"
}
}
}Choose one version and replace path with your existing directory. On macOS, use your actual absolute directory rather than copying /home/YOU.
3. Upload your first image
From the configuration directory, substitute your image path:
picgo -c ./practice.json upload "./photo.png"Check the terminal result and photo.png in the target directory. Local without customUrl returns a disk path. For public article links, connect online storage or your file website; see Choose a destination.
With a default configuration saved by init, omit -c:
picgo upload ./image.png
picgo upload "./My Pictures/photo.jpg" ./another.png
picgo upload https://example.com/image.pngQuote paths containing spaces. Replace the URL example with a direct downloadable image. Omitting inputs uses the clipboard; headless servers should use files or multipart HTTP uploads.
4. Find your configuration
Core reads ~/.piclist/data.json by default and falls back to config.json only when data.json is absent. It does not merge both. Select a file explicitly with -c:
picgo -c /absolute/path/data.json upload ./image.pngDesktop and Core destination structures are compatible, but default data directories differ. Check paths, fonts, plugins, and processing settings during migration. They do not automatically read the same file. Keep credential-bearing configurations private.
5. Choose your next interface
| Goal | Next step |
|---|---|
| Interactive configuration and recent results | CLI / TUI; run picgo or picgo tui |
| Editor calls or remote uploading | HTTP server |
| Container deployment | Docker |
| Uploading inside a Node.js application | Node.js API |
| Processing and naming fields | Configuration reference |
Node API initialization in 3.0 uses await PicGo.create(). HTTP, CLI, and API provider parameter spelling differs; follow each interface's examples.
See the Core repository and npm package for releases.