Skip to content

Terminal

The Terminal plugin puts your own login shell in the browser’s Panel, started in the root inside a pseudo-terminal. Nothing runs in it that you did not type, and it parses no output: it is your terminal, beside the page, so a command and the page it changes sit in one window. Off by default; eidos plugin enable terminal switches it on. An agent gains nothing from it: an agent with a shell has a shell.

A Terminal view in the Panel, drawn as a terminal in the host’s monospace font and both themes, fitted to the Panel as it resizes. Keystrokes, control keys, colours, full-screen programs, scrollback, copy, and paste work as in any terminal. The shell keeps running while the Panel is hidden or another page is open, and its scrollback is there when it is shown again; it ends when you exit it, close it from the view, switch the plugin off, or stop the server, and ended, the view offers to start another. What it writes to the root reaches the page as any change on disk does.

Terminal: Focus terminal (⌃`) shows the Panel on the view with the cursor in the shell.

The root as its working directory, EIDOS_ROOT set to the root’s path, EIDOS_USER set to the acting user’s alias when one is set, and TERM=xterm-256color. Nothing else is configured; your dotfiles do what they do in any terminal.

  • .eidos/plugins/terminal/local.yaml: one person’s shell, the command the terminal starts (zsh -l, /usr/local/bin/fish), set on the plugin’s page under private, never committed. Unset, the login shell ($SHELL, else /bin/sh; PowerShell on Windows).

The plugin has no shared setting beyond its switch and keeps no other file.

There is no eidos terminal.

The pseudo-terminal is @lydell/node-pty, an optional dependency prebuilt per platform with no install script. On a machine where it did not install, the view says what is missing and nothing is spawned. The shell is served on the loopback interface with the rest of the page, and never in the cloud.