How Codex Rebuilt the ContainEye Terminal (and Why I Let It)
A story about frustration, reverse-engineering what worked, and shipping a better terminal + agentic workflow with far less manual coding than I expected.
The turning point
I've been using agentic AI for about a year. With every new model release, it gets a little scarier what these systems can build when you point them at a real problem.
For me, that problem was the terminal experience in ContainEye. The SwiftTerm-based implementation had become a pile of hacks. Selection felt bad (often all-or-nothing), copy/paste was awkward, and trying to offer completions meant manually inferring too much state.
Stealing the right idea
I compared terminal apps and kept coming back to Termius as the benchmark for interaction quality. I still wanted the terminal deeply integrated in ContainEye, so instead of switching apps, I asked a direct question: what are they doing differently?
Codex pointed me to xterm.js. That unlocked the whole rewrite direction: move from the old native stack to a WebView-powered xterm.js terminal where behavior is more controllable and standards-based.
What changed technically
- SwiftTerm stack replaced with a WebView + xterm.js terminal core.
- Selection now behaves like users expect, including partial/word-level selection.
- Copy/paste handling is more reliable.
- Terminal context uses proper signals (including OSC-style metadata) rather than brittle guessing.
- The app can track command input, working directory, subdirectories, and history to provide smarter completions.
Beyond the terminal: agentic workflows
At the same time, I expanded the agentic tab so AI can work with concrete app features instead of vague context. It can create, read, and update snippets; work with tasks that run on your servers and notify you when they fail; and read the project documentation inside the repository.
The command model is explicit: with approval, the AI can run arbitrary commands on your behalf on the server. Known safe reads (like listing and reading files) stay fast, while anything outside that set still requires explicit approval.
Daily usability wins
- Multiple terminal tabs.
- Split-panel views on larger devices.
- Shortcut-specific startup scripts.
- Per-shortcut themes (including custom themes) so each server is visually distinct.
Why this release feels different
I started by trying to patch a frustrating terminal. I ended up with a cleaner architecture, better UX, and an agentic workflow that actually feels trustworthy enough to use every day.
Codex didn't just generate snippets hereāit accelerated a full product pivot that I likely would have delayed for months.