{"id":31830780,"url":"https://github.com/gemini-cli-extensions/flutter","last_synced_at":"2026-01-18T03:06:45.002Z","repository":{"id":317253640,"uuid":"1057384200","full_name":"gemini-cli-extensions/flutter","owner":"gemini-cli-extensions","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-07T00:49:18.000Z","size":188,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-07T02:47:40.337Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gemini-cli-extensions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-15T16:47:16.000Z","updated_at":"2025-10-07T01:39:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"93455f03-f679-488c-b822-5ae2e0e5edc3","html_url":"https://github.com/gemini-cli-extensions/flutter","commit_stats":null,"previous_names":["gemini-cli-extensions/flutter"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/gemini-cli-extensions/flutter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemini-cli-extensions%2Fflutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemini-cli-extensions%2Fflutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemini-cli-extensions%2Fflutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemini-cli-extensions%2Fflutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gemini-cli-extensions","download_url":"https://codeload.github.com/gemini-cli-extensions/flutter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemini-cli-extensions%2Fflutter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008850,"owners_count":26084516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-11T21:26:06.565Z","updated_at":"2026-01-18T03:06:44.987Z","avatar_url":"https://github.com/gemini-cli-extensions.png","language":"Dart","funding_links":[],"categories":["Development","Development and DevOps"],"sub_categories":[],"readme":"# Flutter extension for Gemini CLI\n\nHelp Gemini CLI create, build, test, and run Flutter apps.\n\n- **Status: Experimental** - This is an experimental project. Features and commands may change drastically. We welcome your feedback!\n\n## ✨ Features\n\n- **🚀 Project Bootstrapping**: Create new Flutter projects from scratch with built-in best practices, including linters, documentation, and design planning.\n- **🔧 Guided Modifications**: Execute complex modification tasks with automated planning, git branch management, and step-by-step implementation guides for your approval.\n- **✅ Automated Pre-Commit Checks**: Automatically format, analyze, and test your code before committing to maintain codebase quality.\n- **✍️ Smart Commit Messaging**: Generate descriptive, conventional commit messages based on your staged changes.\n- **🧠 Context Priming**: Initializes Gemini with specific rules and context for Dart and Flutter, ensuring high-quality, idiomatic code generation.\n\n## 📋 Prerequisites\n\n1.  **Gemini CLI 0.4.0+** installed and configured.\n2.  **Flutter \u0026 Dart SDK** installed on your system.\n3.  **Git** installed and available in your PATH.\n\n## 🚀 Installation\n\n### 1. Install from GitHub\n\nUse the `gemini extensions install` terminal command to install directly from the source repository:\n\n```bash\ngemini extensions install https://github.com/gemini-cli-extensions/flutter.git --auto-update\n```\n\nThe `--auto-update` is optional: if specified, it will update to new versions as they are released.\n\nYou can manage the extension with the following commands:\n\n- Update to the latest version.\n\n  ```bash\n  gemini extensions update flutter\n  ```\n\n- Uninstall the extension.\n\n  ```bash\n  gemini extensions uninstall flutter\n  ```\n\n**Note for Windows users:** There is currently a [known issue](https://github.com/google-gemini/gemini-cli/issues/10616) with installing extensions on Gemini CLI for Windows. The workaround is as follows:\n\n1. Follow instructions above to attempt to install the plugin (this will fail).\n\n   ```bash\n       gemini extensions install https://github.com/gemini-cli-extensions/flutter.git\n   ```\n\n2. In the command line, navigate to the folder in the home user's path where the code was downloaded (USER is the user's username)\n\n   ```bash\n       cd %TEMP%\n   ```\n\n3. Locate the folder for the downloaded extension. It will be the latest titled `gemini-extension\u003chash\u003e` where `\u003chash\u003e` is a 6 character string. Change into this directory.\n\n   ```bash\n       cd gemini-extension123456\n   ```\n\n4. There should be a zip file in this folder called \"win32.flutter.zip\". Unpack this file using `tar` (available in modern Windows versions) or by right-clicking it in File Explorer and selecting \"Extract All...\".\n\n   ```bash\n       tar xvf win32.flutter.zip\n   ```\n\n5. Use the path flag to gemini installation\n\n   ```bash\n       gemini extensions install --path %TEMP%\\gemini-extension123456\n   ```\n\n### 2. Available Commands\n\nThe new commands will be available in new Gemini CLI sessions. The following commands will be available (with or without the `flutter:` prefix):\n\n- `/create-app` - Guides you through bootstrapping a new Flutter project with best practices.\n- `/create-package` - Guides you through bootstrapping a new Dart package with best practices.\n- `/modify` - Manages a structured modification session with automated planning.\n- `/commit` - Automates pre-commit checks and generates a descriptive commit message.\n\n## 💡 Usage\n\nThis extension provides powerful commands to automate key phases of the development lifecycle.\n\n### `/create-app`\n\nInitiates a guided process to bootstrap a new Flutter application, ensuring your project starts with a solid foundation.\n\n**Process:**\n\n1.  Asks for the package's purpose, details, and desired location on your filesystem.\n2.  Creates a new Flutter project with recommended settings and linter rules.\n3.  Generates starter `pubspec.yaml`, `README.md`, and `CHANGELOG.md` files.\n4.  Produces a `DESIGN.md` and `IMPLEMENTATION.md` for your review and approval before any code is written.\n\n```bash\n/create-app I want to create a trip planning app\n```\n\n### `/modify`\n\nStarts a structured session to modify existing code. It helps you plan and execute changes safely and efficiently.\n\n**Process:**\n\n1.  Asks for your high-level modification goals and what you want to accomplish.\n2.  Offers to create a new `git` branch for the modification work, isolating changes.\n3.  Generates a `MODIFICATION_DESIGN.md` design document detailing the proposed changes.\n4.  Creates a phased `MODIFICATION_IMPLEMENTATION.md` plan for your review and approval.\n\n```bash\n/modify\n```\n\n### `/commit`\n\nPrepares your staged `git` changes for a clean, high-quality commit. It acts as an automated pre-commit hook and message generator.\n\n**Process:**\n\n1.  Runs `dart fix` and `dart format` to clean and format your code.\n2.  Executes the Dart analyzer to check for static analysis issues.\n3.  Runs your project's test suite to ensure all tests are passing.\n4.  Generates a descriptive commit message based on the staged changes for you to review, edit, and approve.\n\n```bash\n/commit\n```\n\n## ⚙️ Coding Guidelines\n\nThis extension enforces a specific set of coding standards to ensure consistency and quality. These rules are defined in the extension's repository:\n\n- **`flutter.md`**: Contains rules and best practices for writing Dart and Flutter code. These rules are opinionated, and we encourage you to review them to ensure they align with your style.\n\n## Connecting to a running app\n\nYou can connect to an app by providing the Flutter extension with the URL for\nthe Dart Tooling Daemon:\n\n1. **Run the app**: in VSCode on a target device (iOS, Android, macOS, or web)\n2. **Execute the Copy DTD Uri action**: Open the VSCode Command Runner\n   (Cmd+Shift+P, or Ctrl+Shift+P) and type \"Copy DTD Uri to Clipboard\" to copy the\n   DTD URL to your clipboard\n3. **Paste the URL into Gemini CLI**: Enter a prompt like \"Connect to the\n   Flutter app with this DTD URL: \" and paste the URL from your clipboard. You\n   should see a \"Connection succeeded\" message from the\n   connect_dart_tooling_daemon MCP tool.\n\nAlternatively, you can run from the command line with the `--print-dtd` flag:\n\n```bash\n$ flutter run --print-dtd\n...\nThe Dart Tooling Daemon is available at: ws://127.0.0.1:52636/M3G9d1Q3hFk=\n```\n\nTo learn more about the Dart and Flutter MCP server, see the\n[Dart and Flutter MCP server](https://dart.dev/tools/mcp-server)\npage on dart.dev or the\n[dart_mcp_server README](https://github.com/dart-lang/ai/tree/main/pkgs/dart_mcp_server).\n\n## Known issues\n\n- Running a Flutter app from within Gemini CLI and then triggering a Hot Reload\n  does not work in Flutter stable \u003c= 3.37.0.\n  Tracking issue: [gemini-cli-extensions/flutter#15](https://github.com/gemini-cli-extensions/flutter/issues/15)\n\n## 🐛 Troubleshooting\n\n### Common Issues\n\n1.  **\"Command not recognized\"**: Ensure the extension is installed correctly and you have restarted the Gemini CLI. Verify the installation with `gemini extensions list`.\n\n2.  **\"Gemini CLI version error\"**: This extension requires Gemini CLI version 0.4.0 or greater. Check your version with `gemini --version` and update if necessary.\n\n3.  **\"[WARN] Skipping extension MCP config for server with key \"dart\" as it already exists.\"**:\n    This warning appears if you have manually configured the Dart MCP server in your `.gemini/settings.json` file.\n    Since this extension manages the Dart MCP server, you can safely remove your manual configuration to resolve the warning.\n\n### Filing Issues\n\nIf you have feedback, suggestions, or run into issues, please [file an issue on GitHub](https://github.com/gemini-cli-extensions/flutter/issues/new/choose).\n\n## 🤝 Contributing\n\nContributions are welcome! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) guide for more details on how to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemini-cli-extensions%2Fflutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgemini-cli-extensions%2Fflutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemini-cli-extensions%2Fflutter/lists"}