A Terminal + IDE hybrid mobile app built with Flutter. Edit code on your phone, connect to remote servers via SSH, run commands, and see output — like a lightweight VS Code Mobile focused on SSH workflow.
- Syntax highlighting for 11+ languages (Dart, JS, Python, Java, C, HTML, CSS, JSON, YAML, Bash, Markdown)
- Line numbers with monospace font
- Auto-indent and bracket matching
- Multiple file tabs with modification indicators
- Find & replace
- Adjustable font size
- 5 editor themes: Monokai, Dracula, One Dark, Solarized Dark, GitHub Dark
- Extra keyboard toolbar row (Tab, Ctrl, Alt, arrows, brackets, quotes, operators)
- Local terminal with simulated shell commands
- SSH connection UI (host, port, user, key/password)
- Saved server profiles (CRUD)
- Multiple terminal sessions with tabs
- Terminal themes matching editor themes
- Scrollback buffer with copy/paste support
- Clear terminal button
- Local file browser (app sandbox)
- Create/rename/delete files and folders
- File type icons with language-specific colors
- Recent files tracking
- Create new file with templates (HTML boilerplate, Python script, etc.)
- Git status view (modified, staged, untracked files)
- Stage/unstage files
- Commit with message
- Push/Pull buttons
- Branch selector and creation
- Diff viewer
- Slide-out panel from right
- "Explain this code" functionality
- "Fix this error" with suggestions
- "Generate code" from description
- Chat interface with history
- Suggested prompts based on context
- Pre-built snippets by language (Dart, Python, JavaScript, Bash)
- Categories: Loops, Functions, Classes, API Calls, Error Handling
- Quick insert into editor
- Search and filter
- Custom snippet creation
- Editor: font size, tab size, word wrap, line numbers, minimap
- Terminal: font size, scrollback lines, bell
- Theme selector (applies to both editor + terminal)
- About page
- 3-slide intro: "Code Anywhere", "Connect to Servers", "AI-Powered"
- Skip button, only shows on first launch
- Framework: Flutter 3.29.3
- Language: Dart
- State Management: Provider
- Package: com.zafran.codeterminal
- Min SDK: 21
- Target SDK: 34
provider- State managementshared_preferences- Local storagepath_provider- File system pathsgoogle_fonts- JetBrains Mono & Inter fontsflutter_highlight- Syntax highlighting support
lib/
├── main.dart # Entry point
├── app.dart # App widget with providers
├── theme/
│ ├── app_theme.dart # Material theme (GitHub Dark style)
│ └── editor_themes.dart # 5 editor color themes
├── models/
│ ├── file_model.dart # File/directory model
│ ├── server_profile.dart # SSH server profile
│ ├── snippet.dart # Code snippet model
│ └── terminal_session.dart # Terminal session model
├── providers/
│ ├── editor_provider.dart # Open files, tabs, search
│ ├── terminal_provider.dart # Sessions, commands
│ ├── file_provider.dart # File operations
│ ├── git_provider.dart # Git operations
│ ├── settings_provider.dart # App settings
│ └── ai_provider.dart # AI chat state
├── screens/
│ ├── home_screen.dart # Main scaffold + bottom nav
│ ├── editor_screen.dart # Code editor view
│ ├── terminal_screen.dart # Terminal view
│ ├── files_screen.dart # File manager
│ ├── git_screen.dart # Git status/operations
│ ├── settings_screen.dart # Settings page
│ ├── onboarding_screen.dart # First-launch intro
│ ├── snippet_screen.dart # Snippet library
│ └── ai_panel.dart # AI assistant panel
├── widgets/
│ ├── code_editor.dart # Editor widget
│ ├── terminal_widget.dart # Terminal output/input
│ ├── file_tree.dart # Collapsible file tree
│ ├── extra_keys_bar.dart # Extra keyboard row
│ ├── split_view.dart # Resizable split pane
│ ├── tab_bar.dart # Editor file tabs
│ └── syntax_highlighter.dart # Regex-based highlighter
├── services/
│ ├── file_service.dart # File I/O operations
│ ├── ssh_service.dart # Mock SSH client
│ ├── git_service.dart # Mock git operations
│ ├── snippet_service.dart # Built-in snippets
│ ├── ai_service.dart # Mock AI responses
│ └── storage_service.dart # SharedPreferences wrapper
└── utils/
├── constants.dart # App constants, file icons
└── helpers.dart # Utility functions
- Theme: Dark theme primary (GitHub Dark inspired)
- Background:
#0D1117 - Surface:
#161B22 - Accent:
#58A6FF
- Background:
- Typography: Inter (UI), JetBrains Mono (code)
- Design Language: Material 3
- Navigation: Bottom navigation bar (Editor, Terminal, Files, Git, More)
# Clone the project
cd codeterminal
# Get dependencies
flutter pub get
# Run analysis
flutter analyze
# Run on device
flutter run- SSH connections are simulated (mock responses) — no actual SSH library is used
- Git operations are mocked for demo purposes
- AI responses are pre-generated templates
- File operations work within the app's sandbox directory
- The app is designed to be extended with real SSH/Git/AI backends
MIT