A Claude Code skill for browsing everything you've generated with the ccskill series in one place. ccskill-gallery is a read-only, cross-skill local gallery web app: as of July 2026, it aggregates the gallery of ccskill-nanobanana (and any future skill that follows the shared store spec) into a single page, without moving or copying a single file.
(Must be on a version from 2026-07-12 or later.)
-
Read-only aggregator: this skill never generates an image or video itself; it only browses what the sister skills have already produced
-
Auto-discovery: finds every
~/.ccskill-<name>/gallery/store on your machine and serves it from where it already sits — no migration step -
One-command install: clone →
./install.sh→ done -
Works everywhere: registers a user-level Claude Code skill and a
ccskill-galleryCLI available from any project -
Mixed image/video grid: hover-to-play video previews, a skill filter, and a skill badge on every card

-
Detail viewer: full metadata, prompt copy, a ready-to-run re-generation command, and download

-
Group images into folders
-
Keyboard navigation (←/→/Esc) and state restore across reloads
-
Zero dependencies: Python 3.9+ standard library only — no venv, no npm, no API key
- Python 3.9+
- macOS
- No API key — ccskill-gallery never calls a generation API, it only reads stores that already exist on disk
# 1. Clone
git clone git@github.com:feedtailor/ccskill-gallery.git
cd ccskill-gallery
# 2. Install
./install.shinstall.sh checks your Python environment, then installs the
ccskill-gallery command into ~/.local/bin and registers the user-level
Claude Code skill.
The command below starts the gallery web app.
ccskill-gallery browse # start the server and open http://127.0.0.1:8770/You can also pass options:
ccskill-gallery browse --port 9000 # use a different port
ccskill-gallery browse --bind 0.0.0.0 # for remote-dev: view from another machine
ccskill-gallery browse --no-open # start the server without opening a browser
ccskill-gallery serve # run the same server in the foreground, never opens a browser| Option | Description | Default |
|---|---|---|
--port |
Port to listen on | 8770 |
--bind |
Address to bind to | 127.0.0.1 |
--no-open |
Don't open a browser automatically | off |
ccskill-gallery is a small bash dispatcher plus a Python standard-library
HTTP server (with Range support for video seeking) and a vanilla-JS static
frontend — no database, no framework, no npm dependency. It never writes
into a skill's store: it reads each store's index.json (rebuilding it in
memory from sidecar files if the manifest is missing or corrupt) and serves
media files directly from the store's own directory.
The full contract between ccskill-gallery and the skills it aggregates is documented in docs/store-spec.md (日本語版).
| Skill | Store | Status |
|---|---|---|
| ccskill-nanobanana | ~/.ccskill-nanobanana/gallery/ |
supported |
| ccskill-omniflash | ~/.ccskill-omniflash/gallery/ |
supported |
| ccskill-gptimage | ~/.ccskill-gptimage/gallery/ |
adopting the spec |
Any media-generation skill that follows docs/store-spec.md
shows up automatically — no code change in ccskill-gallery is needed. In
short: write each generated file plus a JSON sidecar into
~/.ccskill-<name>/gallery/<subdir>/, append the entry to
gallery/index.json, and keep index.json rebuildable from the sidecars
alone. See the spec for the full checklist.
cd /path/to/ccskill-gallery && git pullSymlinks pick up the update immediately; no re-install needed.
ccskill-gallery uninstallImages generated by the ccskill series skills are never removed.
MIT