Прочитать diff. Ответить агенту. Запушить. С телефона.
ShiftStage — приложение для iPhone, которое управляет вашим же Mac: его
терминалом, git, файлами, процессами и AI-агентами, которые на нём работают. Их
отдаёт небольшой агент на Mac, со сквозным шифрованием — без открытого SSH-сервера
и без проброса портов.
Один Mac в своей сети — бесплатно и навсегда, без учётной записи.
$6.99 в месяц, чтобы достать его откуда угодно.
В App Store пока нет: приложение и агент выйдут вместе, когда агент
пройдёт нотаризацию.
Работает с агентами, которые уже стоят на вашем 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. Закройте приложение, потеряйте сеть — она продолжает
работать.
Сессия, которую вы сами запустили в своём терминале, тоже появится в списке.
Ваши ключи и ваши подписки. Ни одна модель не работает на нашей стороне, и
разговор до нас не доходит.
Git
Diff, который правда можно читать на шести дюймах.
Git структурой, а не разобранным текстом: подсветка синтаксиса, изменённые
куски отмечены внутри строки, добавленное и удалённое посчитаны по файлу.
Изменилось двенадцать файлов, поехать заслуживают четыре — подготовьте их,
закоммитьте, запушьте.
Подготовка отдельных строк, целых блоков, файлов, множественного выбора или
поддерева папки.
Поиск внутри diff со счётчиком совпадений.
Fetch, pull с rebase или merge, push. Учётные данные удалённых репозиториев
остаются на Mac.
Конфликт слияния приходит тремя сторонами; разрешается по файлу или по
блоку.
Терминал
Настоящий PTY с вашей оболочкой, вашими dotfiles и инструментами.
Не эмулятор, говорящий с сервером где-то в сети, а ваша оболочка на вашем
Mac, с цветами ANSI и полноэкранными программами. Несколько сессий сразу, и
они переживают уход приложения в фон.
Ctrl, Esc, стрелки и Tab — строкой над клавиатурой; заготовки команд в одно
касание.
Набранное появляется сразу, а не после ответа Mac.
Для sudo — скрытое поле, которое заполняет Face ID, если вы
разрешили это на Mac.
Файлы
Файл на Mac. Mac не с вами.
Все рабочие пространства, которые отдаёт Mac. Код открывается с подсветкой,
markdown — оформленным, изображения и PDF — предпросмотром, потоком, без
предварительной загрузки.
Правка и сохранение на месте — с предупреждением, если файл изменился на диске.
Отправка через системное «Поделиться»; фото из галереи — прямо в папку
проекта.
Поиск по именам и содержимому во всех пространствах; результаты приходят по
мере нахождения.
То, что вы решили сохранить, откроется потом и при спящем Mac.
И остальная машина
История
Любая ветка списком или графом с тегами. Фильтр по автору, файлу и
сообщению; revert, cherry-pick, ветка или reset от коммита.
Процессы
Что запущено, сколько стоит, какие порты держит. Dev-серверы под
присмотром — и уведомление, когда один из них упал.
CI/CD
GitHub Actions, GitLab, Jenkins и TeamCity. Перезапуск упавших заданий,
одобрение ждущей выкладки, журнал, свёрнутый по шагам. Mac не нужен вовсе.
Apple Watch
Свой ключ и прямой путь к Mac. Низкий риск — касание, средний — поворот
колёсика, высокий — только на телефоне.
А ещё: push-уведомления, в которых названы сборка или сессия, Live
Activities для долгих сборок, передач и сессий агентов, виджет с состоянием Mac и
журнал доступа, который остаётся на Mac.
Настройка один раз, в своей сети
Поставьте агент
Подписанное и нотаризованное приложение для Mac с этого сайта. Оно отдаёт
только те папки, которые вы назовёте.
Свяжите телефон
Отсканируйте код, который показывает агент, и сверьте одинаковые слова на
обоих экранах. Без учётной записи.
Уходите от стола
В одной 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
Встроено, через службу производителя
Хранится на чужом сервере
Ничего. Ретранслятор пересылает байты, которых не может прочесть
Мы не храним ваши файлы, команды и вывод сессий. Не по правилам, а
по устройству: они не покидают пару устройств в виде, который мог бы прочесть
кто-то ещё.
Три пути, в этом порядке. Ретранслятор несёт байты, которых не может прочесть.
TLS 1.3 поверх QUIC в обе стороны. Телефон и Mac удостоверяют друг
друга ключами устройств из Secure Enclave. Наши узлы знают, что разговаривают два
отпечатка, но не знают о чём.
Для связывания нужен Mac перед глазами. Код на его экране, одинаковые
слова на обоих устройствах и список на Mac, где любое устройство отзывается одним
нажатием.
Решает Mac. Телефону видны только названные папки. Завершение
процессов и sudo с телефона выключены с самого начала, а
ретранслятор можно запретить для каждого Mac.
Журнал остаётся у вас. Каждая операция, о которой попросило
устройство, записывается на Mac, — но не содержимое файлов и не вывод. Команды,
чтобы прочитать журнал снаружи, в протоколе нет.
Свой узел, если хотите. Сервер встречи и ретрансляции можно
поднять у себя, и тогда никто — включая нас — не видит, кто с кем соединялся.
Как
И здесь без трекеров. На этом сайте нет скриптов и cookie, и он
ничего не загружает с чужих доменов.
Одна цена. Возможности не урезаны.
Подписка не открывает возможностей. Она открывает расстояние и
масштаб.
Дома
Бесплатно
навсегда, без учётной записи
Один Mac в своей сети
Все сервисы: терминал, git, файлы, процессы, AI-сессии, CI/CD,
часы
Через 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.
Кроссплатформенная оболочка стоила бы ровно того, ради чего продукт сделан.