Interaction as Code¶
Console automation is how eve-iac does Interaction as Code: attach to a node console, observe output, run commands, wait for prompts, and execute ordered expect/send sequences — through the same agent HTTPS API used by the VSIX, CLI, MCP, and SDKs.
eve-iac can automate a node before it has:
- an IP address
- management reachability
- SSH, NETCONF, or gNMI
- routing or a jump host
The agent reaches the node through the EVE-owned serial/console path, not through management protocols.
AI is optional. Console automation works from the CLI, SDKs, and pipelines without any MCP or IDE agent.
Two meanings of IaC¶
| Term | What it covers |
|---|---|
| Infrastructure as Code | Topology, nodes, networks, links, deployment, reconcile — desired state in Git |
| Interaction as Code | Attach, observe, exec, wait, run, history, CI validation, human + AI console sharing |
Define the infrastructure. Define how to interact with it. Automate both.
Infrastructure as Code lives in topology.yml and configs/. Interaction as Code uses console sessions. How you drive those sessions depends on your persona (VSIX, CLI, or SDK) — not a separate site section.
Architecture¶
EVE node console (Telnet)
↓
eve-iac-agent Hub (one Hub per active lab/node console)
├── VSIX / human terminal
├── CLI (attach, watch, exec, …)
├── MCP / AI (bounded exec, wait, run, history)
├── Python SDK
├── Go SDK
└── TypeScript SDK
- One Hub per
(lab, node)console while the Hub exists. - One EVE Telnet TCP connection per Hub.
- Multiple consumers may share the same Hub when they use the same explicit
session_idor join compatible leases.
The Hub retains a bounded byte ring of recent console output. When the last client leaves, the Hub is kept for 60 seconds idle retention, then torn down. History does not survive agent restart.
Where to go next¶
Shared model:
| Topic | Page |
|---|---|
| Sessions, modes, Hub | Console sessions |
| Exec, wait, run, history | Exec, wait, run |
| Security, limits | Console security |
By persona:
| You | Start here |
|---|---|
| Operator (VSIX) | Consoles, Console MCP |
| DevOps / CLI / CI | Console CLI, Day-0 console |
| Developer (SDK / HTTP) | Console SDK |
API reference: SDK operation index (Execution / Consoles).