xterm2

Package version

xterm2 is a maintained fork of the original xterm package from TerminalStudio/xterm.dart. The original package is no longer maintained, so this fork continues the package under a new pub package name.

xterm2 is a fast and fully-featured terminal emulator for Flutter applications, with support for mobile and desktop platforms.

This package requires Flutter version >=3.19.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.

What's new in 3.0.0:

  • πŸ“± Enhanced support for mobile platforms.
  • ⌨️ Integrates with Flutter's shortcut system.
  • 🎨 Allows changing theme at runtime.
  • πŸ’ͺ Better performance. No tree rebuilds anymore.
  • πŸˆ‚οΈ Works with IMEs.

Getting Started

1. Add this to your package's pubspec.yaml file:

dependencies:
  ...
  xterm2: ^5.1.0

2. Create the terminal:

import 'package:xterm2/xterm.dart';
...
terminal = Terminal();

Listen to user interaction with the terminal by simply adding a onOutput callback:

terminal = Terminal();

terminal.onOutput = (output) {
  print('output: $output');
}

3. Create the view, attach the terminal to the view:

import 'package:xterm2/flutter.dart';
...
child: TerminalView(terminal),

4. Write something to the terminal:

terminal.write('Hello, world!');

Done!

More examples

For the original package history, see TerminalStudio/xterm.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.