webview_flutter_web
A Flutter plugin that provides a WebView widget on web.
An IDE built in Flutter, for Flutter
A Flutter plugin that provides a WebView widget on web.
v4.0.0xterm.dart is a fast and fully-featured terminal emulator for Flutter applications, with support for mobile and desktop platforms.
Utilities to write a client or server using the JSON-RPC 2.0 spec.
An API Client for Pub to interact with public package information.
v1.5.0Integrate Monaco Editor (VS Code's editor) in Flutter apps. Features 100+ languages, syntax highlighting, themes, and full API.
{"sdk":"flutter"}^1.0.8^1.1.1^10.3.7^1.9.1^2.1.5^4.10.0^0.2.3^4.0.0^4.0.0^0.4.0^2.5.0^1.2.0^2.2.3^1.17.0^10.12.0{"sdk":"flutter"}^6.0.0English project snapshot. Visit GitHub for the latest content.
A lightweight, cross-platform code editor built with Flutter. Features a VS Code-inspired interface with Monaco Editor integration, file tree navigation, multi-tab editing, integrated terminal, and pub.dev package search.
flutter_monaco for a rich code editing experience with syntax highlightingCmd+P to quickly search and open filesflutter pub addflutter run, flutter pub get, and other commandsrunTerminalCommand()Main IDE interface showing file explorer, code editor with main.dart open, and integrated terminal
Pub.dev package search sidebar showing popular Flutter packages
Package details view for flutter_svg with installation options and metadata
Embedded pub.dev documentation view for flutter_svg package
The editor features:
Clone the repository:
git clone <repository-url>
cd flutter_ide
Navigate to the demo project:
cd flutter_ide_demo
Install dependencies:
flutter pub get
Run the application:
# For desktop (recommended)
flutter run -d macos # or windows, linux
# For mobile
flutter run -d <device-id>
flutter_ide_demo/
├── lib/
│ ├── main.dart # App entry point
│ ├── editor_screen.dart # Main editor UI with Monaco integration
│ ├── file_tree.dart # File explorer tree widget
│ ├── flutter_sidebar.dart # Flutter project structure sidebar
│ ├── pubdev_sidebar.dart # Pub.dev package search sidebar
│ ├── output_panel.dart # Integrated terminal panel
│ ├── models/
│ │ └── file_system_entity.dart # File/Directory node models
│ └── services/
│ ├── file_service.dart # Platform-aware service factory
│ ├── file_service_interface.dart # Abstract file service
│ ├── file_service_io.dart # Native platform implementation
│ └── file_service_web.dart # Web platform implementation
├── pubspec.yaml
└── test/
The app uses a platform-aware file service pattern:
FileService (interface) - Defines operations: pickDirectory, readFile, createFile, createDirectory, saveFile, deleteFile, deleteDirectory, renameFileServiceIO - Implementation for native platforms (macOS, Windows, Linux, iOS, Android)FileServiceWeb - Implementation for web browsers using File System Access APIRun terminal commands from anywhere in the app:
import 'editor_screen.dart';
// Execute any command
runTerminalCommand('flutter run');
runTerminalCommand('flutter pub get');
runTerminalCommand('dart analyze');
FileNode - Abstract base class for file system entitiesFileNodeDirectory - Represents a folder with childrenFileNodeFile - Represents a file with optional cached contentWebTab - Represents a WebView tab with title and URL| Package | Version | Purpose |
|---|---|---|
flutter_monaco |
^1.1.1 | Monaco Editor integration |
file_picker |
^10.3.7 | Native file/folder selection |
path |
^1.9.1 | Path manipulation utilities |
path_provider |
^2.1.5 | Platform-specific directories |
webview_flutter |
^4.10.0 | WebView for embedded browser |
xterm |
^4.0.0 | Terminal emulator UI |
flutter_pty |
^0.4.0 | PTY for terminal functionality |
pub_api_client |
^2.5.0 | Pub.dev API client |
http |
^1.2.0 | HTTP client |
Cmd+P to search for files by nameflutter run| Shortcut | Action |
|---|---|
| Cmd/Ctrl + P | Quick file search |
| Cmd/Ctrl + O | Open folder |
| Cmd/Ctrl + N | New file |
| Cmd/Ctrl + Click | Go to definition (placeholder) |
flutter runrunTerminalCommand() APIContributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.