ASSOUN - Flutter Package Manager for VS Code
🚀 A lightweight VS Code extension that helps Flutter developers quickly search, preview, and install pub.dev dependencies without leaving the editor.

✨ Features
🔍 Smart Package Search
- Visual Search Interface: Beautiful WebView-based package browser with real-time search
- Instant Results: Search pub.dev packages as you type with intelligent debouncing
- Detailed Package Pages: Click any package to view complete details including all versions, dependencies, tags, and statistics
- Copy to Clipboard: Quickly copy installation commands, YAML snippets, and import statements
📦 Easy Package Management
- One-Click Installation: Add packages to
pubspec.yaml directly from search results or package details
- Automatic
pub get: Automatically runs flutter pub get after adding packages
- Version Management: Smart version constraint handling (uses
^ prefix automatically)
- Remove Packages: Easy package removal with confirmation dialogs
- Package Information: View descriptions, homepage, repository, and pub.dev links
📝 Auto-Import Integration
- Smart Imports: Automatically adds import statements to your Dart files after installation
- Multiple Import Options: Choose from common import patterns or specify custom paths
- Import Detection: Prevents duplicate imports intelligently
🌳 Package TreeView
- Sidebar Integration: Dedicated ASSOUN sidebar in the Activity Bar
- Installed Packages View: See all dependencies and dev_dependencies with their versions
- Dependency Types: Clear icons distinguishing between regular (📦) and dev (🔧) dependencies
- Quick Actions: Refresh, search, and view details with toolbar buttons
- Real-time Updates: Automatically updates when
pubspec.yaml changes
🔄 Update Detection
- Updates View: Separate view showing packages with available updates
- Version Comparison: See current version → latest version for each package
- Package Scores: View likes, popularity scores, and points for each package
- Bulk Updates: Update individual packages or all at once
- Check Updates: Manual refresh to check for new versions
⚡ Flutter CLI Integration
- Seamless Commands: Run Flutter commands directly from VS Code
- Progress Indicators: Visual feedback for long-running operations
- Output Channel: Dedicated output channel for Flutter command logs
- Flutter Detection: Automatically checks if Flutter is installed
- Network Resilience: Automatic retry on network failures (3 attempts with increasing delays)
🎯 Usage
1. Search for Packages
Method 1: Command Palette
- Open Command Palette (
Ctrl+Shift+P or Cmd+Shift+P on Mac)
- Type "ASSOUN: Search Flutter Packages"
- A search interface opens with popular Flutter packages
- Type your search query (e.g.,
http, provider, dio)
- Click on any package card to view full details
- Click "📦 Install [version]" button to add it to your project
Method 2: From Sidebar
- Click the ASSOUN icon in the Activity Bar (left sidebar)
- Click the 🔍 Search icon in the "Installed Packages" view toolbar
- The search interface opens
2. View Package Details
- From search results, click on any package card
- The details page shows:
- Package name, description, and publication date
- Score metrics (likes, points, popularity bar)
- Installation button with latest version
- Links to homepage, repository, and pub.dev
- Copy-ready installation commands (YAML, CLI, Import)
- List of available versions (latest 15 shown)
- Package dependencies (if any)
- Platform and SDK tags
- Click the "← Back to Search" button to return
3. Add Package by Name
- Open Command Palette (
Ctrl+Shift+P)
- Type "ASSOUN: Add Package to pubspec.yaml"
- Enter the package name (e.g.,
http, provider, dio)
- The package is automatically added and
flutter pub get runs
4. View Installed Packages
- Click the ASSOUN icon in the Activity Bar
- The "Installed Packages" view displays:
- 📦 Dependencies: Your main project dependencies
- 🔧 Dev Dependencies: Development-only dependencies
- Each item shows package name and current version
- Click the ℹ️ icon next to any package to view its details
- Click the 🔄 Refresh icon to reload the package list
5. Check for Updates
- In the ASSOUN sidebar, switch to the "Updates Available" view
- Click the 🔄 Check for Updates icon in the toolbar
- Packages with newer versions will appear showing:
- Current version → Latest version
- Package score and popularity
- To update a single package: Click the ⬆️ icon next to it
- To update all packages: Click the ☁️ Update All icon in the toolbar
6. Remove a Package
- Open Command Palette (
Ctrl+Shift+P)
- Type "ASSOUN: Remove Package"
- Select the package to remove from the dropdown list
- Confirm the removal in the dialog
- The package is removed from
pubspec.yaml and flutter pub get runs
7. Copy Installation Info
From any package details page, click "Copy" buttons to copy:
- YAML format:
package_name: ^1.0.0 for pasting into pubspec.yaml
- CLI command:
flutter pub add package_name for terminal execution
- Import statement:
import 'package:package_name/package_name.dart'; for Dart files
🎨 Interface
The extension adds a dedicated section in the Activity Bar with two tree views:
📦 Installed Packages View
- Lists all packages from your
pubspec.yaml
- Separates dependencies (📦) and dev_dependencies (🔧)
- Shows current version for each package
- Toolbar Actions:
- 🔄 Refresh: Reload package list
- 🔍 Search: Open package search interface
- Item Actions:
- ℹ️ Show Details: View package information
🔄 Updates Available View
- Shows only packages with newer versions available
- Displays:
package_name (current → latest)
- Shows score and popularity metrics
- Toolbar Actions:
- 🔄 Check Updates: Scan for new versions
- ☁️ Update All: Update all packages at once
- Item Actions:
- ⬆️ Update: Update individual package
Search Interface
The WebView-based search interface features:
- Search Bar: Type to search pub.dev in real-time
- Package Cards: Each card shows:
- Package name and latest version
- Description
- Homepage and pub.dev links
- "Add Package" button
- Infinite Scroll: Automatically loads more results as you scroll
- Loading Indicators: Shows progress and retry options on errors
Package Details Page
Click any package to see:
- Header: Name, description, publication date
- Metrics: Likes, score points, and popularity bar
- Install Button: Large button showing version to install
- Links: Homepage, Repository, pub.dev
- Installation Instructions:
- YAML snippet with Copy button
- CLI command with Copy button
- Import statement with Copy button
- Available Versions: List of recent versions (shows 15 most recent)
- Dependencies: JSON view of package dependencies (if any)
- Tags: Platform and SDK compatibility tags
⚙️ Requirements
- VS Code: Version 1.106.0 or higher
- Flutter SDK: Must be installed and accessible in PATH
- Flutter Project: A workspace with a
pubspec.yaml file
📋 Commands
| Command |
Description |
Access |
ASSOUN: Search Flutter Packages |
Open visual package search interface |
Command Palette, Sidebar toolbar |
ASSOUN: Add Package to pubspec.yaml |
Add a package by entering its name |
Command Palette |
ASSOUN: Remove Package |
Remove an installed package |
Command Palette |
ASSOUN: Refresh Package List |
Refresh the installed packages view |
Sidebar toolbar |
ASSOUN: Run Flutter Pub Get |
Manually run flutter pub get |
Command Palette |
ASSOUN: Show Package Details |
View detailed information about a package |
Package item context menu |
ASSOUN: Check for Updates |
Scan for available package updates |
Updates view toolbar |
ASSOUN: Update Package |
Update a specific package to its latest version |
Update item inline button |
ASSOUN: Update All Packages |
Update all packages with available updates |
Updates view toolbar |
🐛 Troubleshooting
Extension doesn't activate
- Ensure you're in a Flutter workspace with a
pubspec.yaml file
- Reload VS Code window (
Ctrl+Shift+P → "Developer: Reload Window")
- Click the 🔄 Refresh icon in the Installed Packages view
- Verify your
pubspec.yaml is valid YAML syntax
- Check that dependencies are properly indented
"Flutter not found" error
- Ensure Flutter SDK is installed on your system
- Verify
flutter command is accessible in your PATH
- Run
flutter --version in terminal to confirm installation
Search timeouts or network errors
- The extension automatically retries failed requests 3 times
- Check your internet connection
- pub.dev API may be temporarily unavailable - try again later
- Timeout is set to 30 seconds with automatic retry delays (1s, 2s, 3s)
Package clicks not working
- This issue was fixed in the latest version
- Reload VS Code to apply updates
- If problem persists, close and reopen the search panel
Updates view shows no packages
- Click 🔄 Check for Updates to scan for new versions
- Ensure you have an internet connection
- Some packages may already be on their latest versions
🛠️ Development
npm install # Install dependencies
npm run watch # Watch mode (auto-compile)
npm run compile # Compile once
npm test # Run tests
vsce package # Package extension
📝 Roadmap
- [x] Visual package search with real-time results
- [x] Package details page with version history
- [x] Update detection and bulk updates
- [x] Network resilience with automatic retry
- [ ] Dependency graph visualization
- [ ] Multi-workspace project support
- [ ] Offline package cache
- [ ] Package list export/import
- [ ] Private package repository support
- [ ] Integration with pub.dev analytics
- [ ] AI-powered package recommendations
🤝 Contributing
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature)
- Commit your changes (
git commit -m 'Add: Amazing Feature')
- Push to the branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
Development Setup
git clone https://github.com/assoun-dev/assoun.git
cd assoun
npm install
npm run watch # Start compilation in watch mode
Press F5 in VS Code to launch the Extension Development Host.
📄 License
MIT License - See LICENSE file for details
👨💻 Author
ASSOUN Team
🙏 Acknowledgments
- pub.dev API for package data
- Flutter community for inspiration
- VS Code Extension API for the framework
Enjoy faster Flutter development with ASSOUN! 🚀
If you find this extension helpful, please consider giving it a ⭐ on GitHub!
| |