nocterm 0.6.0 copy "nocterm: ^0.6.0" to clipboard
nocterm: ^0.6.0 copied to clipboard

A Flutter-like framework for building rich terminal user interfaces with components, state management, animations, and more.

CI Pub Version License Website Documentation

Website | Docs | pub.dev | Quick Start

If you know Flutter, you know Nocterm. Build terminal UIs with the same patterns—StatefulComponent, setState(), Column, Row, and hot reload.

Nocterm Demo

Installation #

dependencies:
  nocterm: ^0.6.0

Quick Start #

import 'package:nocterm/nocterm.dart';

void main() {
  runApp(const Counter());
}

class Counter extends StatefulComponent {
  const Counter({super.key});

  @override
  State<Counter> createState() => _CounterState();
}

class _CounterState extends State<Counter> {
  int _count = 0;

  @override
  Component build(BuildContext context) {
    return Focusable(
      focused: true,
      onKeyEvent: (event) {
        if (event.logicalKey == LogicalKey.space) {
          setState(() => _count++);
          return true;
        }
        return false;
      },
      child: Center(
        child: Text('Count: $_count'),
      ),
    );
  }
}

Run with hot reload:

dart --enable-vm-service your_app.dart

Testing #

Test your TUI components just like Flutter widgets:

await testNocterm('counter test', (tester) async {
  await tester.pumpComponent(Counter());
  await tester.sendKey(LogicalKey.space);

  expect(tester.terminalState, containsText('Count: 1'));
});

Documentation #

See the full documentation for guides on components, state management, testing, and more.

Community #

Packages #

Package Description
nocterm_bloc Bloc state management for Nocterm
nocterm_lints IDE assists — wrap with, swap, move, convert to stateful/stateless

Built with Nocterm #

Project Description
vide_cli Multi-agent coding IDE for the terminal
nocterm_3d Experimental 3D renderer for the terminal
cow Local LLM chat client powered by llama.cpp
snake Classic Snake for the command line
minesweeper Classic Minesweeper for the command line

Built something with Nocterm? Open an issue to get it listed here!

Contributing #

Git Hooks #

We use hooksman to manage git hooks. To install the hooks, run:

dart run hooksman

License #

MIT

33
likes
160
points
1.19k
downloads

Publisher

verified publishernorbert515.com

Weekly Downloads

A Flutter-like framework for building rich terminal user interfaces with components, state management, animations, and more.

Homepage
Repository (GitHub)
View/report issues

Topics

#tui

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

ansi_escape_codes, characters, convert, crypto, equatable, ffi, hotreloader, image, markdown, matcher, meta, path, quiver, zmodem

More

Packages that depend on nocterm