Трекер расходов с Claude Code в 2026 году: импорт, проверка и бюджет
Подключите Claude Code к Expense Budget Tracker, проверьте импорт банковской выписки, сверьте остатки и управляйте бюджетом через актуальный Agent API.
Хороший трекер расходов с Claude Code должен начинать работу с чтения, а не с записи. Прежде чем хотя бы одна банковская операция попадёт в журнал, Claude Code может определить рабочее пространство, изучить актуальную схему, проверить нужный счёт и диапазон дат, а затем показать, что именно он собирается изменить.
Возможность всё проверить — главная причина поручить эту задачу терминальному агенту. Claude Code возьмёт на себя работу с файлами и HTTP, а финансовые решения останутся за вами: правильно ли выбран счёт, является ли строка переводом, какая категория подходит и нужно ли вообще выполнять предложенную запись.
Получается ИИ-трекер расходов с чётким этапом подтверждения, а не финансовый чат-бот с широкими полномочиями.
Expense Budget Tracker поддерживает такой процесс через прямой Agent API. Всё начинается с публичного URL, через который Claude Code узнаёт о доступных действиях:
https://api.expense-budget-tracker.com/v1/
Отсюда Claude Code может пройти авторизацию по одноразовому коду из письма, сохранить полученный ApiKey с длительным сроком действия вне памяти чата, изучить разрешённую схему и использовать отдельные эндпоинты для чтения и подтверждённой записи данных.

Что делает эта настройка и куда уходят данные
Claude Code работает в терминале и может обрабатывать файл выписки, к которому вы открыли доступ на своём компьютере. Но это не значит, что весь процесс работает офлайн или только локально.
Согласно актуальным требованиям Anthropic к Claude Code, для работы нужно подключение к интернету. Для аутентификации и ИИ-обработки используется Anthropic или провайдер модели, настроенный в вашей установке Claude Code. Поэтому относящееся к задаче содержимое выписки, промпты и результаты API могут обрабатываться вне вашего компьютера на условиях этого провайдера.
Остальная часть пути устроена отдельно:
| Граница | Что на ней происходит |
|---|---|
| Ваш компьютер | Исходная выписка изначально хранится в локальном файле. Claude Code получает только тот доступ к файлу, который вы разрешили. |
| Claude Code и провайдер модели | Claude Code интерпретирует файл, готовит запросы и объясняет результаты. Для аутентификации и ИИ-обработки нужен интернет. |
| Прямой Agent API | Claude Code отправляет только необходимые для задачи аутентифицированные запросы на чтение и одобренную вами запись. API не умеет просматривать произвольные файлы на вашем компьютере. |
| Хранилище Expense Budget Tracker | Подтверждённые финансовые записи сохраняются в облачной базе данных либо в вашей собственной инфраструктуре, если вы развернули приложение самостоятельно. |
Этот вариант также отличается от удалённого MCP-коннектора для Claude и Claude Desktop. В прямом API используется ApiKey с длительным сроком действия, и именно этот способ рассматривается в статье. MCP использует браузерный OAuth по другому URL; само подключение коннектора не даёт ему доступа к локальным файлам.
Если для вас главное — отсутствие постоянного подключения к банку, подробнее о границах обработки данных рассказано в статье «Приложение для бюджета без подключения к банку».
Подключите Claude Code через начальный URL API
Установите Claude Code и авторизуйтесь по официальной инструкции Anthropic. В справочнике по CLI описана работа с командами в интерактивном и неинтерактивном режимах.
Когда команда claude заработает в терминале, запустите её в каталоге, где хранятся ваши финансовые файлы, и отправьте такой промпт:
Подключись к Expense Budget Tracker через https://api.expense-budget-tracker.com/v1/.
Следуй инструкциям из ответа по этому URL и не предполагай заранее детали эндпоинтов.
Сначала попроси у меня email учётной записи, затем — восьмизначный код из входящего
письма. Сохрани полученный ApiKey вне памяти чата только после того, как я подтвержу
место хранения.
После входа вызови /me, получи список моих рабочих пространств, попроси подтвердить
нужное пространство, сохрани его для этого ключа и изучи /schema. Пока не записывай
финансовые данные.
Актуальная последовательность подключения выглядит так:
- Выполнить
GET https://api.expense-budget-tracker.com/v1/и следовать инструкциям из начального ответа API. - Указать email учётной записи, когда Claude Code его запросит.
- Указать восьмизначный код из письма. После успешной проверки вы получите
ApiKeyс длительным сроком действия. - Сохранить ключ вне памяти чата, желательно как
EXPENSE_BUDGET_TRACKER_API_KEYв одобренном вами месте. Не добавляйте его в репозиторий. - Вызвать
/v1/meи/v1/workspacesс заголовкомAuthorization: ApiKey <key>. - Выбрать нужное рабочее пространство запросом
POST /v1/workspaces/{workspaceId}/select. - Вызвать
/v1/schemaперед генерацией SQL.
Выбранное рабочее пространство сохраняется для этого ключа. В последующих SQL-запросах можно не передавать X-Workspace-Id, хотя Claude Code всё ещё может указать этот заголовок, если для одного запроса нужно переопределить сохранённое пространство. Если у учётной записи ровно одно рабочее пространство, а для ключа ещё ничего не выбрано, API может автоматически выбрать, сохранить и использовать это пространство. Но при каждой проверке перед записью всё равно стоит явно называть выбранное рабочее пространство.
Подробная схема аутентификации и рекомендации по хранению приведены в разделе «Настройка ИИ-агента».
Задайте Claude Code правила проверки до первого импорта
Локальный файл CLAUDE.md может хранить правила работы для каталога с финансами, но не сам ключ. Сделайте инструкции короткими и конкретными:
# Процесс работы с Expense Budget Tracker
- Начинай с https://api.expense-budget-tracker.com/v1/ и изучай /schema.
- Для всех операций чтения используй POST /v1/sql/query.
- Перед записью показывай целевое рабочее пространство, точный SQL, ожидаемое
количество затронутых строк, итоги исходных данных и возможные дубликаты.
Жди моего явного подтверждения.
- Используй POST /v1/sql/execute только для точно подтверждённого INSERT, UPDATE или DELETE.
- После каждой записи заново проверяй данные через /v1/sql/query.
- Никогда не придумывай балансирующую операцию и не меняй молча сомнительную категорию.
- Храни ApiKey вне этого файла и вне памяти чата.
Добавьте реальные названия своих счетов, правила категорий и переводов, а также валюту отчётов, если они не меняются. Не копируйте категории из примеров в трекер только потому, что они встретились в статье. Claude Code должен запрашивать ваши существующие данные и использовать актуальную схему.
Импортируйте одну банковскую выписку с помощью Claude Code
Для первого импорта намеренно сузьте задачу: один счёт, одна валюта, один закрытый период выписки и файл, строки которого вы можете проверить. CSV хорошо подходит для начала, потому что его структуру легко увидеть и проверить. Для других форматов сначала убедитесь, что данные корректно извлекаются именно из этого файла.
1. Зафиксируйте границы исходных данных
До разбора файла определите:
- банковский счёт и соответствующий ему счёт в трекере
- валюту счёта
- первую и последнюю даты проведённых операций в выписке
- начальный или предыдущий достоверный остаток
- конечный остаток по выписке
- есть ли в файле операции, ожидающие проведения
Для импорта и сверки используйте проведённые операции. Не включайте ожидающие проведения операции в подтверждённый пакет, пока банк их не проведёт.
2. Проверьте целевые данные до подготовки строк
Сначала попросите Claude Code использовать эндпоинт чтения:
Я хочу импортировать ~/finances/checking-2026-07.csv.
Используй только /v1/sql/query. Подтверди выбранное рабочее пространство, изучи
/v1/schema, перечисли доступные счета и определи единственный счёт, который
соответствует этой выписке. Запроси записи ledger_entries за период выписки и найди
пересечения. Покажи счёт, валюту, границы дат, количество существующих строк и все
возможные дубликаты. Ничего не записывай.
Основной эндпоинт для чтения:
POST https://api.expense-budget-tracker.com/v1/sql/query
Он принимает один запрос только для чтения: SELECT или WITH ... SELECT. В теле запроса передаётся SQL, построенный по актуальной /schema:
{
"sql": "SELECT * FROM accounts LIMIT 100"
}
Claude Code должен рассчитывать итоги и сгруппированные результаты в SQL, а не загружать весь журнал операций в диалог. Результаты запросов ограничены 100 строками.
3. Оценивайте предпросмотр, а не обещания
Попросите Claude Code разобрать выписку в таблицу предпросмотра до создания INSERT. Как минимум в ней должны быть исходная строка, дата, сумма, валюта, целевой счёт, предлагаемый тип операции, предлагаемая категория и статус дубликата.
Особенно внимательно проверьте:
- переводы между собственными счетами
- возвраты покупок и возмещения расходов
- снятие наличных и банковские комиссии
- незнакомых контрагентов
- операции в иностранной валюте
- строки вблизи начала и конца периода выписки
- все строки, похожие на уже существующие записи журнала
Совпадение даты и суммы может указывать на дубликат, но ничего не доказывает: у двух реальных операций могут совпасть оба значения. Если в исходном файле есть постоянный идентификатор операции от банка, используйте его как дополнительный признак, когда в актуальной схеме есть подходящее поле. Иначе оставьте идентификатор в предпросмотре и не пытайтесь во что бы то ни стало записать его в базу.
Затем попросите краткую сводку для подтверждения:
Подготовь предпросмотр импорта без записи. Покажи:
1. подтверждённые рабочее пространство и счёт
2. диапазон дат и валюту исходных данных
3. количество и итоговую сумму со знаками для исходных строк
4. каждую предлагаемую строку журнала
5. возможные дубликаты и неоднозначные классификации
6. точный запрос или запросы INSERT, которые ты отправишь
7. ожидаемое количество затронутых строк
Остановись и жди моего подтверждения.
4. Отправляйте только подтверждённый набор изменений
Основной эндпоинт для записи:
POST https://api.expense-budget-tracker.com/v1/sql/execute
Он принимает один подтверждённый запрос INSERT, UPDATE или DELETE, включая поддерживаемые формы с WITH. Этот эндпоинт намеренно отделён от эндпоинта чтения.
Один запрос на изменение может затронуть не более 100 строк. Для длинного импорта подтвердите весь предложенный набор изменений до выполнения. Сначала Claude Code должен отправить 1–3 репрезентативные строки с той же формой SQL. Если пробная запись прошла успешно, он должен сразу продолжить запись остальных подтверждённых строк последовательными пакетами не более 100 строк. Каждый пакет нужно отслеживать и проверять, но останавливаться только ради просьбы продолжить или повторного подтверждения не следует. Новая проверка с вашим участием нужна, если изменился объём работы, возникла новая неоднозначность или выполнение завершилось ошибкой.
SQL-интерфейс не поддерживает ON CONFLICT, поэтому дубликаты нужно обрабатывать явно, а не скрывать за операцией upsert.
POST /v1/sql по-прежнему существует для совместимости и ограниченных атомарных сценариев с несколькими SQL-инструкциями. Это не стандартный эндпоинт для чтения выписок или обычных операций записи.
5. Снова запросите записанные строки
Успешный ответ API не означает, что импорт завершён. Попросите Claude Code снова запросить затронутый счёт и период через /v1/sql/query и сравнить сохранённый результат с подтверждённым предпросмотром:
- количество затронутых строк
- даты и суммы
- исходную валюту
- привязку к счетам
- типы операций и категории
- количество дубликатов
Не просите Claude Code «исправить всё, что выглядит неправильно». Если при проверке найдено расхождение, вернитесь к диагностике только для чтения, подготовьте одно конкретное исправление и подтвердите его отдельно.
В более подробном руководстве по импорту банковских выписок разобраны переводы, возвраты, пересекающиеся периоды и другие строки, из-за которых внешне аккуратный импорт может оказаться ошибочным.
Сверьте один счёт перед импортом следующего
Сверка показывает, что все изменения остатка по выписке объясняются движениями в журнале. Сравнивайте один банковский счёт с соответствующим счётом в трекере, используя одну валюту и один и тот же период проведённых операций.
Для обычного депозитного счёта базовая проверка выглядит так:
ожидаемый конечный остаток = начальный остаток + проведённые поступления − проведённые списания
Если в трекере используются движения со знаком, эквивалентная формула такова:
ожидаемый конечный остаток = начальный остаток + сумма проведённых движений со знаком
Для счетов, учитывающих обязательства, например кредитных карт, правила знаков могут отличаться. Перед сравнением чисел попросите Claude Code явно указать найденное правило.
Используйте промпт, который оставляет диагностику в режиме только для чтения:
Используй только /v1/sql/query. Сверь импортированный расчётный счёт с конечным
остатком из выписки [сумма и валюта]. Назови начальную границу периода и правило знаков.
Если остатки не совпадают, покажи точную разницу и перечисли возможные пропущенные,
продублированные строки или строки с неверным знаком. Не добавляй балансирующую
операцию и не меняй существующие данные.
Если разница не равна нулю, проверьте начальный остаток, пропущенные или продублированные операции, переводы, ожидающие проведения операции, знаки, даты и валюты. Синтетическая балансирующая операция сделает цифры на экране одинаковыми, но скроет причину расхождения.
Нулевая разница доказывает, что движения по счёту сходятся. Она не доказывает, что категории выбраны правильно. Перед переходом к следующему счёту отдельно проверьте итоги по категориям. В руководстве по сверке бюджета с банковским остатком это различие разобрано подробнее.
Анализируйте расходы через эндпоинт чтения
После проверки импорта Claude Code может использовать ledger_entries для анализа расходов в режиме только для чтения. Формулируйте вопрос точно и просите показать SQL, чтобы было понятно, как именно посчитан результат.
Изучи /v1/schema, затем с помощью /v1/sql/query сравни расходы по категориям за
последние три полных календарных месяца. До написания SQL определи явные даты начала
и конца. Исключи переводы в соответствии с сохранённым типом операции. Выполни
агрегацию в SQL, покажи запрос и объясни все исключённые или сомнительные строки.
Не меняй данные.
Это важно, потому что «расходы» — не универсальный столбец. Полезный ответ зависит от актуальной схемы, типов операций, валюты счёта, возвратов и точных границ дат. Claude Code может написать запрос, но вам всё равно должно быть видно, что именно он посчитал.
Для разового анализа задавайте узкие вопросы, например:
- Какие категории сильнее всего изменились между двумя полными месяцами?
- Из каких контрагентов складывается итог по категории?
- Есть ли возможные дубликаты в последнем импортированном периоде?
- Для каких категорий фактических операций нет соответствующей строки бюджета?
Лимита в 100 строк обычно достаточно, если Claude Code группирует и фильтрует данные в базе.
Обновляйте бюджет с Claude Code, сохраняя решение за собой
При изменении бюджета действует тот же цикл проверки, что и при импорте выписок. Claude Code может прочитать budget_lines, сравнить план с фактическими операциями журнала и подготовить предлагаемый запрос INSERT, UPDATE или DELETE. А вы решаете, соответствуют ли новые суммы вашим планам.
С помощью /v1/sql/query сравни фактические доходы и расходы этого месяца с
budget_lines. Затем подготовь проект бюджета на следующий месяц, используя
существующие категории и актуальную схему.
Для каждой изменённой строки покажи текущую сумму, предлагаемую сумму, разницу и
причину изменения. Покажи точный SQL и ожидаемое количество затронутых строк.
Не вызывай /v1/sql/execute, пока я не подтвержу конкретные строки. После
подтверждённой записи снова запроси эти строки и проверь их.
Не позволяйте месяцу с высокими расходами незаметно стать новым планом. Крупная трата может быть исключением, отсутствующая категория — проблемой в данных, а перевод мог быть ошибочно классифицирован. Claude Code может показать различия, но окончательное решение о следующем шаге всё равно остаётся за вами.
Учитывайте актуальные границы Agent API
API открывает небольшой набор отношений. Всегда считайте /v1/schema актуальным источником истины, но сейчас доступ на чтение и запись разделён так:
| Отношение | Доступ |
|---|---|
ledger_entries |
Чтение и подтверждённая запись |
budget_lines |
Чтение и подтверждённая запись |
workspace_settings |
Чтение и подтверждённая запись |
account_metadata |
Чтение и подтверждённая запись |
accounts |
Только чтение |
fx_rates_raw |
Только чтение |
fx_rates_daily |
Только чтение |
Актуальные ограничения Agent API:
- 100 возвращаемых строк на запрос
- 100 затронутых строк на одну инструкцию изменения в рамках одного запроса
- общий тайм-аут SQL-запроса — 25 секунд
- 10 запросов в секунду и 10 000 запросов в день для каждого ключа
Политика SQL блокирует DDL-команды, такие как CREATE, DROP и ALTER, обёртки транзакций, комментарии SQL, идентификаторы в кавычках, строки в долларовых кавычках, set_config() и запрещённые функции. Сейчас разрешены функции SUM, COUNT, MIN, MAX, AVG и COALESCE. Для поиска текста без учёта регистра используйте ILIKE вместо LOWER(...), а вместо NOW() или DATE_TRUNC() — явные диапазоны дат. Основные эндпоинты принимают по одной инструкции на запрос. ON CONFLICT не поддерживается.
Эти ограничения сужают возможности SQL, но не определяют, правильно ли выбрана категория и действительно ли строка выписки является переводом. Row Level Security изолирует рабочие пространства на уровне базы данных. Ключи ApiKey хранятся в виде SHA-256-хешей, и их можно отозвать в продукте. Но открытый текст ключа на своём компьютере всё равно нужно защищать, а каждое изменение финансовых данных — проверять.
Актуальный контракт эндпоинтов и ограничения приведены в справочнике по API.
Agent API для Claude Code и Claude MCP — разные способы подключения
Те, кто ищет трекер расходов для Claude, часто смешивают работу в терминале с коннекторами для Claude или Claude Desktop. Expense Budget Tracker поддерживает оба варианта, но их настройки и учётные данные несовместимы.
| Claude Code с Agent API | Claude или Claude Desktop с MCP | |
|---|---|---|
| Лучше всего подходит для | Локальных файлов, терминальных процессов, скриптов и прямого HTTP | Диалогов в клиенте Claude с поддержкой MCP |
| Начальная точка | https://api.expense-budget-tracker.com/v1/ |
https://mcp.expense-budget-tracker.com/mcp |
| Аутентификация | Одноразовый код из письма, затем ApiKey с длительным сроком действия |
Браузерный OAuth |
| Интерфейс чтения и записи | /v1/sql/query и /v1/sql/execute |
Инструменты sql_query и необязательный sql_execute |
| Доступ к локальным файлам | Зависит от файлов и разрешений, доступных Claude Code | Сам удалённый коннектор такого доступа не предоставляет |
Если ваша цель — подключить Claude или Claude Desktop, используйте документацию по MCP-коннектору или полное руководство по MCP-трекеру расходов для Claude. Если задача начинается с локальной выписки и терминала, используйте процесс через Agent API из этой статьи.
Универсальный промпт для всего процесса
Этот промпт объединяет подключение, предпросмотр, подтверждение и проверку в одну последовательность:
Подключись к Expense Budget Tracker через https://api.expense-budget-tracker.com/v1/
и следуй инструкциям из ответа по этому URL. Используй ApiKey, сохранённый вне памяти
чата. Вызови /me, получи список рабочих пространств, попроси меня подтвердить нужное
рабочее пространство, выбери его и изучи /schema.
Я хочу импортировать [путь к локальному CSV] на счёт [название счёта] за
[закрытый диапазон дат] в [валюта]. Сначала с помощью /v1/sql/query проверь счёт,
существующие категории и пересекающиеся записи ledger_entries. Разбери файл и
подготовь полный предпросмотр.
Отметь возможные дубликаты, переводы, возвраты покупок, возмещения расходов, комиссии,
необычных контрагентов и сомнительные категории.
Покажи итоги исходных данных, предлагаемые строки, точный SQL и ожидаемое количество
затронутых строк. Ничего не записывай, пока я не подтвержу полный набор изменений.
Используй /v1/sql/execute только для этой подтверждённой записи. При длинном импорте
сначала отправь пробный пакет из 1–3 репрезентативных строк. Если он выполнен успешно,
сразу продолжи запись остальных подтверждённых строк последовательными пакетами не
более 100. Проверяй каждый пакет через /v1/sql/query, но не проси повторного
подтверждения, если только не изменился объём работы, не появилась новая неоднозначность
или не произошла ошибка выполнения.
В конце сверь этот один счёт с конечным остатком по выписке. Если остаток не совпадает,
объясни разницу, не создавая балансирующую операцию и не меняя данные.
Начните с одного счёта и одного закрытого периода. Если предпросмотр понятен, повторный запрос правильно возвращает подтверждённые строки, а конечный остаток сходится, у вас получился прозрачный и проверяемый процесс работы Claude с личными финансами, а не чат-бот с расплывчатым разрешением менять финансовые записи.