Skip to content
Terminal > Getting started

Coding in Mel

How the terminal, agent, editor, and code review work together on real code.


Mel's terminal, agent, editor, and review panel aren't separate apps bolted together — they share one working directory, one git repo, and one keyboard. This page walks a realistic task through all four so you can see how they hand off to each other.

Say the task is: *"our CLI crashes on empty input — find it, fix it, verify it."*

Explore in the terminal

Start where you'd start anyway: reproduce it.

cd ~/proj/cli
cargo run -- ""

The failing run is a block. Select it and press ctrl+↑ (Attach Last Command Output) — Mel appends the command and its output to your prompt, so the evidence travels with your next step.

For orientation, open the tools panel (ctrl+\): the project explorer shows the repo tree, and global search (ctrl+shift+F) runs ripgrep across the project with regex and case toggles. Clicking a hit opens the file in the built-in editor beside your terminal. You can also drag a file from the tree straight into the prompt to reference it.

Hand it to the agent

Press ctrl+enter with the attached output still in the prompt and add: find and fix the crash on empty input, then verify with cargo test. The agent greps the codebase, reads the relevant files, proposes an edit, and asks for approval before writing. Each applied edit shows a diff card inline; each command it runs (like cargo test) shows as a shell block inside the conversation. The agent is expected to verify its own work — re-reading files and running builds or tests before declaring done.

Two useful controls while it works:

  • Typing a shell command into the agent input just runs it — Mel autodetects shell versus natural language (press ctrl+I to override, or prefix with ! to force shell).
  • The A⁺ chip toggles autonomous mode: approvals auto-accept, for long hands-off runs.

Inspect in the editor

Want to see the change in context, not just the diff card? Double-click the file in the project explorer (or ctrl+click a definition inside the review panel when a language server is enabled). The built-in editor gives you syntax highlighting, a line-number gutter, buffer-word completion, and — with a language server like rust-analyzer running — live diagnostics as you type, hover docs, and go-to-definition. ctrl+S saves.

Verify in code review

Press ctrl+shift+=. Every uncommitted change — yours and the agent's — appears as per-file diff cards with +/− counts. Hover a diff line and click 💬 to leave an inline comment; when you've marked everything up, Send to Agent turns your comments into one prompt so the agent addresses them in place. Discard buttons (↩) revert a single file or everything, per git.

When the diff reads clean and the tests pass, commit from the terminal.

The loop, compressed

  1. Reproduce in the terminal; attach the failing output (ctrl+↑).
  2. Delegate with ctrl+enter; approve or auto-approve edits.
  3. Spot-check in the editor; let the language server complain early.
  4. Review the full diff (ctrl+shift+=), comment, send comments back to the agent.
  5. Commit.

Next: customizing Mel to shape this workflow, or the keyboard shortcuts table.