manage-extensions Guide Skill
This skill allows Tars to manage Gemini CLI extensions — listing, enabling, disabling, and installing them.
How It Works
Extensions are managed via the gemini extensions CLI commands. Because Tars spawns a fresh gemini chat process for each interaction, any changes made during one message take effect on the next message automatically.
Extension enablement state is persisted in:
~/.tars/.gemini/extensions/extension-enablement.json
Commands
All commands below should be executed via run_shell_command. The GEMINI_CLI_HOME environment variable is already set in your shell environment.
List Extensions
gemini extensions list
Shows all installed extensions, their enabled/disabled state, and their MCP servers.
Disable an Extension
gemini extensions disable <name>
Disables the extension for the current user scope. It will no longer load on the next interaction.
- •
--scope user— Disable for the user (default). - •
--scope workspace— Disable only for the current project.
Enable an Extension
gemini extensions enable <name>
Re-enables a previously disabled extension.
Install an Extension
gemini extensions install <path-or-url>
Installs a new extension from a local directory or remote URL.
Link an Extension (Development)
gemini extensions link <path>
Creates a symlink to a local extension directory. Changes to the source are reflected immediately without reinstalling.
Important Notes
- •Changes are deferred: Enable/disable only takes effect on the next
gemini chatinvocation. Since Tars spawns a fresh process per Discord message, changes apply on the next message. - •State file: The enablement state is stored in
extension-enablement.json, not insettings.json. - •Scope: Use
--scope workspaceif you only want to toggle an extension for a specific project context. - •Discovery: If an extension's MCP server fails to connect at startup, it will show an error in the logs but won't crash the session.