Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Ennio provides a Nix flake with pre-built packages.

# Run directly without installing
nix run github:glottologist/ennio -- --help

# Build the CLI
nix build github:glottologist/ennio

# Build the remote node daemon
nix build github:glottologist/ennio#ennio-node

# Build the WASM dashboard
nix build github:glottologist/ennio#ennio-dashboard

From a local checkout:

nix build              # ennio CLI (default package)
nix build .#ennio-node # remote daemon
nix run                # run directly
nix flake check        # clippy, fmt, tests, docs, audit
nix develop            # dev shell with all tools

The dev shell includes: cargo-nextest, cargo-audit, cargo-watch, cargo-bloat, bacon, and rust-analyzer.

Cargo

Requires Rust 1.88+ and protoc (protobuf compiler).

# Install protoc (Debian/Ubuntu)
sudo apt install protobuf-compiler

# Install protoc (macOS)
brew install protobuf

# Build both binaries
cargo build --release -p ennio-cli -p ennio-node

Binaries are at target/release/ennio and target/release/ennio-node.

Docker

# Build the image
docker build -t ennio .

# Run the CLI
docker run --rm ennio --help

# Run the node daemon
docker run --rm --entrypoint ennio-node ennio --help

Pre-built images are published to glottologist/ennio on Docker Hub for tagged releases (v*).

The Docker image is based on debian:bookworm-slim and includes git, tmux, and openssh-client since Ennio shells out to these at runtime.

Runtime Dependencies

Ennio requires these tools to be available on $PATH:

ToolRequired ByPurpose
gitAll workspacesClone repos, create worktrees, check status
tmuxTmuxRuntime, TmuxStrategyManage agent terminal sessions
sshSSH strategiesConnect to remote machines
tmateTmateStrategy onlyShared terminal sessions

Optional services:

ServicePurpose
NATSEvent messaging between components
SQLiteSession and event persistence (auto-created)