Elpis is an open-source desktop and terminal app for Linux where you run coding agents (GPT, Claude, Gemini). It is built on OpenAI's Codex. This post shows what Elpis does for those agents, through the picture that made it click for me: a mother and her children.
I used to call Elpis a "harness". I stopped. A harness is what you strap on a horse. What I want for my agents is closer to what a mother does: she nurtures them. She feeds them, cleans them up, keeps them safe, checks their homework and keeps them accountable.
She feeds them when they are hungry
A baby gets milk when it needs it, not the whole fridge. An agent's milk is context.
Left alone, a coding agent loads the instruction files it finds and keeps the whole conversation until the window fills. You can't see what it was told.
In Elpis, the Context Ledger lists each instruction file, chosen file and memory with its token cost. You include or exclude each one before you send the first message.
She changes the diaper when it is full
A full context window is a full diaper: the agent gets slow, confused and expensive.
/compact cleans it up now. /compact N sets a level, and Elpis compacts on its own when the remaining context drops to it. Smart Prune (experimental, off by default) goes further: it shortens a long tool result before it enters the conversation, and keeps the original in a log so you can check what was cut.
A fair warning: compaction loses detail. Check important claims against the transcript.
She puts them in a playpen
Children learn by playing, in a place where they can't get hurt.
Elpis keeps Codex's sandbox. In a workflow, each agent owns its own folder, agents/<its name>. In a Git project it works in its own worktree, and a step that changed files outside its folders fails.
The tradeoff: outside a Git project, the folders are instructions, not enforced.
She stops the siblings fighting over toys
Two agents that run side by side may not share a folder. It is Rust's rule for ownership, applied to agents:
| Rust | Elpis workflow |
|---|---|
| A value has one owner | Each agent owns its folder |
| Shared borrows only read | A check reads the writer's work and writes only its own notes |
| No two mutable borrows at once | Two agents working alongside may not share a folder |
| The owner decides what lives | The Mother agent decides what reaches your project |
She checks their homework and keeps them accountable
A check follows each agent that writes. It reads the work and passes or fails it.
At the end, the Mother agent reviews the combined commit. She must pass it with evidence before Elpis fast-forwards your project. That is where this post's picture comes from: in Elpis, the agent that designs and runs a team is called the Mother agent.
She watches over them
In the desktop app, the Observability page puts each request, tool call, token and cache hit of a chat on one timeline. In the terminal, the Agent command center shows each helper under its parent chat.
She remembers
Elpis can resume a chat exactly where it stopped, and you can switch models without losing the thread. Memory saving is opt-in per workspace, and the Context Ledger decides whether a saved memory reaches later requests.
What it is not yet
Elpis is alpha (v0.5.3), Linux x86_64 only, and in daily use by me. Its release checks show it installs and runs; they do not prove it writes better code.
Try it
curl -fsSL https://raw.githubusercontent.com/MasihMoafi/Elpis/main/scripts/install.sh | bash Then run elpis-app for the desktop app or elpis for the terminal app.
Code: https://github.com/MasihMoafi/Elpis
What else does a mother do that an agent app should? Tell me in the comments. The best answer may become the next feature.

