扩展系统
构建和分享扩展来扩展 Gemini CLI 的功能。为社区创建工具、命令、主题和集成。
扩展类型
您可以创建的不同类型的扩展
工具扩展
添加新的工具和功能
示例:
- 数据库连接器
- API 集成
- 文件处理器
- 数据分析器
命令扩展
添加新的 CLI 命令
示例:
- 项目生成器
- 部署脚本
- 测试工具
- 代码格式化器
主题扩展
自定义 CLI 外观
示例:
- 配色方案
- 输出格式
- 进度指示器
- 自定义提示
集成扩展
连接外部服务
示例:
- GitHub 集成
- Slack 通知
- 邮件提醒
- 云存储
扩展结构
如何组织您的扩展文件
目录结构
my-extension/
├── package.json # Extension metadata
├── index.js # Main entry point
├── tools/ # Custom tools
│ ├── my-tool.js
│ └── another-tool.js
├── commands/ # Custom commands
│ └── my-command.js
├── themes/ # Custom themes
│ └── my-theme.json
├── README.md # Documentation
└── tests/ # Test files
└── extension.test.js
package.json 示例
{
"name": "gemini-cli-my-extension",
"version": "1.0.0",
"description": "My awesome Gemini CLI extension",
"main": "index.js",
"keywords": ["gemini-cli", "extension", "tools"],
"author": "Your Name",
"license": "MIT",
"gemini-cli": {
"version": "^2.0.0",
"type": "extension",
"tools": ["./tools/my-tool.js"],
"commands": ["./commands/my-command.js"],
"themes": ["./themes/my-theme.json"]
},
"dependencies": {
"@google/generative-ai-cli": "^2.0.0"
}
}
开发步骤
创建扩展的分步指南
1
创建扩展
初始化新的扩展项目
命令:
mkdir my-extension
cd my-extension
npm init -y
npm install @google/generative-ai-cli
2
开发功能
实现工具、命令或主题
命令:
mkdir tools commands themes
touch tools/my-tool.js
touch commands/my-command.js
touch themes/my-theme.json
3
测试扩展
本地测试您的扩展
命令:
gemini extension link .
gemini extension list
gemini my-command --help
4
发布扩展
将扩展发布到 npm
命令:
npm test
npm version patch
npm publish
扩展管理
管理扩展的命令
安装命令
gemini extension install <name>
从 npm 安装扩展
gemini extension load <path>
加载本地扩展
gemini extension uninstall <name>
移除扩展
管理命令
gemini extension list
列出已安装的扩展
gemini extension info <name>
显示扩展详情
gemini extension search <query>
搜索扩展
最佳实践
创建高质量扩展的指导原则
开发
- 遵循单一职责原则
- 提供清晰的文档
- 包含全面的测试
- 使用语义化版本控制
性能
- 最小化启动时间
- 避免阻塞操作
- 实现延迟加载
- 优化内存使用
兼容性
- 支持多个 CLI 版本
- 处理向后兼容性
- 测试不同环境
- 提供迁移指南
发布
- 使用描述性包名
- 包含相关关键词
- 提供使用示例
- 维护向后兼容性