Ink: React for CLIs

This one is short and sweet.

Are you familiar with React? Then you know Ink. I haven't tried this out yet, but basically it's a custom React renderer that allows you to build beautiful CLIs.

Flexbox in a CLI? 🤯 React hooks in a CLI? YOLO my friend, YOLO.

Holy Forking Shirt!

Here's a little example straight from the repository's ReadME:

import React, {Component} from 'react';
import {render, Color} from 'ink';

class Counter extends Component {
	constructor() {

		this.state = {
			i: 0

	render() {
		return (
			<Color green>
				{this.state.i} tests passed

	componentDidMount() {
		this.timer = setInterval(() => {
				i: this.state.i + 1
		}, 100);

	componentWillUnmount() {


And here's author of Gatsby working on a build flow using Ink.

The jest example is also very cool.

Vadim, the author of Ink, has a great intro post to it, Building rich command-line interfaces with Ink and React.

So what are you going to build with Ink? 😉

Happy coding!

Join in on the conversation on DEV