For AI agents: the complete documentation index is available at /en/llms.txt, the full documentation bundle is available at /en/llms-full.txt, and this page is available as Markdown at /en/guide/fun/shortcuts.md.
  • English
  • Keyboard Shortcuts

    Hunea's keybindings are distributed across the input box, slash menu, various full-screen panels, and approval interfaces. Each feature page already has explanations, this page summarizes common shortcuts for easy reference.

    Terminal emulators, tmux, or remote sessions may also intercept some combinations. If a key doesn't work, first check if it's captured by the outer environment; you can also check if keyboard_enhancement (auto / on / off) needs to be explicitly turned off.

    Main interface / Composer

    Default send semantics (you can swap Enter with Shift+Enter / Ctrl+J using swap_enter_and_send):

    KeyAction
    EnterSend draft (becomes newline when swap is enabled)
    Shift + Enter / Ctrl + JInsert newline (becomes send when swap is enabled)
    Alt + Enter / Ctrl + MInsert newline (unaffected by swap; Ctrl + M behaves as plain Enter in some older terminals)
    Ctrl + CWith a draft, defaults to clearing the draft (ctrl_c_clears_input); with empty input, enters exit confirmation
    EscDuring streaming: interrupt the current request after esc_interrupt_presses (default 2) presses; with empty input and no streaming: double-press enters backtracking (see below)
    Ctrl + GEdit the current draft in an external editor
    Ctrl + ROpen global message history (same as /resend)
    Ctrl + OOpen the floating command menu (requires command_menu_mode = floating or both)
    Ctrl + TOpen full-screen transcript details
    Ctrl + Z / Ctrl + YUndo draft edit / yank most recent kill
    PageUp / PageDownPrioritize scrolling the document, then handle paging inside the input box
    Mouse wheelScroll the main document; feel controlled by scroll_animation

    When the input box is empty and there is no streaming output, double-press Esc:

    esc_rewind_modeDouble-Esc behaviorSlash menu shows
    coarse (default)Edit/resend by user message round (same as /sends-back)/tree
    entryOpen /tree/sends-back

    Editing keys mostly follow readline conventions (like Ctrl + A/E/B/F/K/U/W, word movement and deletion, etc.), see Composer for details.

    Prefix popups

    PrefixPurpose
    / (typed when input box is empty)Slash Menu
    @File / image path
    $Skill
    #Custom prompt

    Common operations inside popups: continue typing to filter, / to move, Tab to complete or confirm, Enter to select, Esc to close.

    Slash Menu

    By default, typing / in an empty composer triggers the menu inline. You can change the trigger with command_menu_mode (slash / floating / both): under floating, / is plain text and you open the floating menu with Ctrl+O; under both, both work. The floating menu's visible row count is controlled by command_menu_rows (default 7), and extra rows scroll.

    KeyAction
    / Move
    Continue typingFilter / match
    TabComplete to current match
    EnterExecute
    EscClose menu

    The Ctrl+O floating menu also supports the mouse: click a command row to select and trigger it, and scroll the wheel over the popup to page through when there are more commands than fit.

    See the slash menu overview for the full command list.

    Session resume /resume, message copy /copy, history /resend

    Navigation for these full-screen lists is generally similar (follow the hint at the bottom of the interface):

    KeyCommon action
    / or j / kMove
    / or h / lPage through or other horizontal operations (depends on the panel)
    /Enter search (some panels)
    SpacePreview
    EnterConfirm (resume session / copy / refill, etc.)
    EscGo back or close
    TabToggle selection in multi-select scenarios like /copy

    Session tree /tree

    KeyAction
    / or j / kMove node
    / or h / lPage through
    SpacePreview current node / branch content
    TabOpen branch selection when multiple sibling branches exist
    AOpen full Branch Tree
    EnterBacktrack to restorable node, or switch branch
    EscGo back level by level / close

    See /tree for more detailed layered operations (branch preview, Branch Tree).

    User message backtracking (default double Esc / /sends-back)

    KeyAction
    / Switch between user messages (only user messages, excludes assistant / tool)
    / , PgUp / PgDn, Home / EndScroll view, doesn't change selection
    EnterTruncate content after this message and refill this user message into the input box (doesn't auto-send)
    Esc / Ctrl + T / Ctrl + CClose overlay, doesn't modify the session

    See /sends-back for details.

    Full-screen Transcript (Ctrl + T)

    KeyAction
    j / k, arrow keys, Ctrl + U/D, PgUp / PgDn, Home / EndScroll
    Esc / q / Ctrl + C / Ctrl + TClose

    Tool Approval

    KeyAction
    / Move between Yes / No and session-level options
    Enter / yConfirm current option (y leans toward approve side)
    nReject side
    EscCancel this approval interaction
    Paging keys in full-screen diff previewView changes for write / edit

    For option meaning and hints when the panel is invisible, see Tools & Approval.

    Other panels: Models / Prompt

    • /models: type directly to filter, Enter to select; U to refresh model list (if provider supports)
    • /prompt: two-column with tabs; Space to preview single item, p to see assembled result, ? to see panel help, Ctrl + G to edit body in external editor

    Each panel generally shows operation hints for the current context at the bottom. Specific operations follow the interface hints; this page only summarizes the most commonly used keys.

    Usage tips

    • It's recommended to first get familiar with: Enter send, Ctrl + J newline, Ctrl + G external edit, Ctrl + R history, Ctrl + T details, double Esc backtrack on empty input.
    • For other panels, check the bottom operation hint first.
    • When combination keys behave unexpectedly: try a modern terminal emulator (like kitty / Ghostty / Windows Terminal), check your tmux prefix key, or try keyboard_enhancement = "off".