# PicList: a PicGo fork that adds cloud storage management

> PicList keeps PicGo's upload plumbing and adds browsing, deleting and renaming files already sitting in S3, OSS, COS, WebDAV and GitHub. Here is what it does, how to install it, and where it stops being the right tool.

**Kuingsmile/PicList** — An image upload and manage tool, base on PicGo

- Repository: https://github.com/Kuingsmile/PicList
- Website: https://piclist.cn
- Stars: 3,773 · Forks: 159
- Language: TypeScript
- License: MIT
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/kuingsmile-piclist

## The gap PicList fills between uploading and actually managing files

PicGo solved one problem well: take an image from the clipboard or a file path, push it to a configured image bed, and hand back a URL for your Markdown. What it never did was let you look at what you had already uploaded. Once a screenshot left your machine, the only interface to it was the storage provider's own console.

PicList is a fork of PicGo that keeps the upload path and adds a management layer on top. The README describes it as retaining "all the features of PicGo while adding comprehensive cloud storage management capabilities." In practice that means the app can browse, search, cloud-delete and batch rename files that already exist in your bucket, not just the ones uploaded in this session.

The audience is narrow but real. If you write technical documentation, maintain a blog, or run a note-taking setup in Typora or Obsidian where images are pasted constantly, you accumulate thousands of objects with machine-generated names. Finding the one you want to replace, or deleting the twenty you uploaded by mistake, means opening a web console and clicking through pagination. PicList puts that work in the same window as the upload button.

## How the Electron app, the server mode and the plugin layer fit together

The repository is an Electron application. The package.json build scripts run through electron-vite for both main and renderer processes, and electron-builder produces the platform installers. The main process is the entry point at ./out/main/index.js, and the renderer is a Vue application, which the topic list confirms. That split matters because file operations, credential storage and uploader plugins live on the main side, while the gallery, settings and cloud storage views are renderer code.

Two things sit alongside the desktop window. First, there is a server mode: the Docker instructions invoke node /usr/local/bin/picgo-server, which exposes the upload API that editors call. Second, there is a plugin runtime, with a dedicated prepare:plugin-runtime script and a test:plugin-runtime script in package.json. The README states that the scripting system works "without requiring a node environment," which is the point of bundling that runtime rather than asking users to install Node.

The supported platforms table is the clearest statement of architecture. Providers are listed with two capability columns, Album Delete and Cloud Management. AWS S3 and compatible services, Aliyun OSS, Tencent COS, GitHub and Gitee, S.EE and Imgur, WebDAV and SFTP, and the local file system all carry both marks. Lsky Pro and Doge Cloud appear with the row truncated in the README, so their capabilities cannot be confirmed from the table as rendered. The practical consequence: the management features are not uniform across every uploader PicList supports, and the table is the place to check before assuming a provider works with batch rename.

## Installing PicList and uploading your first image

Desktop installs go through the usual package managers. On Windows, winget takes a single command, and Scoop is available through a third-party bucket. On macOS, Homebrew installs the cask. Linux users download an AppImage, Snap or Deb from the releases page.

```bash
winget install Kuingsmile.PicList
```

For macOS the equivalent is a cask install. Both commands pull the current release, which at the time of writing is v3.5.0, published on 2026-06-14.

```bash
brew install piclist --cask
```

If you want the upload API running somewhere other than your desktop, the README gives a Docker invocation. Note the port mapping and the volume mount: configuration lives under /root/.piclist inside the container, so the host directory you mount there is what persists your settings and credentials.

```bash
docker run -d \
  --name piclist \
  --restart always \
  -p 36677:36677 \
  -v "./piclist:/root/.piclist" \
  kuingsmile/piclist:latest \
  node /usr/local/bin/picgo-server -k piclist123456
```

The -k value is the server key. Change it from the example before exposing the port beyond localhost, because anything that can reach 36677 with that key can write to your configured storage.

For editor integration, the Obsidian path is the most explicit in the README. Install the Image Auto Upload Plugin, set the default uploader to PicGo(app), and point the API endpoint at the local server.

```text
http://127.0.0.1:36677/upload
```

Typora handles this differently depending on version. From 1.6.0 onward PicList appears directly in the image settings. Below 1.6.0 you select PicGo(app) and point the path at the PicList executable instead. VSCode users install the separate VS-PicList extension from the marketplace.

## Where PicList is the wrong tool

The management features assume a desktop session. Cloud browsing, batch rename and the image editing tools are renderer-side UI. Docker mode gives you the upload server, which is what a headless CI job or a remote editor needs, but it does not give you the gallery. If your use case is "accept uploads on a server and never look at them again," the desktop download is dead weight.

Provider coverage is the second constraint. The README's own table shows that Album Delete and Cloud Management are per-provider capabilities, and the Lsky Pro and Doge Cloud row is cut off in the rendered table. If your storage backend is a self-hosted service that is not on the list, or is on the list without the Cloud Management mark, you get an uploader and nothing more.

Configuration durability deserves a flag. The Docker example persists settings through a volume mount, which implies that without that mount the container's configuration is ephemeral. The README does not document an export, import or rollback path for the configuration and gallery data it syncs, even though the feature list mentions "configuration/gallery synchronization across multiple devices (via WebDAV/Git)." Sync is not the same as versioned backup, and the documentation does not describe what happens when two devices write conflicting configuration. Treat that as unverified rather than safe.

## PicList against PicGo and against a plain script

The obvious alternative is upstream PicGo. The difference is scope, not quality. PicGo is an uploader: clipboard in, URL out. PicList is an uploader plus a file manager, and it inherits PicGo's plugin ecosystem, which the README calls out as compatible with "most existing PicGo plugins." If you never open your bucket's web console, PicGo is smaller and does one job. If you do open it regularly, the fork is the one that removes the browser tab.

The other alternative is not a tool but an approach: a shell script or a small CLI calling the storage provider's SDK directly. That gives you full control and no GUI dependency, and it composes into CI. What it does not give you is the image tooling PicList ships, specifically watermarking, compression, scaling, rotation and format conversion, configurable per image bed. Reimplementing per-bed transforms in a script is possible but it is work you would be doing instead of writing. The trade is GUI convenience against scriptability, and PicList sits firmly on the GUI side.

## Licence, maintenance and what an upgrade costs

PicList is MIT licensed, and the LICENSE file sits at the repository root. That is permissive: you can use, modify and redistribute it, including in commercial settings, provided the copyright notice and licence text are preserved. Nothing in the repository suggests a separate commercial tier or a licence change, but this is a description of the licence file, not legal advice.

On maintenance, the last push to the dev branch was on 2026-09-23, so the project is being worked on now. The release cadence is roughly one minor version every one to three months: v3.3.2 on 2026-02-11, v3.4.0 on 2026-05-13, v3.5.0 on 2026-06-14. There is a CHANGELOG.md and a currentVersion.md at the repository root, which is where the upgrade notes live.

Upgrade cost depends on how you installed it. Package manager installs, winget, Homebrew and Scoop, are a single command each. Docker users pull a new tag and restart the container, keeping the mounted configuration directory. The risk in both cases is the same: the README does not document a downgrade path, and it does not say whether configuration written by a newer version stays readable by an older one. If you run the Docker server in front of a team, pin the image tag rather than tracking latest, and read the changelog before moving the tag.

## Conclusion

Adopt PicList if you already use PicGo and keep losing track of images once they land in a bucket, or if you want one desktop app to upload, rename and delete across S3, Aliyun OSS, Tencent COS, WebDAV, SFTP and GitHub. Skip it if you only need a headless upload endpoint on a server with no desktop session, or if you want a tool with a documented rollback path for configuration changes. Before installing, check the release page for the current v3.5.0 assets and confirm your storage provider appears in the supported platforms table with the Cloud Management column marked.

## FAQ

### What is PicList and how does it differ from PicGo?

PicList is an Electron image upload and cloud storage management tool built on PicGo. According to the README it keeps all PicGo features and adds cloud file browsing, search, deletion, batch rename, built-in image tools and a scripting system.

### How do I install PicList on Windows or macOS?

The README lists winget install Kuingsmile.PicList for Windows and brew install piclist --cask for macOS, with a Scoop bucket and direct .exe or .dmg downloads as alternatives.

### Can I run PicList with Docker?

Yes. The README gives a docker run command that pulls kuingsmile/piclist:latest, maps port 36677, mounts ./piclist to /root/.piclist, and starts node /usr/local/bin/picgo-server with a server key.

### Which storage providers does PicList support?

The README table lists AWS S3 and compatible services, Aliyun OSS, Tencent COS, GitHub and Gitee, S.EE and Imgur, WebDAV and SFTP, and the local file system as supporting both Album Delete and Cloud Management. Lsky Pro and Doge Cloud are listed but their capability row is truncated in the README.

### Does PicList work with Typora and Obsidian?

The README documents both. Typora 1.6.0 and later selects PicList directly in image settings, while older versions point the PicGo(app) path at the PicList executable. Obsidian uses the Image Auto Upload Plugin with the API endpoint http://127.0.0.1:36677/upload.

## Sources

- [Kuingsmile/PicList on GitHub](https://github.com/Kuingsmile/PicList)
- [License: MIT](https://github.com/Kuingsmile/PicList/blob/dev/LICENSE)
- [Project website](https://piclist.cn)
- [README](https://github.com/Kuingsmile/PicList/blob/dev/README.md)
- [Releases](https://github.com/Kuingsmile/PicList/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kuingsmile-piclist
