Overview
A developer’s guide to Compsoser
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.