Documentation menu

Output and command history

Read, copy and search retained output, and distinguish scrollback from command recall and program input.

Page contents

Identify the retained records

Console scrollback is the retained display of commands, results, program output and input, messages and outcomes. Command history is a separate record for recalling submitted Console commands. Program input belongs to one running program. These are different even when program input spells clear or run. This guide describes the verified Console 0.8.0 archive.

Text labels identify records independently of color. Runs have run numbers. Changing interface language does not rewrite older records.

Record English / Arabic label
Console command cmd / أمر
Submitted program input in / إدخال
Program stdout out / خرج
Program stderr err / خطأ البرنامج
Run request run / بدء
Observed terminal outcome end / نهاية

Console messages/errors, unsent program drafts, unfinished composition and delivery-unconfirmed input have separate labels. A submitted line marked delivery unconfirmed may have partly reached the program; it is not wholly unsent input. See input delivery.

stdout and stderr stay separate. Their displayed ordering is not a chronological merge. Unterminated streams and different runs keep separately labelled records without adding child newline bytes. At the first non-reaping observation of direct-child exit, Console pauses ordinary reads, fixes unread counts with FIONREAD for stdout then stderr, and drains exactly those counted prefixes. Counts do not grow for later descendant output, and Console does not wait for descendant-held EOF. The cutoffs are separate, so descendant bytes arriving before a stream's count may appear. Failed counting, a shortened prefix or read failure reports incomplete capture as a Console process failure. Both decoders finish before the terminal record and command restoration. Closing during Finalizing requests closing after that record. Read the observed outcome alongside output.

Understand retained logical text

Program output escapes invalid bytes and terminal controls, preserves tabs and treats CRLF as one break. Escaped bytes remain the displayed escape text when copied; copying is not a recovery of the original raw stream. Terminal control sequences are not executed.

Selection, copy, search and assistive text use retained logical payloads. Record labels, soft wraps and display-only direction isolation are excluded. A visual record boundary does not add a newline to the payload. Font, zoom, output direction and window resizing change presentation without inserting copied breaks. Literal U+2028/U+2029 remain text, including on Copy and Cut in editable controls. The Settings direction choice affects display, not stored text.

Select and copy text

Focus scrollback with Ctrl+1. Drag to select retained text, or use Select all in that focused view. Ctrl+Shift+C copies the selection. The context menu also offers Copy. The view is read-only; paste belongs to an editable prompt or temporary text control. Ctrl+Shift+C / Ctrl+Shift+V operate on the focused control, so check focus before copying or pasting.

New output preserves reading focus and the retained selection. If retention removes selected text, its anchors clamp to the remaining text without selecting replacement content or resuming live following. A large paragraph may briefly show an older or blank page while worker layout catches up; logical selection and copy remain available.

Ctrl+F opens temporary Find output. Enter a literal, case-sensitive query. Enter finds the next match after the selection; Shift+Enter finds the previous match before it. There is no wrapping, regular expression or search of evicted text, record labels or the separate command-history store. An empty query or exhausted direction reports No match. A match selects and reveals retained logical text.

The search field is a temporary input owner. Ctrl+C / Ctrl+V and ordinary editing stay local to it, even during a run. After finishing composition, a later Enter performs the search rather than submitting a command or program input. Escape dismisses search and returns to the live prompt.

Read older output or follow the prompt

Scroll or use Shift+PageUp / Shift+PageDown to read older output. Search can reveal an older match. New output does not force a reader who has moved away back to the end. Ctrl+Shift+End resumes live following; Ctrl+2 also follows the end and focuses the live prompt. Ctrl+1 focuses scrollback. Tab / Shift+Tab move focus without completing commands.

These controls change where you read, not the active run, current directory or command history. Returning to a program-owned prompt does not make it command-ready. Check its run/phase label before submitting text. See input ownership.

Clear output and recognize truncation

At a command-ready prompt, clear / مسح removes all scrollback, including its own command row. Ctrl+L clears while command-ready and preserves the current command draft. Both preserve the current directory and command history. Ctrl+L is unavailable while a program or filesystem operation owns the prompt. During a run, typing clear is program input. Clearing scrollback does not terminate a program or erase its effects.

All record types share an 8,388,608-byte accounting budget covering UTF-8 payloads, labels/messages and record/chunk overhead. It is not a total process-memory limit. Oldest content is evicted with one cumulative localized truncation notice. A run continues under retention pressure. Evicted or cleared text is no longer available to selection, copy or search; scrollback is not a durable execution log.

Pending output has separate 262,144-byte raw and rendered UTF-8 bounds across both streams, with at most 65,536 bytes of each kind processed per GUI pass. Pressure pauses pipe reads rather than stopping the run. These pending-output bounds are separate from the scrollback budget and command-history limits.

Recall commands without executing them

At the command-ready prompt, Up recalls an older command and Down moves toward newer commands after composition processing. The first Up saves the current draft; Down past the newest entry restores it. Recall only replaces the draft. Inspect or edit it, then press a separate Enter if you intend to submit. Editing recalled text leaves submitted history unchanged.

History keeps nonblank commands verbatim, including duplicates, parse failures, failed operations and clear. Spaces/tabs-only submissions do nothing and are not recorded. History is bounded to 200 entries and 1,048,576 UTF-8 bytes, evicting oldest entries to meet both limits. It belongs to this window, is not shared with other windows and is discarded on closing. Clearing or truncating scrollback does not clear history.

Program input, unsent program drafts, unfinished composition and temporary search/Settings text never enter command history. Up / Down during composition can navigate input-method candidates; during a run they do not recall Console commands. No history action replays input, restores a run or executes automatically. See composition.

For all contextual shortcuts, use the Keyboard reference, including temporary controls and command-ready keys.