← On DeckWhat On Deck collects
This page describes what the On Deck code in this repository does. If
it ever disagrees with the code, the code is right.
In short
- Your sessions, prompts, code and project paths stay on your
machine.
- Anonymous usage counts are sent by default. You can turn them off in
Settings → Privacy. When they are off, nothing is
sent.
- Bug reports, feedback and survey answers are sent only when you
click Send, and you can read the text first.
- Installed builds check GitHub for new releases. Nothing is
downloaded or installed without your click.
What stays on your machine
On Deck watches your Claude Code sessions through Claude Code's hooks
and status line. Those hooks post events to a server on
127.0.0.1 (this computer only) that requires a token
created at install time.
On Deck keeps its data in its data folder:
- macOS:
~/Library/Application Support/on-deck
- Windows:
%APPDATA%\on-deck
| File |
What it holds |
state.json |
Your settings and session preferences (favorites, groups, mute,
names you gave sessions). For sessions seen recently it also keeps the
session name, the project folder (cwd), start and last-seen
times, the last status and context percentage. Sessions older than 30
days are removed. |
token |
The token of the local server (file mode 0600 where the
system supports it). |
logs/hub.log |
On Deck's own log, up to 512 KB per file, one previous file kept.
Prompt text and tool inputs are not written to it. |
telemetry.json, telemetry-queue.json,
install-id, uninstall-ref |
Usage-statistics state described below. |
On Deck reads the session registry in ~/.claude/sessions
and, from Claude Code transcripts, one record type that marks a
conversation handed to a new session. It does not read anything else
from transcripts.
On Deck changes ~/.claude/settings.json only when you
press Install or Uninstall, and it
makes a timestamped backup first. Deleting the data folder does not
remove the hooks; use Uninstall in Settings for
that.
Anonymous usage statistics
On by default. On the first launch a notice explains
it. Nothing is sent until you have closed the notice, or it has been on
screen for five minutes. Events recorded before that wait in a queue on
your machine.
Turn it off: Settings → Privacy. When it is off, On
Deck records nothing, clears the queue and removes the copy of the
install id that the Windows uninstaller reads.
Every request carries: the random install id, app
version, operating system and its version, CPU architecture and the
interface language.
The install id is a random UUID created on the first launch. It is
not derived from anything on your machine and is not linked to your name
or account.
Events (the full schema is in
src/main/telemetry/props.ts):
app_installed: first launch of a new install, with the
channel (dmg, nsis or dev) and
whether it is an upgrade from a version without statistics.
app_started: every launch.
app_active: once per local day, with counts for that
day: sessions seen, the most at the same time, questions answered here,
notifications shown, terminals opened from On Deck.
first_session_seen, question_answered,
terminal_opened: the first time each happens, with no other
data.
feature_used: first use of favorites, groups, mute,
rename, language, details or the menu bar popover.
settings_changed: which setting changed. Only on/off
values, language, theme, or a choice from a short list are sent. Numbers
you typed are reported as just "changed".
update_installed: the version you updated from.
integration_installed,
integration_install_failed,
integration_uninstalled: the result of Install or
Uninstall, with a short error code on failure.
error: a handled technical failure as a fixed code (for
example, that the local server could not start), and where it happened.
At most one per code every six hours.
survey_shown, survey_dismissed: that the
survey card was shown or declined.
telemetry_enabled: sent when you turn statistics back
on.
Events are sent in batches of up to 100, about once a minute. Nothing
in an event is free text.
Where they go: to the On Deck API, a server run by
the developer (PostgreSQL, with Grafana dashboards). It is not a
third-party analytics service. The address is in
src/main/telemetry/api.ts. The server does not store IP
addresses: the address is used only in memory, hashed, to apply rate
limits. Nightly database backups are kept for 14 days.
Bug reports
A report is sent only when you open Found a bug? Send us a
report (the bug icon in the top bar, or Settings → Support) and
press Send report. The full diagnostic text is shown
first, so you can read it. You can also Save to file
instead; then nothing leaves your computer.
A report contains:
- the description you wrote and the contact you optionally typed;
- the app version, Electron and Chrome versions, operating system and
version, locale, and time since start;
- the integration state: whether the hooks and status line are
installed, whether the local server listens, the notification state, the
path of the Claude Code settings file;
- the result of a live test of the hook script, and counters of
requests the local server received since start;
- whether tools are found on the system (
claude,
sh or bash, curl,
tmux, git, PowerShell), the
claude --version output, and the values of
CLAUDE_CONFIG_DIR and the Git Bash path where they
apply;
- On Deck's own hook entries and status line from the Claude Code
settings file, with other hooks only counted;
- a list of sessions by a shortened id (8 characters), status, source,
times, context percentage, model, whether a terminal is known (process
id, terminal app, tmux pane yes/no), number of background tasks, and
whether a question is pending. No session names, prompts or project
paths;
- the recent hook events, with time, shortened session id and the
status they produced;
- the last 200 KB of On Deck's log.
Everything passes through a redaction step that removes the On Deck
token, bearer values, bot tokens and your home folder (shown as
~). Paths to tools and to the hook scripts can still
appear, with the home folder replaced.
Screenshot (optional). The screenshot is of the On
Deck window as it is on screen. It is on by default when available, and
the form says so. It can show session names and task text (the latest
prompt is shown in the Task column). Untick Screenshot of the On
Deck window to leave it out.
The report is stored on the On Deck server and forwarded to the
developer's Telegram chat. The request also carries the install id, like
every request.
Feedback
Send feedback sends the text you wrote (up to 4,000
characters) and the contact you optionally typed, together with the app
version, system and install id. It is stored on the On Deck server and
forwarded to the developer's Telegram chat.
Survey
After you have used On Deck on at least three different days, and at
least seven days after the install, the app may show a short survey
card: how you would feel without On Deck, and optionally what it gives
you, what is missing, and a contact. Answers are sent only when you
press the button. One answer is kept per install; a new one replaces it.
The card can be declined, and then it is not shown again.
Update checks
Installed builds check the public release repository
Y0LAREN/ondeck-releases on GitHub, 15 seconds after start
and then every four hours. The check fetches release information only.
Installing an update requires your click.
The request goes to GitHub, which sees the usual request data, such
as your IP address. On Deck does not add its install id to it.
Windows uninstall page
On Windows, uninstalling may open a short page asking why you left.
Your answer is stored on the On Deck server and forwarded to the
developer's Telegram chat. It is linked to your install only while
statistics are on.
Never sent
Automatically, On Deck never sends:
- prompts or any other conversation text;
- session names, project paths, file names or code;
- branch names, user names, or any text you did not type into a
feedback, report, survey or contact field.
Two cases are your choice. If you write a name or path into a report,
feedback or survey, or if the report screenshot shows one, it is sent
when you click Send.
Your choices
- Turn statistics off: Settings → Privacy.
- Send nothing: do not press Send on reports or feedback, use
Save to file, or untick the screenshot.
- Leave the survey: press the close button on the card.
- Remove the local data: quit On Deck, use Uninstall
in Settings (to remove the hooks), then delete the data folder.
- Questions about your data: send feedback from the app.
← On DeckКакие данные собирает On Deck
Эта страница описывает, что делает код On Deck из этого репозитория.
Если она когда-нибудь расходится с кодом, верен код.
Коротко
- Ваши сессии, запросы, код и пути к проектам остаются на вашем
компьютере.
- Анонимная статистика использования отправляется по умолчанию.
Отключить ее можно в Настройки → Конфиденциальность.
Когда она выключена, ничего не отправляется.
- Отчеты об ошибках, отзывы и ответы на опрос отправляются только
когда вы нажимаете «Отправить»; текст можно прочитать
заранее.
- Установленные версии проверяют на GitHub наличие новых выпусков.
Ничего не скачивается и не устанавливается без вашего нажатия.
Что остается на вашем
компьютере
On Deck отслеживает ваши сессии Claude Code через хуки и строку
состояния Claude Code. Хуки отправляют события на сервер на
127.0.0.1 (только этот компьютер), который требует токен,
созданный при установке.
On Deck хранит свои данные в папке данных:
- macOS:
~/Library/Application Support/on-deck
- Windows:
%APPDATA%\on-deck
| Файл |
Что в нем |
state.json |
Ваши настройки и настройки сессий (избранное, группы, без звука,
имена, которые вы дали сессиям). Для недавно виденных сессий также
хранятся название сессии, папка проекта (cwd), время начала
и последнего появления, последний статус и процент контекста. Сессии
старше 30 дней удаляются. |
token |
Токен локального сервера (права доступа 0600 там, где
система их поддерживает). |
logs/hub.log |
Собственный журнал On Deck: до 512 КБ в файле, один предыдущий файл
сохраняется. Текст запросов и входные данные инструментов в него не
записываются. |
telemetry.json, telemetry-queue.json,
install-id, uninstall-ref |
Состояние статистики использования, описано ниже. |
On Deck читает реестр сессий в ~/.claude/sessions, а из
транскриптов Claude Code только одну запись, которая отмечает переход
разговора в новую сессию. Больше из транскриптов ничего не читается.
On Deck меняет ~/.claude/settings.json только когда вы
нажимаете «Установить» или «Удалить»,
и сначала делает резервную копию с отметкой времени. Удаление папки
данных не убирает хуки; для этого используйте «Удалить»
в настройках.
Анонимная статистика
использования
Включена по умолчанию. При первом запуске появляется
уведомление с объяснением. Ничего не отправляется, пока вы не закроете
уведомление или пока оно не провисит на экране пять минут. События,
записанные до этого, ждут в очереди на вашем компьютере.
Выключить: Настройки → Конфиденциальность. Когда
статистика выключена, On Deck ничего не записывает, очищает очередь и
удаляет копию идентификатора установки, которую читает деинсталлятор
Windows.
Каждый запрос содержит: случайный идентификатор
установки, версию приложения, операционную систему и ее версию,
архитектуру процессора и язык интерфейса.
Идентификатор установки — случайный UUID, который создается при
первом запуске. Он не вычисляется ни из чего на вашем компьютере и не
связан с вашим именем или учетной записью.
События (полная схема в
src/main/telemetry/props.ts):
app_installed: первый запуск новой установки, с каналом
(dmg, nsis или dev) и признаком
обновления с версии без статистики.
app_started: каждый запуск.
app_active: раз в местные сутки, с итогами дня: сколько
сессий было, максимум одновременно, сколько вопросов вы ответили здесь,
сколько уведомлений показано, сколько терминалов открыто из On
Deck.
first_session_seen, question_answered,
terminal_opened: первый раз каждого действия, без других
данных.
feature_used: первое использование избранного, групп,
отключения звука, переименования, языка, подробностей или списка в
строке меню.
settings_changed: какая настройка изменилась.
Отправляются только значения «вкл./выкл.», язык, тема или выбор из
короткого списка. Число, которое вы ввели, передается как просто
«изменено».
update_installed: версия, с которой вы обновились.
integration_installed,
integration_install_failed,
integration_uninstalled: результат «Установить» или
«Удалить», при ошибке — короткий код.
error: обработанный технический сбой как фиксированный
код (например, что локальный сервер не запустился) и место, где он
произошел. Не чаще одного раза на код в шесть часов.
survey_shown, survey_dismissed: что
карточка опроса была показана или закрыта.
telemetry_enabled: отправляется, когда вы снова
включаете статистику.
События отправляются пачками до 100 штук примерно раз в минуту. В
событиях нет свободного текста.
Куда: на API On Deck — сервер, который запускает
разработчик (PostgreSQL, дашборды Grafana). Это не сторонний сервис
аналитики. Адрес указан в src/main/telemetry/api.ts. Сервер
не хранит IP-адреса: адрес используется только в памяти, в хешированном
виде, для ограничения частоты запросов. Ночные резервные копии базы
хранятся 14 дней.
Отчеты об ошибках
Отчет отправляется только тогда, когда вы открываете «Нашли
ошибку? Отправьте нам отчет» (значок ошибки в верхней панели
или Настройки → Поддержка) и нажимаете «Отправить
отчет». Полный текст диагностики показывается заранее, чтобы вы
могли его прочитать. Вместо отправки можно выбрать «Сохранить в
файл»; тогда ничего не покидает ваш компьютер.
Отчет содержит:
- описание, которое вы написали, и контакт, если вы его указали;
- версию приложения, версии Electron и Chrome, операционную систему и
ее версию, язык, время с момента запуска;
- состояние интеграции: установлены ли хуки и строка состояния,
слушает ли локальный сервер, состояние уведомлений, путь к файлу
настроек Claude Code;
- результат живой проверки скрипта хука и счетчики запросов, которые
локальный сервер получил с момента запуска;
- найдены ли в системе инструменты (
claude,
sh или bash, curl,
tmux, git, PowerShell), вывод
claude --version, а также значения
CLAUDE_CONFIG_DIR и путь к Git Bash, где это
применимо;
- собственные записи хуков On Deck и строку состояния из файла
настроек Claude Code; остальные хуки только считаются;
- список сессий с сокращенным идентификатором (8 символов), статусом,
источником, временем, процентом контекста, моделью, известен ли терминал
(номер процесса, приложение терминала, есть ли панель tmux), числом
фоновых задач и наличием ожидающего вопроса. Ни названий сессий, ни
запросов, ни путей проектов;
- последние события хуков с временем, сокращенным идентификатором
сессии и полученным статусом;
- последние 200 КБ журнала On Deck.
Весь текст проходит очистку, которая удаляет токен On Deck, значения
bearer, токены ботов и домашнюю папку (она показывается как
~). Пути к инструментам и скриптам хуков все равно могут
появиться, но с замененной домашней папкой.
Скриншот (необязательно). Скриншот — это окно On
Deck таким, каким оно было на экране. По умолчанию он включен, если
доступен, и форма это показывает. На нем могут быть видны названия
сессий и тексты задач (последний запрос показан в колонке «Задача»).
Снимите галочку «Снимок окна On Deck», чтобы не
отправлять его.
Отчет хранится на сервере On Deck и пересылается в Telegram-чат
разработчика. Как и любой запрос, он содержит идентификатор
установки.
Отзывы
«Отправить отзыв» отправляет текст, который вы
написали (до 4000 символов), и контакт, если вы его указали, вместе с
версией приложения, системой и идентификатором установки. Отзыв хранится
на сервере On Deck и пересылается в Telegram-чат разработчика.
Опрос
Через три разных дня использования On Deck и не раньше чем через семь
дней после установки приложение может показать короткую карточку опроса:
что вы почувствовали бы без On Deck, а также по желанию, что он вам
дает, чего не хватает, и контакт. Ответы отправляются только после
нажатия кнопки. Хранится один ответ на установку; новый заменяет старый.
Карточку можно закрыть, и тогда она больше не появится.
Проверка обновлений
Установленные версии проверяют публичный репозиторий выпусков
Y0LAREN/ondeck-releases на GitHub: через 15 секунд после
запуска и затем каждые четыре часа. Проверка получает только информацию
о выпуске. Установка обновления требует вашего нажатия.
Запрос идет на GitHub, который видит обычные данные запроса, например
ваш IP-адрес. On Deck не добавляет к нему идентификатор установки.
Страница после удаления в
Windows
В Windows после удаления может открыться короткая страница с
вопросом, почему вы ушли. Ответ хранится на сервере On Deck и
пересылается в Telegram-чат разработчика. Он связан с вашей установкой,
только пока статистика включена.
Что никогда не отправляется
Автоматически On Deck никогда не отправляет:
- запросы и любой другой текст разговора;
- названия сессий, пути проектов, имена файлов и код;
- названия веток, имена пользователей и любой текст, который вы не
вводили в поля отзыва, отчета, опроса или контакта.
Два случая зависят от вас. Если вы напишете название или путь в
отчет, отзыв или опрос, либо если на скриншоте отчета они видны, то они
отправятся при нажатии «Отправить».
Ваш выбор
- Выключить статистику: Настройки → Конфиденциальность.
- Ничего не отправлять: не нажимать «Отправить» в отчетах и
«Отправить» в отзывах, использовать «Сохранить в файл»
или снять галочку со снимка окна.
- Закрыть опрос: нажать кнопку закрытия на карточке.
- Удалить локальные данные: закрыть On Deck, нажать
«Удалить» в настройках (чтобы убрать хуки), затем
удалить папку данных.
- Вопросы о ваших данных: отправьте отзыв из приложения.