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

# Chat with Code

> Chat with your codebase using natural language, directly alongside Xcode

## Overview

Chat with Code is Parsaa's core surface. Open Parsaa alongside Xcode and have a natural-language conversation about your code. Parsaa observes Xcode through the macOS Accessibility API — it can see your open files, the current selection, project structure, and build errors — then uses its built-in tools to act on your project.

<Info>
  Parsaa runs as a **native companion app**, not a plugin or extension. The chat window sits beside Xcode and adapts to its width (compact and wide layouts).
</Info>

## How It Works

<Steps>
  <Step title="Parsaa observes your Xcode session">
    Using the macOS Accessibility API, Parsaa detects the active project and can capture the current editor selection.
  </Step>

  <Step title="You ask a question">
    Type a request in natural language. You can attach files, capture the Xcode selection, @mention a sub-agent, or run a workflow from the context picker.
  </Step>

  <Step title="Parsaa gathers context">
    Parsaa collects the relevant context — focused file, attached files, indexed code — and sends it to your chosen model.
  </Step>

  <Step title="The agent responds with actions">
    The agent streams its response, optionally shows its reasoning, and calls tools to read, edit, search, build, and run. Tool calls appear inline as chips you can expand.
  </Step>
</Steps>

## The Chat Interface

<CardGroup cols={2}>
  <Card title="Message list" icon="message">
    User messages, assistant blocks, tool-call chips, and reasoning rows in one scrolling thread.
  </Card>

  <Card title="Status pill" icon="circle-dot">
    A floating badge shows streaming, thinking, or error states while a response is generated.
  </Card>

  <Card title="Reasoning & thinking" icon="brain">
    Toggle Reasoning Mode and the visible thinking display from the footer. Reasoning effort is selectable in the composer.
  </Card>

  <Card title="Activity tray" icon="list-check">
    A docked panel surfaces the active plan and live to-do list above the input.
  </Card>
</CardGroup>

## Message Queueing

You don't have to wait for the agent to finish. Send a follow-up message while a turn is still processing and Parsaa **queues** it — queued messages are sent in order, one after each turn completes. Useful for stacking up "then do X, then Y" without losing your train of thought.

## Attaching Context

Your messages can carry more than text. From the context picker you can:

* **Capture the Xcode selection** — pull the highlighted code in as a chip
* **Attach files** — add any file in the project by path
* **@mention a sub-agent** — delegate part of the work to a specialized agent
* **Run a workflow** — kick off a multi-step workflow instead of a plain message

See [Capture Code & Context](/features/context-capture) for details.

## Built-in Tools

During a conversation the agent autonomously calls tools to help you. You don't call them directly — the agent decides based on your request.

| Category        | Example Tools                                                                                                 |
| --------------- | ------------------------------------------------------------------------------------------------------------- |
| Read & navigate | `file_tree`, `read_files`, `grep_project`, `globs`, `search_file_names`, `get_symbol_info`, `semantic_search` |
| Edit            | `create_file`, `edit_file`, `rewrite_file`, `delete_file`, `apply_code`                                       |
| Build & run     | `compile_app`, `run_app`, `test_app`, `stop_app`, `list_schemes`, `list_simulators`, `show_build_settings`    |
| Git             | `git_status`, `git_diff`, `git_commit`                                                                        |
| Plan & extend   | `plan_create`, `plan_status`, `todo_write`, `skill`, `mcp_tool`, `web_search`, `web_fetch`                    |

<Tip>
  Asking "fix the crash in the networking layer" may trigger `grep_project` to find the code, `read_files` to understand it, and `edit_file` to apply the fix. Manage which tools are available — and their permissions — in **Settings → Extensions → Tools**.
</Tip>

## Example Use Cases

<AccordionGroup>
  <Accordion title="Understand your codebase">
    *"Explain how authentication works in this project"* — Parsaa reads the relevant files, traces the flow, and explains how the pieces fit together.
  </Accordion>

  <Accordion title="Make changes across files">
    *"Add a loading spinner to the HomeView"* — Parsaa finds the right files, writes the SwiftUI code, and updates related view models or state.
  </Accordion>

  <Accordion title="Debug issues">
    *"Find and fix the crash in the networking layer"* — Parsaa searches, analyzes, and proposes a fix, or applies it after your approval.
  </Accordion>

  <Accordion title="Refactor code">
    *"Refactor this view model to use async/await"* — Parsaa rewrites it with modern concurrency and updates call sites as needed.
  </Accordion>
</AccordionGroup>

## Privacy

<Note>
  In **Private Mode**, nothing is retained past the request and response. In Training Mode you control exactly what is stored with per-category toggles. See [Privacy & Data](/configuration/privacy-and-data).
</Note>
