ShiftStage

iPhone · iPad · Apple Watch · агент на вашем Mac

Прочитать diff. Ответить агенту. Запушить. С телефона.

ShiftStage — приложение для iPhone, которое управляет вашим же Mac: его терминалом, git, файлами, процессами и AI-агентами, которые на нём работают. Их отдаёт небольшой агент на Mac, со сквозным шифрованием — без открытого SSH-сервера и без проброса портов.

Один Mac в своей сети — бесплатно и навсегда, без учётной записи. $6.99 в месяц, чтобы достать его откуда угодно.

В App Store пока нет: приложение и агент выйдут вместе, когда агент пройдёт нотаризацию.

Три iPhone и Apple Watch: diff с отмеченными для коммита строками, агент просит разрешения прогнать тесты, терминал после push и тот же вопрос на часах

Работает с агентами, которые уже стоят на вашем Mac

  • Claude Code
  • Codex CLI
  • Gemini CLI
  • Cursor Agent
  • Amp
  • opencode
  • Crush
  • Goose
  • Aider
  • Qwen Code
  • Factory Droid

Находятся в PATH без настройки. Всё остальное запускается в терминале как есть.

Сами сервисы Mac, а не картинка его экрана

Все экраны ниже — само приложение на учебном проекте.

AI-сессии

Агент остановился спросить. Вы отвечаете, где бы ни были.

Отдайте задачу Claude Code или Codex, заблокируйте телефон и уходите. Когда понадобится человек, вопрос придёт вместе с командой и названным риском, а варианты ответа станут кнопками — на телефоне или на запястье.

  • Вид чата для Claude Code, Codex, Gemini CLI, Qwen Code и opencode: ответы, вызовы инструментов и правки файлов как разговор, прочитанный из записи самого инструмента. Терминал как есть — в одно касание.
  • Сессия живёт на Mac. Закройте приложение, потеряйте сеть — она продолжает работать.
  • Сессия, которую вы сами запустили в своём терминале, тоже появится в списке.
  • Ваши ключи и ваши подписки. Ни одна модель не работает на нашей стороне, и разговор до нас не доходит.
iPhone в виде чата: Claude Code показывает написанный им diff и спрашивает, можно ли выполнить swift test, с вариантами Yes, Yes and don't ask again и No. Рядом Apple Watch с той же командой, помеченной средним риском, — разрешается поворотом колёсика.

Git

Diff, который правда можно читать на шести дюймах.

Git структурой, а не разобранным текстом: подсветка синтаксиса, изменённые куски отмечены внутри строки, добавленное и удалённое посчитаны по файлу. Изменилось двенадцать файлов, поехать заслуживают четыре — подготовьте их, закоммитьте, запушьте.

  • Подготовка отдельных строк, целых блоков, файлов, множественного выбора или поддерева папки.
  • Поиск внутри diff со счётчиком совпадений.
  • Fetch, pull с rebase или merge, push. Учётные данные удалённых репозиториев остаются на Mac.
  • Конфликт слияния приходит тремя сторонами; разрешается по файлу или по блоку.
iPhone с diff файла SyncEngine.swift: выбраны две удалённые и восемь добавленных строк, внизу кнопка Stage для десяти выбранных строк.

Терминал

Настоящий PTY с вашей оболочкой, вашими dotfiles и инструментами.

Не эмулятор, говорящий с сервером где-то в сети, а ваша оболочка на вашем Mac, с цветами ANSI и полноэкранными программами. Несколько сессий сразу, и они переживают уход приложения в фон.

  • Ctrl, Esc, стрелки и Tab — строкой над клавиатурой; заготовки команд в одно касание.
  • Набранное появляется сразу, а не после ответа Mac.
  • Для sudo — скрытое поле, которое заполняет Face ID, если вы разрешили это на Mac.
Терминал на iPhone в проекте orbit: 48 тестов прошли, коммит и push в main; над клавиатурой строка клавиш Esc, стрелок и Tab.

Файлы

Файл на Mac. Mac не с вами.

Все рабочие пространства, которые отдаёт Mac. Код открывается с подсветкой, markdown — оформленным, изображения и PDF — предпросмотром, потоком, без предварительной загрузки.

  • Правка и сохранение на месте — с предупреждением, если файл изменился на диске.
  • Отправка через системное «Поделиться»; фото из галереи — прямо в папку проекта.
  • Поиск по именам и содержимому во всех пространствах; результаты приходят по мере нахождения.
  • То, что вы решили сохранить, откроется потом и при спящем Mac.
iPhone с файлом SyncEngine.swift: подсветка синтаксиса и номера строк, в панели — поиск, режим чтения и Save.

И остальная машина

  • История коммитов графом веток: HEAD, main, origin/main, ветка функции и тег v2.4.0.

    История

    Любая ветка списком или графом с тегами. Фильтр по автору, файлу и сообщению; revert, cherry-pick, ветка или reset от коммита.

  • Список служб на Mac: dev-сервер, API, Postgres и Redis работают, обработчик очереди упал, две остановлены.

    Процессы

    Что запущено, сколько стоит, какие порты держит. Dev-серверы под присмотром — и уведомление, когда один из них упал.

  • Запуск № 218 на телефоне: выкладка в production ждёт решения, кнопки Approve и Reject, сборка прошла успешно.

    CI/CD

    GitHub Actions, GitLab, Jenkins и TeamCity. Перезапуск упавших заданий, одобрение ждущей выкладки, журнал, свёрнутый по шагам. Mac не нужен вовсе.

  • Два экрана Apple Watch: Mac на связи, Claude Code ждёт разрешения, Codex ждёт ответа; команда среднего риска разрешается поворотом колёсика.

    Apple Watch

    Свой ключ и прямой путь к Mac. Низкий риск — касание, средний — поворот колёсика, высокий — только на телефоне.

А ещё: push-уведомления, в которых названы сборка или сессия, Live Activities для долгих сборок, передач и сессий агентов, виджет с состоянием Mac и журнал доступа, который остаётся на Mac.

Настройка один раз, в своей сети

  1. Поставьте агент

    Подписанное и нотаризованное приложение для Mac с этого сайта. Оно отдаёт только те папки, которые вы назовёте.

  2. Свяжите телефон

    Отсканируйте код, который показывает агент, и сверьте одинаковые слова на обоих экранах. Без учётной записи.

  3. Уходите от стола

    В одной Wi-Fi-сети устройства говорят напрямую. Вне её — тоже напрямую, а если сети не пускают, через ретранслятор, который видит только шифротекст.

Почему не то, что у вас уже есть

Это хорошие инструменты. Они решают другую задачу.

Вопрос ShiftStage SSH-клиентыTermius, Blink Shell, Moshi Claude Code Remote Control Удалённый столScreens, Jump Desktop
Что получает телефон Родные экраны терминала, git, файлов, процессов, CI/CD и сессий агентов Терминал; Moshi добавляет виды агентов через свой хук Разговор одной сессии Claude Code Видео экрана, сделанного под мышь
Агенты Одиннадцать находятся в PATH; вопросы становятся кнопками Любые, текстом в терминале Только Claude Code Что есть на экране
Что на Mac Агент; связывание в своей сети Включённый «Удалённый вход», настроенные ключи claude remote-control и вход в claude.ai «Общий экран» или приложение производителя
Вне дома Встроено: сначала напрямую, иначе через шифрованный ретранслятор Устраиваете сами: VPN вроде Tailscale или проброс портов Через API Anthropic Встроено, через службу производителя
Хранится на чужом сервере Ничего. Ретранслятор пересылает байты, которых не может прочесть Ничего, если путь ваш Запись сессии, пока подключено Зависит от производителя

По документации самих продуктов, сентябрь 2026: Remote Control, Moshi и Tailscale, Screens Connect, Jump Desktop Connect. Что-то устарело? Напишите нам.

Ваш код остаётся между вашими устройствами

Мы не храним ваши файлы, команды и вывод сессий. Не по правилам, а по устройству: они не покидают пару устройств в виде, который мог бы прочесть кто-то ещё.

Три пути между телефоном и Mac iPhone Mac одна сеть, сервера нет вовсе напрямую через интернет ретранслятор
Три пути, в этом порядке. Ретранслятор несёт байты, которых не может прочесть.
  • TLS 1.3 поверх QUIC в обе стороны. Телефон и Mac удостоверяют друг друга ключами устройств из Secure Enclave. Наши узлы знают, что разговаривают два отпечатка, но не знают о чём.
  • Для связывания нужен Mac перед глазами. Код на его экране, одинаковые слова на обоих устройствах и список на Mac, где любое устройство отзывается одним нажатием.
  • Решает Mac. Телефону видны только названные папки. Завершение процессов и sudo с телефона выключены с самого начала, а ретранслятор можно запретить для каждого Mac.
  • Журнал остаётся у вас. Каждая операция, о которой попросило устройство, записывается на Mac, — но не содержимое файлов и не вывод. Команды, чтобы прочитать журнал снаружи, в протоколе нет.
  • Свой узел, если хотите. Сервер встречи и ретрансляции можно поднять у себя, и тогда никто — включая нас — не видит, кто с кем соединялся. Как
  • И здесь без трекеров. На этом сайте нет скриптов и cookie, и он ничего не загружает с чужих доменов.

Одна цена. Возможности не урезаны.

Подписка не открывает возможностей. Она открывает расстояние и масштаб.

Дома

Бесплатно

навсегда, без учётной записи

  • Один Mac в своей сети
  • Все сервисы: терминал, git, файлы, процессы, AI-сессии, CI/CD, часы
  • Ни одного обращения к нашим серверам
Загрузка

Откуда угодно

$6.99 / месяц

или $69.99 в год — примерно два месяца в подарок

  • Всё, что в бесплатном
  • Mac доступен из любой сети: напрямую или через ретранслятор
  • Сколько угодно Mac
  • Свой узел вместо нашего
14 дней бесплатно

Через App Store: пробный период, продление и отмена — как у любой другой подписки там. Цены в долларах США; магазин покажет вашу. Если подписка закончится посреди работы, сессия не оборвётся — не откроется следующее соединение снаружи.

Вопросы

Это удалённый рабочий стол?

Нет. Удалённый стол передаёт пиксели экрана, сделанного под мышь. ShiftStage передаёт сами сервисы — терминал остаётся терминалом, diff — diff, — а телефон рисует их своими средствами.

Он запускает AI-модели?

Нет. Он управляет агентными CLI, которые уже стоят на вашем Mac, — с вашими ключами, настройками и подписками. К нам ничего не уходит.

Почему не просто SSH?

Пользуйтесь SSH — здешний терминал его не заменяет. Но труба не даст diff структурой, файлы с предпросмотром, список процессов, push по окончании сборки и вопрос агента, на который можно ответить с часов. И SSH-серверу не нужно быть доступным снаружи.

В каких сетях это работает?

В одной Wi-Fi-сети — напрямую, через Bonjour. В разных сетях — напрямую, когда удаётся пробить NAT, и через ретранслятор, когда нет. Мобильный интернет и гостиничный Wi-Fi — обычный случай, а для сетей, где закрыто всё, есть вход на порту 443.

А если Mac спит?

Не работает, и приложение говорит об этом прямо, а не ждёт до таймаута. Агент может не давать Mac уснуть, пока вас нет, если вы это включите. Файлы, которые вы сохранили на телефоне, открываются и без Mac.

Что нужно?

iPhone или iPad с iOS 18 или новее, Mac с macOS 15 или новее и Apple Watch с watchOS 11, если хотите отвечать с запястья.

Android? Агент для Linux?

Нет. Приложение — родное для iOS, iPadOS и watchOS, агент — родной для macOS. Кроссплатформенная оболочка стоила бы ровно того, ради чего продукт сделан.

ShiftStage на iPad, iPhone и Apple Watch: ваш Mac у вас в кармане

Живите своей жизнью.
Mac продолжает работать.

Один Mac в своей сети — бесплатно. $6.99 в месяц — откуда угодно.