evault-tui
Terminal user interface for evault, built on ratatui. Plug any backend that implements
VarProvider + VarMutatorand get a full dashboard with CRUD, link-to-project, view-value, fuzzy filter, and run-in-project flows.
The crate is intentionally decoupled from any storage layer: the TUI reads rows from a caller-supplied [VarProvider] and writes through [VarMutator]. The same TUI can drive a SQLCipher-backed registry, an in-memory test stub, or a remote facade.
Features
- Dashboard table with sortable columns: name, group, kind, value length, linked projects, last update.
- CRUD —
nnew variable,eedit value,ddelete (with confirm modal). - Link to project —
lopens a modal capturing project path + profile + materialize toggle. - View value —
vreveals the decrypted secret in a centered modal. - Run in project —
Rlaunches a child process with the project's env injected, no.envon disk. - Fuzzy filter —
Ctrl+Fopens a centered fuzzy-input powered bynucleo-matcher. - Error modals — failed actions surface in a centered modal with a plain-English hint explaining the failure and how to recover.
- Themable via the
Themestruct.
Install
[]
= "0.1"
= "0.1"
= "0.10"
Example: launch the TUI against an in-memory backend
use PathBuf;
use VarId;
use ;
use SecretString;
;
run_tui.unwrap;
Terminal lifecycle
run_tui owns the terminal lifecycle: it enters raw mode + the alternate screen, installs a panic hook that restores them on unwind, and guarantees the restore happens whether the loop returns Ok, returns Err, or panics. For the run-in-project flow specifically, the TUI restores the terminal before spawning the child (so the child inherits a normal terminal with stdio passthrough) and re-enters raw mode after the child exits.
Part of the evault workspace
Used by the evault CLI as the default action when invoked without a subcommand. See the workspace README for the full feature set and keymap.