-
Notifications
You must be signed in to change notification settings - Fork 9
Gemini Migration Guide
Version: Skilz 1.10.0 (Guide covers features introduced in 1.7.0) Date: January 2026
Skilz 1.7.0 introduces native support for Gemini CLI's .gemini/skills/ directory. This guide helps you choose the right installation method and migrate existing installations if needed.
Use this if you have:
- Gemini CLI with
experimental.skillsplugin enabled
Benefits:
- Skills install directly to
.gemini/skills/(native location) - No config file needed - Gemini reads the directory natively
- Cleaner project structure
- Faster skill loading
Command:
skilz install <skill-name> --agent gemini --projectWhat happens:
- Skill installs to:
.gemini/skills/<skill-name>/ - Config file: None (not needed)
- Gemini reads skills automatically from the directory
Use this if you:
- Don't have the
experimental.skillsplugin - Use an older version of Gemini CLI
- Prefer explicit config file management
Benefits:
- Works with any version of Gemini CLI
- Skills listed explicitly in GEMINI.md
- Compatible with multi-agent projects
Command:
skilz install <skill-name> --agent universal --project --config GEMINI.mdWhat happens:
- Skill installs to:
.skilz/skills/<skill-name>/ - Config file:
GEMINI.md(created/updated) - You reference the config file in your Gemini prompts
gemini --versionIf you see version 0.5.0 or higher, you likely have native support available.
# Check Gemini's configuration
cat ~/.gemini/settings.json | grep experimentalIf you see "experimental.skills": true, native support is enabled.
# Try installing with native support
skilz install anthropics_skills/algorithmic-art --agent gemini --project
# Check if directory was created
ls -la .gemini/skills/If .gemini/skills/algorithmic-art/ exists, native support is working.
Before (Universal Mode):
project/
├── .skilz/
│ └── skills/
│ └── pdf-reader/
└── GEMINI.md ← Config file with skill reference
After (Native Mode):
project/
└── .gemini/
└── skills/
└── pdf-reader/ ← Direct native location
Migration Steps:
-
Check if native support is available (see above)
-
Remove old installation:
skilz rm pdf-reader --agent universal --project -y
-
Reinstall with native support:
skilz install <skill-id> --agent gemini --project
-
Clean up config file (optional):
rm GEMINI.md # Only if no other skills use it -
Verify installation:
skilz list --agent gemini --project
If you prefer to keep using universal mode (or can't use native support), no migration is needed. Your existing installations will continue to work.
To install new skills:
skilz install <skill-id> --agent universal --project --config GEMINI.mdYou can use different modes for different projects:
Project A (Native):
cd project-a
skilz install pdf-reader --agent gemini --project
# → Uses .gemini/skills/Project B (Universal):
cd project-b
skilz install pdf-reader --agent universal --project --config GEMINI.md
# → Uses .skilz/skills/ + GEMINI.md# Navigate to your project
cd ~/my-project
# Install with native Gemini support
skilz install anthropics_skills/pdf-reader --agent gemini --project
# Verify installation
ls -la .gemini/skills/pdf-reader/
# List installed skills
skilz list --agent gemini --projectOutput:
Skill Version Installed Status
──────────────────────────────────────────────────────────────────
anthropics_skills/pdf-reader abc123 2026-01-08 up-to-date
Directory structure:
my-project/
└── .gemini/
└── skills/
└── pdf-reader/
├── SKILL.md
├── .skilz-manifest.yaml
└── ... (skill files)
# Navigate to your project
cd ~/my-project
# Install with universal agent + GEMINI.md
skilz install anthropics_skills/excel --agent universal --project --config GEMINI.md
# Verify installation
ls -la .skilz/skills/excel/
cat GEMINI.md # View the generated config
# List installed skills
skilz list --agent universal --projectOutput:
Skill Version Installed Status
────────────────────────────────────────────────────────────────
anthropics_skills/excel def456 2026-01-08 up-to-date
Directory structure:
my-project/
├── .skilz/
│ └── skills/
│ └── excel/
│ ├── SKILL.md
│ ├── .skilz-manifest.yaml
│ └── ... (skill files)
└── GEMINI.md ← Config file with skill reference
GEMINI.md contents:
# GEMINI.md
## Available Skills
<!-- SKILLS_TABLE_START -->
<available_skills>
<skill>
<name>excel</name>
<description>Work with Excel spreadsheets</description>
<invocation>skilz read excel</invocation>
</skill>
</available_skills>
<!-- SKILLS_TABLE_END -->Native mode (multiple skills):
skilz install anthropics_skills/pdf-reader --agent gemini --project
skilz install anthropics_skills/excel --agent gemini --project
skilz install anthropics_skills/docx --agent gemini --project
# All skills in .gemini/skills/
ls -la .gemini/skills/
# pdf-reader/ excel/ docx/Legacy mode (multiple skills):
skilz install anthropics_skills/pdf-reader --agent universal --project --config GEMINI.md
skilz install anthropics_skills/excel --agent universal --project --config GEMINI.md
skilz install anthropics_skills/docx --agent universal --project --config GEMINI.md
# All skills in .skilz/skills/, all referenced in GEMINI.md
ls -la .skilz/skills/
# pdf-reader/ excel/ docx/
cat GEMINI.md # Shows all 3 skillsError:
Error: Agent 'gemini' does not support home-level installations
Solution: Add the --project flag:
skilz install <skill-name> --agent gemini --projectFor Native Mode:
-
Check if experimental.skills is enabled:
cat ~/.gemini/settings.json | grep experimental
-
Verify skills are in correct location:
ls -la .gemini/skills/
-
Try restarting Gemini CLI:
# Exit and restart Gemini
For Legacy Mode:
-
Check if GEMINI.md exists:
cat GEMINI.md
-
Manually load skills in your prompts:
Use the skills defined in GEMINI.md
Error:
GEMINI.md not created after installation
Solution: Make sure you're using the --config flag:
skilz install <skill-name> --agent universal --project --config GEMINI.md
# ^^^^^^ Must include thisIf you accidentally installed some skills with native mode and others with legacy mode:
Check which mode each skill uses:
# Native skills
ls -la .gemini/skills/
# Universal/legacy skills
ls -la .skilz/skills/Standardize on one mode:
Option A: Move to native (recommended):
# Remove universal installations
skilz rm <skill-name> --agent universal --project -y
# Reinstall with native
skilz install <skill-id> --agent gemini --projectOption B: Move to universal:
# Remove native installations
skilz rm <skill-name> --agent gemini --project -y
# Reinstall with universal
skilz install <skill-id> --agent universal --project --config GEMINI.mdA: Native mode is recommended if you have experimental.skills enabled. It's cleaner, faster, and follows Gemini's intended architecture.
A: Technically yes, but it's not recommended. Choose one mode to avoid confusion.
A: No. Existing installations continue to work. You only get native support if you explicitly use --agent gemini.
A: Check Gemini CLI's documentation:
gemini config set experimental.skills true(Note: Exact command may vary by Gemini version)
A: Yes. Just uninstall and reinstall with the desired mode (see migration steps above).
A: Yes! In Skilz 1.7.0, Gemini supports both:
- Project-level:
.gemini/skills/ - User-level:
~/.gemini/skills/
# User-level native install (NEW in 1.7.0)
skilz install <skill-name> --agent gemini| Feature | Native Mode | Legacy/Universal Mode |
|---|---|---|
| Requires | experimental.skills plugin | Any Gemini version |
| Install location | .gemini/skills/ |
.skilz/skills/ |
| Config file | None | GEMINI.md |
| Performance | Faster (direct read) | Slightly slower (config parse) |
| Recommended for | New projects | Older Gemini versions |
| User-level support | ✅ Yes (NEW in 1.7) | ✅ Yes |
| Project-level support | ✅ Yes | ✅ Yes |
- Determine which mode you need (native vs legacy)
- Test with one skill before migrating all skills
- Update your project documentation to reflect the chosen mode
-
Consider setting a default agent in
.skilz/config.yaml:
default_agent: gemini # For native mode projects
# OR
default_agent: universal # For legacy mode projectsFor more information, see:
Need help? Open an issue on GitHub.