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

# Connect your AI

> Hand the bookkeeping to your AI. See what changed and who did it.

export const AgentChat = ({messages = []}) => <div style={{
  border: "1px solid rgba(128,128,128,0.18)",
  borderRadius: "12px",
  padding: "16px",
  background: "rgba(128,128,128,0.05)",
  display: "flex",
  flexDirection: "column",
  gap: "14px",
  fontSize: "14px",
  lineHeight: 1.5,
  color: "inherit"
}}>
    {messages.map((m, i) => m.from === "you" ? <div key={i} style={{
  alignSelf: "flex-end",
  maxWidth: "85%",
  textAlign: "right"
}}>
          <div style={{
  fontSize: "11px",
  opacity: 0.5,
  marginBottom: "3px"
}}>You</div>
          <div style={{
  display: "inline-block",
  background: "rgba(128,128,128,0.16)",
  color: "inherit",
  padding: "8px 12px",
  borderRadius: "12px 12px 2px 12px",
  whiteSpace: "pre-wrap",
  textAlign: "left"
}}>
            {m.text}
          </div>
        </div> : <div key={i} style={{
  alignSelf: "flex-start",
  maxWidth: "90%"
}}>
          <div style={{
  display: "flex",
  alignItems: "center",
  gap: "6px",
  marginBottom: "4px"
}}>
            <span style={{
  fontSize: "11px",
  opacity: 0.5
}}>Agent</span>
            {m.tool ? <span style={{
  fontSize: "11px",
  opacity: 0.6,
  background: "rgba(128,128,128,0.15)",
  borderRadius: "6px",
  padding: "1px 6px"
}}>
                used {m.tool}
              </span> : null}
          </div>
          <div style={{
  whiteSpace: "pre-wrap"
}}>{m.text}</div>
          {m.choices ? <div style={{
  display: "flex",
  flexWrap: "wrap",
  gap: "6px",
  marginTop: "10px"
}}>
              {m.choices.map((c, j) => {
  const rec = c.toLowerCase().includes("recommend");
  return <span key={j} style={{
    borderRadius: "999px",
    padding: "4px 12px",
    fontSize: "13px",
    color: "inherit",
    border: "1px solid " + (rec ? "rgba(128,128,128,0.45)" : "rgba(128,128,128,0.25)"),
    background: rec ? "rgba(128,128,128,0.12)" : "transparent",
    fontWeight: rec ? 600 : 400
  }}>
                    {c}
                  </span>;
})}
            </div> : null}
        </div>)}
  </div>;

Equated works with any AI tool, so you can automate bookkeeping without a black box. You ask for something: "link my receipts," "prove BMO against this statement," "find the unpaid invoices." Your AI translates it into Equated actions. Equated validates each one and records what happened.

## Use any AI tool

You're not locked in. Any AI that speaks MCP or can call an API can drive Equated — Claude, ChatGPT, Codex, open source models, or whatever you already use.

## Connect in a minute

In ChatGPT desktop Work mode, Claude Code, Codex CLI, Cursor, or Antigravity (desktop app or CLI), paste one line:

```text theme={null}
Read https://app.equated.co/setup.md and follow it to connect Equated.
```

Antigravity is Google's agentic app and CLI; the Gemini web chat at [gemini.google.com](https://gemini.google.com/app) cannot connect to MCP servers.

Your agent registers the connection, guides you through sign-in, and verifies access with a read-only account listing. For Claude.ai, Claude Cowork, or ChatGPT web Work mode, go to **Settings → AI Agents** and follow the Manual instructions. These hosted connections use account settings, not local Codex configuration. Either way, there's no key to copy.

See [AI integration](/api/mcp) for the exact per-assistant setup, or [Authentication](/api/authentication) if you'd rather use an API token for a script.

## What you can hand off

<CardGroup cols={2}>
  <Card title="Clear the inbox" icon="list-checks" href="/workflows/categorize-transactions">
    Categorize transactions, split one charge across accounts, and confirm a whole month in one pass.
  </Card>

  <Card title="Bills" icon="file-text" href="/workflows/enter-bills">
    Confirm what's owed, link the payment that cleared it, and close out a short payment.
  </Card>

  <Card title="Invoices" icon="receipt" href="/workflows/send-invoices">
    Find what's unpaid and link the deposits that collected it.
  </Card>

  <Card title="Receipts" icon="paperclip" href="/workflows/link-receipts">
    Hand over a receipt photo or PDF, link it to the charge it belongs to, or record what an owner paid personally.
  </Card>

  <Card title="Prove an account" icon="scale-balanced" href="/workflows/reconcile-an-account">
    Read a statement, find what the feed missed, enter it, and complete the reconciliation.
  </Card>

  <Card title="Open the books" icon="flag" href="/workflows/set-up-opening-balances">
    Set opening balances and check a QuickBooks cutover account by account.
  </Card>

  <Card title="Vendors and customers" icon="users" href="/concepts/merchants">
    Look up who you spend with and who pays you, and merge duplicates.
  </Card>

  <Card title="Adjustments" icon="pen-to-square" href="/concepts/the-ledger">
    Post a correcting journal entry, or undo a manual one that shouldn't have been made.
  </Card>
</CardGroup>

Your AI can also read your financial statements (profit and loss, balance sheet, cash flow, and the general ledger) to check its own work, adjust the chart of accounts, and manage automation rules. It should only touch your rules when you ask it to.

Ask "what am I burning?" and it answers from cash flow, which counts what left your account whether or not you've confirmed it yet. See [Confirmed books, and what the bank did](/concepts/the-ledger#confirmed-books-and-what-the-bank-did).

## What a handoff looks like

Your AI investigates, proposes, and waits. You decide.

<AgentChat
  messages={[
{ from: "you", text: "Does my QuickBooks migration line up? Cutover was Jan 1." },
{ from: "agent", tool: "equated", text: "Checked all 5 imported accounts against their live feeds at Jan 1. Four match.\n\nAmex Business is off by $1,842.30. QuickBooks says −$3,105.12; walking the feed back to Jan 1 gives −$4,947.42.\n\nQuickBooks' register for that card shows payments through December but no charges after Dec 3 — it fell behind. The feed is the more complete record here.", choices: ["Use the feed balance", "Show me the December charges"] },
{ from: "you", text: "Use the feed balance." },
{ from: "agent", tool: "equated", text: "Amex Business will open at −$4,947.42 on Jan 1. Nothing is posted yet — post the opening balances when you're ready and I'll complete them." },
]}
/>

## How your AI stays safe

Your AI uses the same actions you do. It doesn't rewrite ledger rows directly — it asks Equated to perform an action, Equated validates it, previews the effect when the change is computed, and records the result against your token or connector.

Destructive steps stay in your hands. Merging merchants, reopening a completed reconciliation, and deleting an account are all one-way or wide-reaching, so a well-behaved agent confirms them with you first.

<Tip>
  See [Action safety](/api/action-safety) for the preview-and-execute contract, and [How actions work](/concepts/actions) for the model behind it.
</Tip>
