GC-301b · Module 1
Distribution Channels
3 min read
Extensions can be distributed through three channels: the public Extensions Gallery (geminicli.com), private npm registries, and direct git repository installs. The Gallery is the default discovery mechanism — gemini extensions install name resolves from the Gallery first. For internal tools that should not be public, private npm registries (npm Enterprise, GitHub Packages, Artifactory) provide authenticated distribution. Git installs (gemini extensions install github:org/repo) work for development and small teams.
Each channel has tradeoffs. The Gallery provides discoverability, user reviews, and automatic update notifications, but requires a public publish and review process. Private registries provide access control and audit logs, but no public discoverability. Git installs are the fastest to set up but lack versioning, update notifications, and any form of review. For teams building internal extensions, the recommendation is: develop with git installs, distribute via private registry, and publish to the Gallery only for open-source tools.
# Public Gallery install (default)
gemini extensions install firebase
# Private registry install
npm config set @myorg:registry https://npm.myorg.com
gemini extensions install @myorg/internal-tools
# Git repository install (development)
gemini extensions install github:myorg/my-extension
gemini extensions install github:myorg/my-extension#feature-branch
# Local development install
gemini extensions install /path/to/local/extension
Do This
- Use the Gallery for open-source extensions — it provides discoverability and trust signals
- Use private registries for internal team tools — they provide access control and versioning
- Use local installs during development — symlinks mean zero reinstall overhead
Avoid This
- Distribute internal extensions through the public Gallery — even if they are not sensitive, they add noise
- Use git installs for production distribution — no versioning, no update notifications, no audit trail
- Skip the Gallery entirely for public tools — you miss discoverability and community feedback