Skip to main content
Step Code centers interaction on one input box: type messages, paste images, reference files, and run shell commands. You can also switch approvals, Plan mode, and goals, or send messages while output streams.

Input basics

Windows Terminal also supports Ctrl+Enter for newlines. Customize ~/.stepcode/agent/keybindings.json, then run /reload. See Keyboard shortcuts.

Pasting images

Use Ctrl+V to paste an image, or Alt+V on Windows / WSL. Supported terminals also let you drag in an image path.
Select a model that accepts images. By default, large images are resized to within 2,000 px to reduce input size; adjust this in [images]. Inline terminal display and sending images to a model are separate capabilities. Disabling display does not prevent image transmission.

Slash commands

Type / to open completion; Esc closes it. Invoke Skills with /skill:<name>. See Slash commands for the full list.

File references

Type @ to search project files and Tab to complete paths. This works in Git and non-Git directories and on the command line:
Referenced files and files read by tools may enter model context. Check for keys, personal information, and sensitive business data before referencing them.

Approval flow

In Ask mode, or when Autopilot encounters an item requiring confirmation, Step Code opens a dialog titled Approve <tool> or Dangerous <tool>. It shows the reason and a summary of the arguments. Approval starts execution; rejection cancels that call and returns the reason to the model. A batch may prompt for each call.

Permission modes

Use /permissions to choose, or /permissions cycle and Shift+Tab to cycle. Environment variables can override the initial mode; see Environment variables. Operations identified by dangerous-command rules still require confirmation and are rejected in Read Only. These rules cannot cover every script or dangerous action and are not a sandbox. Non-interactive mode (step -p) rejects calls requiring approval by default. Use --approval-mode to adjust ordinary-call policy; dangerous commands are not exempted. See The step command.

Switching modes

Plan mode

/plan toggles the mode, /plan <task> starts planning a task, and step --plan starts in Plan mode. The model investigates and writes a plan before implementation. File editing is restricted to read-only investigation, with the plan file as the only writable file. Shell commands still follow normal permissions. Approving the plan exits Plan mode and begins implementation.

Direct shell commands

! runs a local command and sends its output to the model; !! runs it without sending the output. Each prefix applies to one command: there is no separate shell mode or user-side background execution. Output appears as a card; long output collapses automatically and can be expanded with Ctrl+O.

Goal mode

Goal mode drives multiple turns until the goal is achieved or stopped manually. It suits hours-long tasks. Keep the Step Code process running during the task. The status line shows active time, such as Goal: active · 12m 3s, counting only time when the goal is active. Scheduled tasks use five-field cron expressions. Durable tasks are saved to .stepcode/cron/tasks.json in the project and require project trust. Persisting a task does not let it run without a running scheduler process.

During streaming output

  • Enter queues a message for delivery after the current assistant turn’s tools finish.
  • Esc interrupts the turn and restores queued messages to the input box.
  • Alt+↑ retrieves queued messages; use Alt+Q on Windows / WSL.
  • Ctrl+O collapses or expands tool output.
Configure steeringMode and followUpMode in settings. Follow-up delivery has no dedicated shortcut by default.

External editor

Ctrl+G edits the current input in an external editor; the action is app.editor.external. Selection order is externalEditor, VISUAL, EDITOR, then Notepad on Windows or nano elsewhere.

Next steps