bitsrun

Keys, input and copying

Every key in the bitsrun agent, plus multi-line prompts, safe pasting, the number pad, file and image attachments, mouse selection and copying.

On this page

bitsrun is built to behave the same in every common terminal: iTerm2, Terminal.app, Ghostty, kitty, WezTerm, Alacritty, Windows Terminal, GNOME Terminal, Konsole, the VS Code terminal, and inside tmux and SSH. Press ? on an empty prompt to see the keys below at any time.

Every key

KeyWhat it does
EnterSend
Shift+Enter, Alt+Enter, or </kbd> then EnterNew line in the prompt
Shift+TabChange mode (see Modes and approvals)
EscStop the current answer. Steps already finished stay; a half-finished one is dropped.
Esc EscRewind to an earlier message, files and conversation
Up / DownEarlier and later prompts
Ctrl+RFind an earlier prompt containing the text you type
Ctrl+A / Ctrl+EStart and end of the line
Alt+B / Alt+FOne word left and right
Ctrl+WDelete the word before the cursor
Ctrl+U / Ctrl+KDelete to the start or the end of the line
TabComplete a / command or an @ file name
Ctrl+LClear the screen
Ctrl+TShow the agent's to-do list
Ctrl+OShow collapsed pastes in full, or the model's reasoning from the last answer
Ctrl+GEdit the prompt in your editor ($VISUAL or $EDITOR)
Ctrl+VPaste an image from the clipboard
Ctrl+CClear what you typed; press twice to leave
Ctrl+DLeave, on an empty prompt

Every one of these can be changed. See Keybindings.

Editing your prompt

The prompt is a small editor. Type over several lines, move with the arrow keys and the word and line keys above, and in the full-screen view click anywhere in the prompt to put the cursor there. Your earlier prompts are kept as history. For a long prompt, Ctrl+G opens it in your own editor; save and close it to bring the text back.

Pasting

Pasting never sends the prompt by accident, even when the text has many lines. Indentation, tabs and line endings stay exactly as they were.

A long paste shows as a short marker so the prompt stays readable:

> Why does this fail? [Pasted text #1, 120 lines]

The full text is sent when you press Enter. Press Ctrl+O to see it first.

The number pad

The number pad types digits, the decimal point, the operators and Enter as you expect, with Num Lock on or off, including on Windows. To check exactly what your terminal sends for any key, run:

bash
bitsrun code keytest

The ! and # prefixes

  • ! runs a command yourself. !npm test runs right away in the project folder, with no approval (you typed it), shows the output, and gives it to the model as context for your next message.
  • # adds a project note. #Use pnpm, not npm appends the line to BITSRUN.md in the project, which the agent reads in every session. It applies from your next message.

Files and images

Type @ and part of a file or folder name, then press Tab to complete it:

> Explain what @src/lib/usage.ts does and add tests for @src/lib/

When you send, files are attached as text, folders as a listing of what they contain, and image files as images. Credential files and paths outside the project ask before they are attached. Limits: 100,000 characters per file and 300,000 per message.

To attach an image, press Ctrl+V with an image on the clipboard (macOS, Windows, and Linux on Wayland or X11), or drag an image file onto the terminal. Up to 5 images per message, 5 MB each. When an image is waiting on the clipboard, a hint above the prompt says so. The model needs to support images.

Commands menu

Type / and a list of every command appears with what it does, your own custom commands included, eight at a time. Use Up and Down to move, Tab to complete, Enter to run, Esc to hide it. The full list is on bitsrun coding agent.

Selecting and copying

By default bitsrun runs full screen with its own scrollback:

  • Scroll with the mouse wheel or PgUp and PgDn. Any other key returns to the newest output.
  • Drag to select. The selection is copied when you release the mouse, and bitsrun shows "Copied N characters". Double-click selects a word (a path or URL counts as one word), and triple-click a whole line.
  • Copying works over SSH and inside tmux too, because bitsrun sends the text to your terminal's clipboard (a standard terminal feature called OSC 52) as well as to your computer's clipboard.
  • Copied text is exactly what was printed: wrapped lines are joined back together and colors are left out.
  • Hold Shift while dragging (Option in iTerm2, Fn in Terminal.app) to use your terminal's own selection instead.
  • When you leave, the conversation is printed to your normal terminal, so it stays in its scrollback. The view keeps the newest 20,000 lines.

To copy the last answer as plain text without selecting anything, type /copy.

The classic view

If you prefer your terminal's own scrollback and selection, use the classic view, which never captures the mouse. Choose one way:

  • for one session: bitsrun --classic
  • always: add "fullScreen": false to settings.json in your config folder
  • with an environment variable: BITSRUN_FULLSCREEN=0

bitsrun also uses the classic view on its own when the terminal cannot show full screen (for example with TERM=dumb).

The status line

While the agent works, the line under the prompt is never blank. It shows the BitsRun loader, a word for what is happening, then the time so far, the speed in tokens per second, and a reminder that Esc stops it:

▌█ Flipping bits... │ 12s │ 41 tok/s │ esc stops
▌█ Waking your endpoint... │ 34s of about 2m │ esc stops
StateWhat it means
Waking your endpointYour BitsRun endpoint is starting, with the time so far and the expected wait. If no GPU is free yet, it says so.
A thinking word, such as Thinking, Bitshifting, Flipping bits, Pondering or Connecting the dotsThe model is working out its answer. Reasoning models show the latest line of their reasoning; Ctrl+O shows it in full afterwards.
WorkingA tool is running, with its target, for example Editing src/app.ts or Running npm test.
Waiting for youAn approval is open.

Colors are left out when the NO_COLOR environment variable is set. The loader stands still when you set BITSRUN_REDUCED_MOTION=1, and in terminals that cannot animate.

When a slow endpoint start finishes while you are in another window, bitsrun rings the terminal bell and shows a desktop notification. Turn that off with "notifications": false in settings.json.

View as MarkdownUpdated

Still stuck?

Email support@bitsrun.com with what you tried and any request id you saw. A real person answers.