Skip to main content

Crate elicit_egui

Crate elicit_egui 

Source
Expand description

elicit_egui — dual-mode MCP tools for egui widget creation.

Provides tools that operate in two modes:

  1. Runtime mode — each tool returns a JSON description that can be rendered by an egui runtime or inspected as JSON.
  2. Emit mode — each tool’s parameters can generate idiomatic egui Rust code via the elicitation code-emission pipeline.

§Tool categories

§Widgets (32 tools)

ToolWidgetCategory
widget_labelPlain textDisplay
widget_headingHeading textDisplay
widget_monospaceMonospace textDisplay
widget_codeCode with backgroundDisplay
widget_smallSmall textDisplay
widget_strongBold textDisplay
widget_weakFaint textDisplay
widget_colored_labelColoured textDisplay
widget_buttonClickable buttonInteractive
widget_small_buttonCompact buttonInteractive
widget_checkboxBoolean toggleInteractive
widget_radio_valueRadio button (auto-update)Interactive
widget_radioRadio button (display only)Interactive
widget_selectable_labelToggle labelInteractive
widget_toggle_valueBoolean toggle (simple)Interactive
widget_linkClickable text linkInteractive
widget_hyperlinkWeb linkInteractive
widget_separatorDivider lineLayout
widget_spinnerLoading spinnerFeedback
widget_text_edit_singlelineSingle-line inputText
widget_text_edit_multilineMulti-line inputText
widget_code_editorCode editorText
widget_sliderNumeric sliderNumeric
widget_slider_verticalVertical sliderNumeric
widget_drag_valueDrag-to-edit valueNumeric
widget_drag_angleDrag-to-edit angle (degrees)Numeric
widget_drag_angle_tauDrag-to-edit angle (tau)Numeric
widget_progress_barProgress indicatorFeedback
widget_color_edit_button_srgbasRGBA colour pickerColour
widget_color_edit_button_hsvaHSVA colour pickerColour
widget_imageImage displayMedia

§Containers (14 tools)

ToolContainerNotes
container_windowFloating windowTitle, pos, size, collapsible
container_left_panelLeft side panelResizable with min/max width
container_right_panelRight side panelResizable
container_top_panelTop panelResizable
container_bottom_panelBottom panelResizable
container_central_panelCentral panelFills remaining space
container_scroll_areaScroll regionVertical/horizontal
container_collapsingCollapsible sectionHeader text, default open
container_groupVisual groupBox around content
container_frameStyled frameFill, stroke, margins
container_menu_barMenu barTop-level menus
container_menuMenuWithin menu bar
container_tooltipTooltipHover text
container_popupPopup areaContext menu, dropdown

§Layout (11 tools)

ToolLayoutNotes
layout_horizontalLeft-to-rightOptional alignment
layout_verticalTop-to-bottomOptional alignment
layout_horizontal_centeredCentred horizontal
layout_vertical_centeredCentred vertical
layout_horizontal_justifiedJustified horizontalItems stretch
layout_vertical_justifiedJustified vertical
layout_horizontal_wrappedWrapping horizontalNext line on overflow
layout_columnsColumn layoutN columns
layout_gridGrid layoutStriped, column count
layout_indentIndentationPixel amount
layout_add_spaceSpacingPixel amount

§Styling (29 tools)

ToolStyleNotes
style_spacingGlobal spacingItem, window, button
style_dark_modeDark theme
style_light_modeLight theme
style_visualColour propertyHyperlink, bg, panel, etc.
style_window_roundingWindow cornersCorner radius
style_window_shadowWindow shadowOffset, blur, colour
style_widget_visualsWidget state visualsFill, stroke per state
style_selectionSelection highlightBackground, stroke
style_text_cursorText cursorColour, width
egui_set_fontsFont familiesProportional, monospace
egui_override_text_styleText style overrideFamily + size per style
egui_set_text_valignText vertical alignTop, center, bottom
egui_set_interactionInteraction settingsClick time, drag threshold
egui_set_animation_timeAnimation durationTransition timing
egui_set_debug_optionsDebug renderingWidget hits, hover debug
egui_set_hyperlink_colorHyperlink colour
egui_set_faint_bg_colorFaint backgroundAlternating rows
egui_set_extreme_bg_colorExtreme backgroundText input fields
egui_set_code_bg_colorCode backgroundMonospace background
egui_set_warn_fg_colorWarning foreground
egui_set_error_fg_colorError foreground
egui_set_widget_strokeWidget state strokePer-state border
egui_set_window_strokeWindow border strokeWidth + colour
egui_set_menu_marginMenu marginLeft, right, top, bottom
egui_set_button_paddingButton paddingHorizontal, vertical
egui_set_indentIndentationPixel distance
egui_set_scroll_bar_widthScroll barWidth, handle, margins
egui_set_resize_grip_sizeResize gripCorner size
egui_set_text_cursor_widthCursor blinkWidth, blink timing

§Response (21 tools)

ToolQueryNotes
response_clickedWas clicked
response_double_clickedWas double-clicked
response_secondary_clickedWas right-clicked
response_clicked_nClicked N timesCount param
response_hoveredIs hovered
response_has_focusHas focus
response_gained_focusGained focus
response_lost_focusLost focus
response_request_focusRequest focus
response_surrender_focusRelease focus
response_draggedIs dragged
response_drag_releasedDrag released
response_drag_deltaDrag deltaVec2 result
response_changedValue changed
response_rectBounding rectRect result
response_hover_posHover positionOptional Vec2
response_show_tooltipShow tooltipText param
response_set_enabledSet enabled stateBool param
response_highlightHighlight widget
response_scroll_to_meScroll into view
response_context_menuContext menu
ToolActionNotes
egui_context_menuRight-click menuRegion ID
egui_context_menu_itemMenu itemLabel + shortcut
egui_context_menu_separatorMenu separator
egui_popupPopup at positionID, position, content
egui_popup_below_widgetPopup below widgetAnchor ID
egui_close_popupClose popup
egui_tooltipHover tooltipWidget ID, text
egui_tooltip_richRich tooltipCustom UI content
egui_tooltip_at_pointerPointer tooltipText at cursor
egui_modalModal dialogTitle, content, buttons
egui_confirm_dialogConfirm dialogYes/no
egui_alert_dialogAlert dialogOK button
egui_notificationToast messageText, duration, position

§Input (14 tools)

ToolQueryNotes
egui_key_pressedKey pressedThis frame
egui_key_releasedKey releasedThis frame
egui_key_downKey held downCurrent state
egui_modifiersModifier keysCtrl, Shift, Alt, Cmd
egui_pointer_posPointer position
egui_pointer_button_pressedMouse pressedButton name
egui_pointer_button_releasedMouse releasedButton name
egui_pointer_deltaPointer deltaThis frame
egui_scroll_deltaScroll delta
egui_clipboard_getGet clipboardText
egui_clipboard_setSet clipboardText
egui_request_focusRequest focusWidget ID
egui_surrender_focusRelease focusWidget ID
egui_has_focusCheck focusWidget ID

§JSON interchange

Tools communicate via tagged enums that serialize to compact JSON: WidgetJson, ContainerJson, LayoutJson, StyleJson, and ResponseQueryJson.

Re-exports§

pub use accesskit_bridge::EguiBackend;
pub use accesskit_bridge::bounds_to_size;
pub use accesskit_bridge::render_tree;
pub use egui_accesskit_convert::tree_update_to_ui_node;
pub use egui_accesskit_convert::ui_node_to_tree_update;
pub use winit_plugin::EguiWinitPlugin;
pub use serde_types::ColorJson;
pub use serde_types::ContainerJson;
pub use serde_types::CornerRadiusJson;
pub use serde_types::LayoutAlign;
pub use serde_types::LayoutDirection;
pub use serde_types::LayoutJson;
pub use serde_types::MarginJson;
pub use serde_types::RangeJson;
pub use serde_types::RectJson;
pub use serde_types::ResponseJson;
pub use serde_types::StrokeJson;
pub use serde_types::UiNode;
pub use serde_types::Vec2Json;
pub use serde_types::WidgetJson;
pub use style_tools::AnimationTimeParams;
pub use style_tools::ButtonPaddingParams;
pub use style_tools::ColorOverrideParams;
pub use style_tools::DebugOptionsParams;
pub use style_tools::EmptyStyleParams;
pub use style_tools::FontFamily;
pub use style_tools::InteractionParams;
pub use style_tools::MenuMarginParams;
pub use style_tools::OverrideTextStyleParams;
pub use style_tools::ResizeGripSizeParams;
pub use style_tools::ScrollBarWidthParams;
pub use style_tools::SelectionParams;
pub use style_tools::SetFontsParams;
pub use style_tools::SetTextValignParams;
pub use style_tools::SpacingParams;
pub use style_tools::StyleIndentParams;
pub use style_tools::StyleJson;
pub use style_tools::TextCursorBlinkParams;
pub use style_tools::TextCursorParams;
pub use style_tools::TextStyleName;
pub use style_tools::TextValign;
pub use style_tools::VisualParams;
pub use style_tools::VisualProperty;
pub use style_tools::WidgetState;
pub use style_tools::WidgetStrokeParams;
pub use style_tools::WidgetVisualsParams;
pub use style_tools::WindowRoundingParams;
pub use style_tools::WindowShadowParams;
pub use style_tools::WindowStrokeParams;
pub use widget_tools::ButtonParams;
pub use widget_tools::CheckboxParams;
pub use widget_tools::CodeEditorParams;
pub use widget_tools::CodeParams;
pub use widget_tools::ColorEditButtonHsvaParams;
pub use widget_tools::ColorEditButtonSrgbaParams;
pub use widget_tools::ColoredLabelParams;
pub use widget_tools::DragAngleParams;
pub use widget_tools::DragAngleTauParams;
pub use widget_tools::DragValueParams;
pub use widget_tools::EmptyParams;
pub use widget_tools::HeadingParams;
pub use widget_tools::HyperlinkParams;
pub use widget_tools::ImageParams;
pub use widget_tools::LabelParams;
pub use widget_tools::LinkParams;
pub use widget_tools::MonospaceParams;
pub use widget_tools::ProgressBarParams;
pub use widget_tools::RadioParams;
pub use widget_tools::RadioValueParams;
pub use widget_tools::SelectableLabelParams;
pub use widget_tools::SimpleTextParams;
pub use widget_tools::SliderParams;
pub use widget_tools::SliderVerticalParams;
pub use widget_tools::SmallButtonParams;
pub use widget_tools::TextEditMultilineParams;
pub use widget_tools::TextEditSinglelineParams;
pub use widget_tools::ToggleValueParams;
pub use fragment_tools::AppStateParams;
pub use fragment_tools::FormFieldDef;
pub use fragment_tools::FormParams;
pub use fragment_tools::MessageEnumParams;
pub use fragment_tools::MessageVariantDef;
pub use fragment_tools::NativeAppParams;
pub use fragment_tools::SettingsFieldDef;
pub use fragment_tools::SettingsPanelParams;
pub use fragment_tools::SettingsSectionDef;
pub use fragment_tools::SidebarLayoutParams;
pub use fragment_tools::StateFieldDef;
pub use fragment_tools::TabDef;
pub use fragment_tools::TabPanelParams;
pub use fragment_tools::TableColumnDef;
pub use fragment_tools::TableParams;
pub use fragment_tools::ToolbarButtonDef;
pub use fragment_tools::ToolbarParams;
pub use fragment_tools::WebAppParams;

Modules§

accesskit_bridge
AccessKit bridge for egui — bidirectional conversion between AccessKit trees and egui widgets.
egui_accesskit_convert
Forward bridge: UiNode → AccessKit TreeUpdate.
fragment_tools
Code generation tools for egui/eframe application fragments.
serde_types
JSON-serializable types for egui widget interchange.
style_tools
Dual-mode styling tools.
widget_tools
Dual-mode widget creation tools.
winit_plugin
EguiWinitPlugin — MCP tools for egui + winit native application scaffolding.

Structs§

AddSpaceParams
Parameters for layout_add_space.
AlertDialogParams
Parameters for egui_alert_dialog.
BottomPanelParams
Parameters for container_bottom_panel.
ClickedNParams
Parameters for response_clicked_n.
ClipboardSetParams
Parameters for egui_clipboard_set.
CollapsingParams
Parameters for container_collapsing.
ColumnsParams
Parameters for layout_columns.
ConfirmDialogParams
Parameters for egui_confirm_dialog.
ContextMenuItemParams
Parameters for egui_context_menu_item.
ContextMenuParams
Parameters for egui_context_menu.
EmptyContainerParams
Empty params for tools that take no arguments.
EmptyInputParams
Empty params for tools that take no arguments.
EmptyLayoutParams
Empty params for layout tools with no arguments.
EmptyMenuParams
Empty params for tools that take no arguments.
EmptyResponseParams
Empty params for no-argument response tools.
FocusParams
Parameters for focus tools.
FrameParams
Parameters for container_frame.
GridParams
Parameters for layout_grid.
HorizontalParams
Parameters for layout_horizontal.
IndentParams
Parameters for layout_indent.
KeyParams
Parameters for egui_key_pressed.
LeftPanelParams
Parameters for container_left_panel.
MenuParams
Parameters for container_menu.
MenuPopupParams
Parameters for egui_popup.
MenuTooltipParams
Parameters for egui_tooltip.
ModalParams
Parameters for egui_modal.
ModifiersJson
Result of a modifier key state query.
NotificationParams
Parameters for egui_notification.
PointerButtonParams
Parameters for egui_pointer_button_pressed.
PopupBelowWidgetParams
Parameters for egui_popup_below_widget.
PopupParams
Parameters for container_popup.
RightPanelParams
Parameters for container_right_panel.
ScrollAreaParams
Parameters for container_scroll_area.
SetEnabledParams
Parameters for response_set_enabled.
ShowTooltipParams
Parameters for response_show_tooltip.
TooltipAtPointerParams
Parameters for egui_tooltip_at_pointer.
TooltipParams
Parameters for container_tooltip.
TooltipRichParams
Parameters for egui_tooltip_rich.
TopPanelParams
Parameters for container_top_panel.
VerticalParams
Parameters for layout_vertical.
WindowParams
Parameters for container_window.

Enums§

InputActionJson
Serializable input query or action.
MenuActionJson
Serializable menu/popup/tooltip/modal/notification action.
ResponseInfoJson
Serializable response info (what the runtime returns).
ResponseQueryJson
Serializable response query.