Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>Flutter Project SettingsNew to Visual Studio Code? Get it now.
Flutter Project Settings

Flutter Project Settings

hoony5

| (0) | Free
Centralized Flutter project settings — permissions, env, assets, routing, codegen in one sidebar. Inspired by Unity Project Settings.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Flutter Project Settings

One sidebar. Every platform setting. Inspired by Unity's Project Settings window — where Player Settings, Quality, Input, and Physics all live in one place — this extension does the same for Flutter. No more jumping between Xcode, Android Studio, and hand-editing Info.plist.

Permissions, environment files, assets, routing, dependencies, code generation — all managed from a single centralized panel in your editor. Change a permission toggle, and the extension writes the correct entry to Info.plist, AndroidManifest.xml, or .entitlements for you.

Works with any Flutter project. No template lock-in. If you've got a pubspec.yaml, you're good.

License Tests VSCode


What you get

Permissions, finally manageable

40+ permissions organized by category — Camera, Location, Bluetooth, Notifications, you name it. Each one shows which platforms it applies to, what SDK version you need, and links straight to the official docs.

The cool part? It scans your code and warns you when you're using something like Geolocator but forgot to configure the location permission. No more runtime crashes because you missed a plist entry.

Dangerous settings (looking at you, NSAllowsArbitraryLoads) get flagged with a warning tooltip so you don't accidentally ship something that'll get rejected.

Env files without the headache

Auto-discovers all your env and config files (JSON and dotenv). Edit them inline, compare two files side-by-side to spot missing keys, and run with --dart-define-from-file in one click.

Assets you can actually see

Folder tree with thumbnails. Preview fonts with sample text, play audio, watch video. JSON, CSV, XML, Markdown files get syntax-highlighted previews. It'll even suggest converting that 2MB PNG to WebP.

Codegen Hub

Run build_runner from the sidebar. See all your @freezed, @riverpod, @RestApi annotations at a glance. Get warned when you've annotated a class but forgot to run the generator.

Router visualization

Parses your GoRouter config — including StatefulShellRoute and nested routes — and shows it as a tree. Click any widget name to jump straight to the source.

Everything else

Dependencies with pub.dev links, lint rule toggles, SDK versions, device list, build cache cleanup, release checklist, process manager. It's a lot, but it's all organized in tabs so you only see what you need.


CLI (for AI agents & terminal lovers)

Every feature is also a CLI command that outputs JSON. One command gives your AI coding agent the full project context:

bin/fat snapshot    # permissions + deps + assets + routes + env + codegen — everything
bin/fat platform    # just platform config
bin/fat deps        # dependencies
bin/fat routes      # route tree
bin/fat codegen     # annotation scan + missing generated files
bin/fat env-diff develop.json release.json   # spot the missing keys

Install

Works with VSCode and all VSCode-based editors (Cursor, Windsurf, Antigravity, etc.)

Marketplace (VSCode) — search "Flutter Project Settings", or:

code --install-extension hoony5.editor-flutter-config

Cursor / Windsurf / Antigravity — Extensions → ··· → Install from VSIX → select the .vsix from GitHub Releases

⚠️ Android Studio is IntelliJ-based and does not support VSCode extensions. A separate IntelliJ plugin would be needed.

From source:

git clone https://github.com/hoony5/editor-flutter-config.git
cd editor-flutter-config && npm install && npm run compile
# F5 in VSCode

Good to know

  • Auto-detects flutterw/dartw wrappers in your project; falls back to flutter/dart if they're not there
  • Saves create a .bak backup and validate XML before committing — bad edits roll back automatically
  • Secrets (keys, tokens, passwords) are blocked from being written to git-tracked files
  • CSP with nonce, input sanitization, path traversal protection — the boring security stuff that matters

Development

npm run compile     # build
npm test            # 106 tests
vsce publish patch  # ship it

Troubleshooting

Extension shows "Loading..." forever

  • Open Help → Toggle Developer Tools → Console and check for errors
  • Make sure your project has a pubspec.yaml at the root
  • If you're on a network mount or external disk, make sure it's connected

Permissions tab shows empty or wrong data

  • The extension reads ios/Runner/Info.plist, android/app/src/main/AndroidManifest.xml, and macos/Runner/*.entitlements
  • If these files don't exist yet (new project), the tab will show "(file not found)" — that's normal
  • After editing permissions in Xcode/Android Studio, the extension auto-refreshes (file watcher with 800ms debounce)

"Gradle build failed: Unsupported class file major version"

  • This is a Java version mismatch, not an extension issue
  • Check java -version — Gradle 9.x supports up to Java 24
  • Fix: set JAVA_HOME to a compatible JDK in your shell profile

Router tab says "GoRouter declaration not found"

  • The scanner looks for GoRouter(, GoRoute(, or StatefulShellRoute in .dart files under lib/
  • Your router file must contain at least one of these patterns
  • Route constants like AppRoutes.home are resolved from *routes*.dart files — make sure your route constants file exists and uses static const declarations
  • See the example code in the Router tab for the expected format

Save permission changes but nothing happens

  • A confirmation dialog shows your changes before applying — click "Apply"
  • If XML validation fails after saving, the extension automatically rolls back from the .bak backup
  • Check the .bak file next to your plist/manifest if something went wrong

CLI (fat) returns empty JSON

  • Run from your project root: cd /path/to/flutter/project && bin/fat snapshot
  • Or specify the root: bin/fat snapshot --root /path/to/flutter/project
  • The CLI auto-detects flutterw/dartw wrappers; falls back to flutter/dart

Env files not showing

  • Scans for *.json files in paths containing config or env, plus .env* dotenv files
  • node_modules, build, .dart_tool, .git directories are skipped
  • Both JSON ({"KEY": "value"}) and dotenv (KEY=value) formats are supported

What happens when you save

When you toggle a permission and hit save:

  1. Confirmation — a modal shows exactly what will change (+ NSCameraUsageDescription (Info.plist))
  2. Backup — a .bak copy is created before any file is modified
  3. Validation — the modified XML is checked for structural integrity
  4. Rollback — if validation fails, the .bak is restored automatically
  5. Secret guard — if the key or value looks like a secret (password, token, api_key) and the file is git-tracked, the write is blocked

Existing keys are updated in place — no duplicates. New keys are inserted before the closing </dict> (plist) or before <application> (manifest).


AI-Agent Ready

This extension is designed to be used by AI coding agents (Claude Code, Qwen Code, OpenAI Codex, etc.) as a project context loader. Instead of an agent parsing 30+ platform files, one CLI command gives it everything:

bin/fat snapshot   # → JSON: permissions, deps, assets, routes, env, codegen status

The agent gets structured JSON it can reason about — which permissions are configured, which are missing, what routes exist, what codegen needs to run — without reading a single Info.plist or AndroidManifest.xml.

Every CLI command outputs JSON. Every feature in the sidebar has a CLI equivalent. The extension is the UI; the CLI is the API.


License

Apache-2.0 — Copyright 2024–2026 Hoony (삶은계란) · https://block.salmeun.com


Built with AI assistance (Qwen Code, Claude Code, OpenAI Codex) — because configuring permissions by hand is nobody's idea of a good time.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft