{"id":11899,"date":"2026-02-17T20:43:03","date_gmt":"2026-02-17T20:43:03","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=11899"},"modified":"2026-02-17T20:43:04","modified_gmt":"2026-02-17T20:43:04","slug":"making-gemini-cli-extensions-simpler-to-make-use-of","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=11899","title":{"rendered":"Making Gemini CLI extensions simpler to make use of"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p><img decoding=\"async\" class=\"banner-image\" src=\"https:\/\/storage.googleapis.com\/gweb-developer-goog-blog-assets\/images\/Gemini_CLI_Extension_settings_hero_image.original.png\" alt=\"Gemini CLI Extension settings hero image\"\/>  <\/p>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"omjfm\">Cease debugging ambiguous startup failures brought on by lacking API keys, hidden setting variables, or a crashing MCP server. AI instruments are best once they&#8217;re tailor-made to your particular setting and information however handbook configuration is usually brittle and complicated. For this reason we&#8217;re launching <b>extension settings<\/b>. Gemini CLI extensions can now outline settings that the person will probably be prompted to offer upon set up, making certain extensions have precisely what they should perform from the second you put in them.<\/p>\n<\/div>\n<div class=\"inner-block-content video-block\">\n<p>        <video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" poster=\"https:\/\/storage.googleapis.com\/gweb-developer-goog-blog-assets\/original_videos\/wagtailvideo-db8z0cod_thumb.jpg\"><source src=\"https:\/\/storage.googleapis.com\/gweb-developer-goog-blog-assets\/original_videos\/extension-install_1.mp4\" type=\"video\/mp4\"><p>Sorry, your browser would not help playback for this video<\/p>\n<p><\/source><\/video><\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<h2 data-block-key=\"b7zuc\" id=\"a-first-class-experience-for-extension-configuration\">A primary-class expertise for extension configuration<\/h2>\n<p data-block-key=\"8lhlj\">Extension settings present a structured method that ensures your expertise is painless and easy. Extension authors can now outline precisely what data their instrument must perform; whether or not it is an API key, a base URL, or a mission identifier. No extra digging by way of README\u2019s or attempting to decode error messages.<\/p>\n<p data-block-key=\"clmtb\">Extension settings present the next advantages:<\/p>\n<ul>\n<li data-block-key=\"b442j\"><b>Automated setup:<\/b> Customers are mechanically prompted to offer settings throughout the set up of an extension.<\/li>\n<li data-block-key=\"ei5i9\"><b>Built-in safety:<\/b> Delicate settings like API keys are mechanically saved within the system keychain quite than plain textual content recordsdata.<\/li>\n<li data-block-key=\"cj97i\"><b>Command-line administration:<\/b> The brand new gemini extensions config command offers a centralized option to view and replace settings.<\/li>\n<li data-block-key=\"44uip\"><b>Scoped overrides:<\/b> Help for each world person and project-specific workspace scopes ensures the proper configuration is utilized in the proper context.<\/li>\n<\/ul>\n<h2 data-block-key=\"btjx3\" id=\"practical-example:-the-alloydb-extension\">Sensible instance: The AlloyDB extension<\/h2>\n<p data-block-key=\"f88b3\">The <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/geminicli.com\/extensions\/?name=gemini-cli-extensionsalloydb\">AlloyDB extension<\/a> is an ideal instance of why structured settings matter. To attach along with your database and work together along with your information, the extension requires a number of items of data: a <i>mission ID<\/i>, <i>area<\/i>, <i>cluster ID<\/i>, <i>occasion ID<\/i>, and <i>database<\/i>.<\/p>\n<p data-block-key=\"735fa\">Up to now, you needed to manually export these as setting variables. Now, the extension defines them in its manifest. If you set up it, Gemini CLI guides you thru the setup:<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-shell\">? Undertaking ID: Your GCP mission ID&#13;\n? Area: us-central1&#13;\n? Cluster ID: my-cluster&#13;\n? Occasion ID: my-primary-instance&#13;\n&#13;\n&#13;\n\u2714 Undertaking ID&#13;\nID of the Google Cloud mission: my-google-cloud-project&#13;\n\u2714 Location&#13;\nArea of the AlloyDB cluster: us-central1&#13;\n\u2714 Cluster ID&#13;\nID of the AlloyDB cluster: my-cluster&#13;\n\u2714 Occasion ID&#13;\nID of the AlloyDB occasion: my-instance&#13;\n\u2714 Database&#13;\nIdentify of the database: postgres&#13;\n\u2714 Consumer&#13;\n(Elective) Username of the database person (Default: IAM person): postgres&#13;\n\u2714 Password&#13;\n(Elective) Password of the database person (Default: IAM person): *****&#13;\n\u2714 IP Sort&#13;\n(Elective) Sort of the IP handle: PUBLIC, PRIVATE, or PSC (Default: Public):&#13;\nExtension \"alloydb\" put in efficiently and enabled.<\/code><\/pre>\n<p>\n        Shell\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"omjfm\">These values are saved securely and supplied to the extension&#8217;s MCP server mechanically, so you can begin querying your information instantly. This setup offers a dependable and safe methodology for database connection. It ensures you&#8217;ve gotten fixed visibility into which database is lively and prevents the agent from altering your configuration.<\/p>\n<p data-block-key=\"7uq8q\">Try these updates for all <b>Information Cloud extensions<\/b>: <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/gemini-cli-extensions\/bigquery-data-analytics\">bigquery-data-analytics<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/gemini-cli-extensions\/cloud-sql-mysql\">cloud-sql-mysql<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/gemini-cli-extensions\/cloud-sql-postgresql\">cloud-sql-postgresql<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/gemini-cli-extensions\/cloud-sql-sqlserver\">cloud-sql-sqlserver<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/gemini-cli-extensions\/firestore-native\">firestore-native<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/gemini-cli-extensions\/looker\">looker<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/gemini-cli-extensions\/spanner\">spanner<\/a>.<\/p>\n<h2 data-block-key=\"vrhyo\" id=\"how-to-define-settings-as-an-author\">Learn how to outline settings as an creator<\/h2>\n<p data-block-key=\"br0qq\">So as to add configuration to your extension, embody a settings array in your gemini-extension.json file. Every setting specifies a user-friendly title, an outline, and the setting variable it must be mapped to.<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-json\">{&#13;\n  \"title\": \"my-cool-extension\",&#13;\n  \"model\": \"1.0.0\",&#13;\n  \"settings\": [&#13;\n    {&#13;\n      \"name\": \"API Key\",&#13;\n      \"description\": \"Your secret API key for the service.\",&#13;\n      \"envVar\": \"MY_API_KEY\",&#13;\n      \"sensitive\": true&#13;\n    },&#13;\n    {&#13;\n      \"name\": \"Endpoint URL\",&#13;\n      \"description\": \"The base URL for the API service.\",&#13;\n      \"envVar\": \"API_ENDPOINT\"&#13;\n    }&#13;\n  ]&#13;\n}<\/code><\/pre>\n<p>\n        JSON\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"omjfm\">When a person installs this extension, Gemini CLI guides them by way of the setup course of. If a setting is marked as delicate, the enter is obfuscated throughout entry and saved securely within the system keychain.<\/p>\n<h2 data-block-key=\"ax5ow\" id=\"managing-settings-with-the-config-command\">Managing settings with the config command<\/h2>\n<p data-block-key=\"br0at\">The gemini extensions config command is your major instrument for managing extension configuration after set up. Use it to replace settings interactively or goal particular values instantly.<\/p>\n<h3 data-block-key=\"9qvac\" id=\"update-all-settings-for-an-extension\">Replace all settings for an extension<\/h3>\n<p data-block-key=\"55dmp\">To stroll by way of each setting outlined by an extension, run:<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-shell\">gemini extensions config <extension-name\/><\/code><\/pre>\n<p>\n        Shell\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<h3 data-block-key=\"2bqr2\" id=\"update-a-specific-setting\">Replace a selected setting<\/h3>\n<p data-block-key=\"6ubps\">If  precisely which worth wants to alter, specify the setting variable title:<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-shell\">gemini extensions config <extension-name> <env-var-name\/><\/extension-name><\/code><\/pre>\n<p>\n        Shell\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<h3 data-block-key=\"klizw\" id=\"use-workspace-overrides\">Use workspace overrides<\/h3>\n<p data-block-key=\"5vg5r\">For settings that adjust between initiatives, use the &#8211;scope workspace flag to save lots of the worth in your present listing&#8217;s configuration quite than globally:<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-shell\">gemini extensions config alloydb ALLOYDB_POSTGRES_CLUSTER --scope workspace<\/code><\/pre>\n<p>\n        Shell\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<h2 data-block-key=\"gtc0j\" id=\"debugging-the-configuration\">Debugging the configuration<\/h2>\n<p data-block-key=\"2gql2\">When troubleshooting points with extensions, it&#8217;s typically useful to confirm that every one configuration settings are appropriate. A easy typo in a <i>mission ID<\/i> or a <i>lacking API key<\/i> can forestall an extension from functioning correctly.<\/p>\n<p data-block-key=\"111gu\">You may examine the presently put in extensions and their lively settings utilizing the extensions listing command. This performance is accessible by way of the <b>command line<\/b> and as a <b>built-in command<\/b>. Each will output a abstract of your put in extensions, their model standing, and their present configuration.<\/p>\n<p data-block-key=\"csa9k\">Command Line<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-shell\">gemini extensions listing&#13;\n&#13;\n# \u2713 alloydb (0.1.10)&#13;\n#  Supply: https:\/\/github.com\/gemini-cli-extensions\/alloydb (Sort: github-release)&#13;\n#  Launch tag: 0.1.10&#13;\n# ...&#13;\n#  Settings:&#13;\n#   Undertaking ID: my-gcp-project&#13;\n#   Location: us-central1&#13;\n#   Cluster ID: my-alloy-db&#13;\n#   Occasion ID: my-primary&#13;\n#   Database: postgres&#13;\n#   Consumer: postgres&#13;\n#   Password: *****&#13;\n#   IP Sort: public<\/code><\/pre>\n<p>\n        Shell\n    <\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-shell\">\/extensions listing&#13;\n&#13;\n# Put in extensions:&#13;\n#   alloydb (v0.1.10) - lively (updated)&#13;\n#     settings:&#13;\n#     - Undertaking ID: my-gcp-project&#13;\n#     - Location: us-central1&#13;\n#     - Cluster ID: my-alloy-db&#13;\n#     - Occasion ID: my-primary&#13;\n#     - Database: postgres&#13;\n#     - Consumer: postgres&#13;\n#     - Password: ****&#13;\n#     - IP Sort: public<\/code><\/pre>\n<p>\n        Shell\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<h2 data-block-key=\"u0lkv\" id=\"best-practices-for-extension-settings\">Finest practices for extension settings<\/h2>\n<ul>\n<li data-block-key=\"3s7ov\"><b>Present clear descriptions:<\/b> Assist customers perceive precisely the place to seek out the values they want (e.g., &#8220;Discover this in your GCP Console underneath IAM&#8221;).<\/li>\n<li data-block-key=\"305u1\"><b>Use delicate for secrets and techniques:<\/b> All the time set &#8220;delicate&#8221;: true for API keys, passwords, or any information that shouldn&#8217;t be saved in plain textual content.<\/li>\n<li data-block-key=\"aib46\"><b>Hold names concise:<\/b> Use quick, user-friendly names that match properly inside terminal prompts.<\/li>\n<li data-block-key=\"9di1v\"><b>Leverage workspace scope:<\/b> Use workspace-scoped settings for project- particular IDs to forestall world configuration air pollution.<\/li>\n<\/ul>\n<h2 data-block-key=\"wsxzt\" id=\"get-started-today\">Get began at the moment<\/h2>\n<p data-block-key=\"e6ujo\">Extension settings and the gemini extensions config command can be found as of <b>v0.28.0<\/b>+. Replace to the most recent model by working:<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-shell\">npm set up -g @google\/gemini-cli@newest<\/code><\/pre>\n<p>\n        Shell\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"zeqkj\">Try our up to date documentation to study extra:<\/p>\n<p data-block-key=\"34d5r\">Check out extension settings at the moment when constructing Gemini CLI extensions and if you happen to run into any points tell us on our <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/google-gemini\/gemini-cli\">GitHub repository<\/a> or on socials!<\/p>\n<p data-block-key=\"50jkb\">It&#8217;s also possible to observe <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/x.com\/geminicli\">Gemini CLI on X<\/a> to remain updated with the most recent information and bulletins.<\/p>\n<\/div><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Cease debugging ambiguous startup failures brought on by lacking API keys, hidden setting variables, or a crashing MCP server. AI instruments are best once they&#8217;re tailor-made to your particular setting and information however handbook configuration is usually brittle and complicated. For this reason we&#8217;re launching extension settings. Gemini CLI extensions can now outline settings that [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":11901,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[1355,4443,215,295,1625],"class_list":["post-11899","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-cli","tag-easier","tag-extensions","tag-gemini","tag-making"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/11899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11899"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/11899\/revisions"}],"predecessor-version":[{"id":11900,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/11899\/revisions\/11900"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/11901"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69c6f7b5190636d50e9f6768. Config Timestamp: 2026-03-27 21:33:41 UTC, Cached Timestamp: 2026-04-06 02:43:21 UTC -->