A coding harness built in Elixir, inspired by tau.
Work in progress — things may move, break, and change.
Current ideas, subject to change.
Eva is a distributed coding agent platform. It ships with a default terminal agent harness powered by ex_ratatui + BYO-FE, with a modular architecture that lets you swap out providers and frontends.
- Distributed architecture
- How do we discover & connect to Evas in different machines?
- Tailscale?
- Most of the work is already done(Security, Discovery & Connection)
- Connections & Creds management
- Iroh?
- Tailscale?
- At what point do we handle external node messages?
- Split between:
- Providers
- Harness
- Split between:
- How do we discover & connect to Evas in different machines?
- Very basic provider(currently LMStudio based API only)
- Handle envs & config
- Switch providers
- Storage
- Directory(sessions/index)
- Move to sqlite?
- Agent Harness
- The agent loop
- Handling distributed node messages
- Context
- Sessions
- Memory
- Compaction
- Skills
- Prompt templates
- AGENTS.md
- Diagnostics
- Prompts
- Follow-up
- Queue
- Assembling prompts
- Tools
- Tool calls
- Approvals
- Elixir native?
- read
- write
- edit
- bash
- Explore just-bash(https://github.com/elixir-ai-tools/just_bash) for bash interpreter(& virtual FS)
- Q/A
- Web search/fetch
- Tool calls
- Subagents
- UI agnostic commands layer
- Modes or Characters(?)(like amp)
- Deep
- Librarian
- Oracle
- Extensions
- Perhpas "sharing" as an extension
- Ability to modify itself
- With Hot reload?
- Sharing(login?)
- Atproto
- PDS as sync layer(inspired by tiles.run)?
- (Fun idea): Indieweb?
- Atproto
- (Experiment): Explore with mob as distributed node connection?
- TUI (
ex_ratatui) + BYO-FE- Slash commands (
/usage,/providers,/login,/logout, ...) - Pretty lil animations
- Slash commands (
-
catalogue.ymlor something for list of providers - Sandboxing
- The whole agent or code executions only?
- https://microsandbox.dev/
- Firecracker? https://github.com/harmont-dev/hyper
- Observability
- Number of sessions, time taken, total token usage, failures etc.
- Explore https://github.com/elixir-vibe/vibe for further stuff
- Distributed by default — designed for multi-node setups from the start.
- Elixir-native — fault tolerance, hot code reloading, and concurrency via the BEAM.
- BYO-FE — bring your own frontend; the default TUI is built with
ex_ratatuibut you can swap in anything. - Modular — providers, tools, and agents are pluggable components.

