Welcome to Composer

Composer is your AI coding assistant that lives in your editor. It helps you explore code, write new features, and modify existing code while staying in your workflow. Access it with: ⌘I to open, and ⌘N to create a new composer.

Agent

Enable Agent with ⌘. to get a coding partner that can work proactively with your codebase:

  • Pull relevant context automatically (try @Recommended)
  • Run terminal commands
  • Create and modify files
  • Search code semantically
  • Execute file operations

For now, Agent only supports Claude models

Each tool operation counts as a separate request in your quota.

Normal

Normal mode gives you core features for code exploration and generation:

  • Search through your codebase and documentation
  • Use web search
  • Create and write files
  • Access expanded @-symbol commands

Working with Context

Type @ to see context options based on your current work. Navigate with arrow keys, select with Enter. Filter by typing after @, and use Ctrl/⌘ M to switch file reading methods. @Recommended in Agent automatically pulls relevant context.

# File Selection Use # followed by a filename to target specific files. Combine with @ symbols for precise context control.

Context Pills Pills at the top of your chat show active context. Add or remove them to control what Composer sees. Use # to select files and they will show up in the pills.

Generating & Applying Changes

When Composer suggests changes:

  • Review in diff view
  • Accept or reject with buttons
  • Use checkpoints to undo

Checkpoints

When generating code, each step creates a checkpoint. You can return to any previous version by clicking on checkout to jump back. This can be very useful if you’re not happy with the generated code and want to restart from an earlier version.

History

Access previous composers, and chats through the history. You can open this from the hisory icon to the right of the Composer tab. You will see a list of composers and chats, with the option to go back to any of them. You can also edit names and remove them.

Open with ⌘+⌥+L or Ctrl+Alt+L when the composer is focused.

Layout

The Composer can have two layout modes:

  • Pane
  • Editor

With Pane, you get a sidebar with the chat on the left and the code editor on the right.

With Editor, you get a single editor window, just like you view code in your editor. This allows for moving it around, splitting and event moving it to a separate window.

Beta Features

Iterate on lints

Composer attempts to fix linting issues in generated code across most programming languages. If Composer detects any lint errors in the generated code it will try to automatically fix them when this feature is enabled. Currently we only support one iteration

Some languages (like Rust) need files to be saved before linting errors appear making this feature not as powerful in all languages.

FAQ

What’s the difference between Chat and Composer?

Chat helps you search and understand your code. Use it to explore your codebase, ask questions, and get explanations. You can search your code with ⌘⏎.

Composer helps you write and edit code. It provides an environment where you can generate new code and make changes directly in your files.