xterm.dart
xterm.dart is a fast and fully-featured terminal emulator for Flutter applications, with support for mobile and desktop platforms.
This package requires Flutter version >=2.0.0
Screenshots
![]() |
![]() |
![]() |
![]() |
Features
- 📦 Works out of the box No special configuration required.
- 🚀 Fast Renders at 60fps.
- 😀 Wide character support Supports CJK and emojis.
- ✂️ Customizable
- ✔ Frontend independent: The terminal core can work without flutter frontend.
Getting Started
1. Add this to your package's pubspec.yaml file:
dependencies:
...
xterm: ^2.2.0-pre
2. Create the terminal:
import 'package:xterm/xterm.dart';
...
terminal = Terminal();
To listen for input, add an onInput handler:
terminal = Terminal(onInput: onInput);
void onInput(String input) {
print('input: $input');
}
3. Create the view, then attach the terminal to the view:
import 'package:xterm/flutter.dart';
...
child: TerminalView(terminal: terminal),
4. Write something to the terminal:
terminal.write('Hello, world!');
Done!
Example
-
local pty example: Terminal Lite
-
ssh example: https://github.com/TerminalStudio/xterm.dart/blob/master/example/lib/ssh.dart
Features and bugs
Please file feature requests and bugs at the issue tracker.
Contributions are always welcome!
License
This project is licensed under an MIT license.
Libraries
- buffer/buffer
- buffer/cell_flags
- buffer/line/line
- buffer/line/line_bytedata_data
- buffer/line/line_list_data
- buffer/reflow_strategy
- buffer/reflow_strategy_narrower
- buffer/reflow_strategy_wider
- flutter
- frontend/cache
- frontend/char_size
- frontend/helpers
- frontend/input_behavior
- frontend/input_behavior_default
- frontend/input_behavior_desktop
- frontend/input_behavior_mobile
- frontend/input_behaviors
- frontend/input_listener
- frontend/input_map
- frontend/mouse_listener
- frontend/oscillator
- frontend/terminal_painters
- frontend/terminal_view
- input/keys
- input/keytab/keytab
- input/keytab/keytab_default
- input/keytab/keytab_escape
- input/keytab/keytab_parse
- input/keytab/keytab_record
- input/keytab/keytab_token
- input/keytab/qt_keyname
- input/shortcut
- isolate
- mouse/mouse_kind
- mouse/mouse_mode
- mouse/position
- mouse/selection
- terminal/ansi
- terminal/charset
- terminal/csi
- terminal/cursor
- terminal/modes
- terminal/osc
- terminal/platform
- terminal/sbc
- terminal/sgr
- terminal/tabs
- terminal/terminal
- terminal/terminal_backend
- terminal/terminal_isolate
- terminal/terminal_search
- terminal/terminal_search_interaction
- terminal/terminal_ui_interaction
- theme/terminal_color
- theme/terminal_style
- theme/terminal_theme
- theme/terminal_themes
- util/ansi_color
- util/bit_flags
- util/circular_list
- util/constants
- util/debug_handler
- util/event_debouncer
- util/hash_values
- util/lookup_table
- util/observable
- util/scroll_range
- util/unicode_v11
- xterm