> ## Documentation Index
> Fetch the complete documentation index at: https://ami.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Basics

> Learn the fundamentals of chatting with ami

The chat is the main interface for interacting with ami. Use it to send messages and observe ami as it works.

## Creating a New Chat

Press `Cmd+Shift+N` (macOS) or `Ctrl+Shift+N` (Windows/Linux) to start a new chat. You can also click **New Chat** in the sidebar.

## Sending Messages

Press `Cmd+Enter` (macOS) or `Ctrl+Enter` (Windows/Linux) to send a message.

## Queueing Messages

While ami is working, queue additional messages by pressing `Cmd+Shift+Enter` (macOS) or `Ctrl+Shift+Enter` (Windows/Linux). ami processes queued messages after completing the current task.

## Interrupting ami

Press `Ctrl+C` to stop ami mid-task. Once idle, you can send a new message.

## Prompting Guide

ami is concise by default. It won't over-explain unless you ask.

### Be Explicit

Instead of vague requests, provide specific details.

| ❌ Avoid                 | ✅ Preferred                                                     |
| :---------------------- | :-------------------------------------------------------------- |
| "Can you add a button?" | "Add a submit button to the form in `@src/components/Form.tsx`" |
| "Fix the styling"       | "Fix the padding on the header in `@src/components/Header.tsx`" |

### Keep It Focused

One task per thread works best. Don't ask ami to refactor auth in the same thread where it was fixing CSS.

### Don't Make ami Guess

If you know which files to look at, which commands to run, or which patterns to follow, say so.

### Tell ami How to Verify

Include verification steps in your prompt:

* "Run `npm test` after making changes"
* "Check `localhost:3000/settings` to confirm it works"

### Example Prompts

```
Add a dark mode toggle to the settings page. Use the existing theme context in `src/context/theme.tsx`
```

```
Run `npm run build` and fix all the type errors
```

```
Look at `src/api/users.ts` and explain how the authentication middleware works
```

```
Refactor the duplicate code in these 3 files into a shared utility
```

```
Find where we handle webhook events and add logging for the `payment.completed` event
```

```
Review the last commit and check for any obvious bugs
```

```
Only plan how to implement real-time notifications. Do NOT write any code yet.
```

<Tip>
  The first prompt matters. It sets direction for the entire thread. Take time
  to write it well, that's why we use `Cmd+Enter` to submit.
</Tip>

## Edit & Undo

Click any previous message to edit it. This is powerful for iteration.

When you edit a message that has responses after it, ami asks what to do:

* **Keep file changes:** Your filesystem stays as-is. ami continues from the edited point.
* **Revert file changes:** ami undoes all file edits made after that message, then continues.

You can also revert individual file changes. After ami edits files, a file count badge appears. Click it to see changes and revert specific files.

<Warning>
  Abandon noisy threads. If a thread accumulates too many failed attempts and
  error messages, start fresh. A clean context often works better than debugging
  a cluttered one.
</Warning>

## Task Tracking

For complex tasks, ami creates a todo list and tracks progress.

The pinned todo list appears above the chat showing:

* Total tasks and completion count
* Current in-progress task
* Completed tasks (struck through)

ami updates todos in real-time as it works. Tasks move from pending → in progress → completed.

This is especially useful for multi-step work like "fix all type errors" or "refactor these 5 files."
