README.md

# ExTerm

![tests](https://github.com/e-xyza/ex_term/actions/workflows/test_flow.yml/badge.svg)

ExTerm is an terminal `Phoenix.LiveView` component.  ExTerm is responsible
for converting erlang IO protocol messages into web output and translating
web input into responses in the IO protocol.

## Installation

Add ExTerm to your mix.exs:

```elixir

def deps do
[
  # ...
  {:ex_term, "~> 0.2"}
  # ...
]
end
```

```elixir

def deps do
[
  # ...
  {:ex_term, "~> 0.2"}
  # ...
]
end
```

### How to create a live terminal in your Phoenix router

You must supply a `Phoenix.PubSub` server that is the communication channel
to send important updates to the liveview.  It's recommended to use the
PubSub server associated with your web server.

```elixir
import ExTerm.Router

scope "/live_term" do
  pipe_through :browser

  live_term "/", pubsub_server: MyAppWeb.PubSub
end
```

## Documentation

Documentation is available on hexdocs.pm: https://hexdocs.pm/ex_term

### Planned (Pro?) features:
- provenance tracking
- multiplayer mode