#ratatui #forms #elicitor #back-end #visible #wizard #arrow-key

elicitor-form-ratatui

Ratatui form backend for elicitor (TUI form with all fields visible)

2 releases

Uses new Rust 2024

0.6.1 Jan 18, 2026
0.6.0 Jan 17, 2026

#2 in #elicitor

MIT/Apache

96KB
2K SLoC

derive-ratatui-form

Ratatui form backend for derive-survey.

This backend displays all survey fields at once in a scrollable TUI form, similar to the egui backend but for the terminal. Users can navigate between fields using Tab/Shift+Tab or arrow keys.

Usage

use elicitor::Survey;
use elicitor_form_ratatui::RatatuiFormBackend;

#[derive(Survey)]
struct UserProfile {
    #[ask("What is your name?")]
    name: String,

    #[ask("How old are you?")]
    #[min(0)]
    #[max(150)]
    age: i64,
}

fn main() -> anyhow::Result<()> {
    let backend = RatatuiFormBackend::new();
    let result = UserProfile::builder().run(backend)?;
    println!("{result:#?}");
    Ok(())
}

elicitor

Derive interactive surveys from Rust types.

This workspace contains the elicitor crates:

Crate Description
elicitor Main crate with #[derive(Survey)] macro
elicitor-types Core data structures and traits
elicitor-macro Procedural macro implementation

Backends:

Crate Description
elicitor-wizard-dialoguer CLI prompts via dialoguer
elicitor-wizard-requestty CLI prompts via requestty
elicitor-wizard-ratatui Terminal UI wizard
elicitor-form-ratatui Terminal UI form
elicitor-form-egui Native GUI form

Document generators:

Crate Description
elicitor-doc-html HTML form output
elicitor-doc-latex LaTeX document output

See the elicitor README for usage documentation.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Dependencies

~8–14MB
~265K SLoC