Пишу консольні застосунки на iPad за допомогою AI-агента та віддаленого VPS

💡 Усі статті, обговорення, новини про Mobile — в одному місці. Приєднуйтесь до Mobile спільноти!

Консольний застосунок — не найочевидніша річ для розробки на планшеті. Ні повноцінного термінала, ні файлової системи, до якої звикли на десктопі, ні нормальної багатозадачності — так було ще пару років тому. Але якщо винести сам процес виконання коду на віддалений Linux-сервер, а iPad перетворити на тонкий клієнт для керування AI-агентом і перегляду результату, картина змінюється повністю. Нижче — робочий процес, який у мене склався для розробки CLI-інструментів на Python: VPS + AI Coding Agent (Claude Code) у tmux + Remote IDE як єдина точка входу, усе на iPad зі Stage Manager. Для такого циклу потрібно небагато: SSH-доступ до сервера, де крутиться агент, і спосіб паралельно дивитися на файли й на diff, не втрачаючи сесію агента під час перемикання між вікнами. Далі — як це виглядає покроково.

Крок перший: сервер і проєкт

Усе починається з опису сервера — звичайна форма з адресою, портом і способом автентифікації (пароль або SSH-ключ, ключі та паролі йдуть виключно в Keychain пристрою). Після цього створюється сам проєкт: назва, шлях на сервері — і перемикач «Use remote filesystem».

Цей перемикач визначає, як проєкт поводитиметься далі. Якщо він вимкнений, Remote IDE працює як зазвичай — локальні файли в iCloud Drive, які вручну синхронізуються із сервером через SFTP-кнопки в тулбарі. Але для CLI, який розробляє агент прямо на сервері, набагато зручніше увімкнути його: тоді дерево файлів проєкту в сайдбарі підтягується напряму із сервера по SFTP, а відкриття та збереження файлу в редакторі йде прямо у віддалену файлову систему. Жодної локальної копії, жодної ручної синхронізації і, що важливо, жодного ризику розійтися з тим, що бачить і править агент у терміналі — редактор і агент дивляться в одну й ту саму файлову систему в реальному часі.

Крок другий: tmux — окремі вікна для консолі та агента

Далі — термінал. У налаштуваннях підключення є перемикач «Use tmux»: якщо він увімкнений, SSH-сесія обгортається в tmux прямо на сервері. Практичний сенс цього — не тільки в тому, що сесія переживає розрив зв’язку (закрили кришку iPad, втратили Wi-Fi — при перепідключенні все на місці, включно з тим, що друкував агент). Усередині tmux я тримаю окремі вікна на один і той самий проєкт: одне — звичайний bash для git-команд, запуску тестів, ручних перевірок; друге — запущений у ньому CLI-агент (Claude Code, Codex CLI і подібні). Кожен проєкт отримує свою іменовану tmux-сесію, тож між my-pet-project і сусіднім проєктом на тому самому сервері агент і консоль одне одному не заважають, а перемикання між кількома одночасними задачами — це просто перемикання tmux-вікна, а не пошук, куди поділася сесія.

На практиці це виглядає так: рядок статусу внизу показує активне вікно tmux-сесії поточного проєкту — можна тримати відкритими і bash, і агента, перемикаючись між ними без втрати контексту в жодному з них.

Крок третій: Stage Manager замість перемикання вкладок

Далі вступає багатовіконність iPadOS 26. SSH-консоль з агентом — це рівно один із потоків інформації; паралельно хочеться бачити код, який агент щойно написав, і що змінилося відносно попереднього коміту. Тримати все це в одному вікні з постійним скролом незручно, а от розкидати по Stage Manager чи Split View — це якраз те, для чого він і створювався.

Робочий набір зазвичай такий: зліва — вікно з консоллю агента (Remote IDE в SSH-режимі), справа — друге вікно з редактором і файловим деревом проєкту, за потреби третє — плаваюче вікно Git-статусу. Усе це незалежні нативні вікна застосунку, якими Stage Manager керує так само, як вікнами різних застосунків: перетягування, зміна розміру, збереження розкладки між сесіями. Агент пише код у терміналі зліва, а ви в цей час гортаєте файли й diff справа — без жодного перемикання контексту.

Робота з файлами так, ніби вони локальні

Саме увімкнена віддалена файлова система робить це по-справжньому безшовним. Відкриваєте README.md, який агент щойно створив на сервері, — файл відкривається в редакторі так само, як звичайний локальний файл, з деревом каталогів проєкту в сайдбарі: .claude, .git, .venv, src, tests, pyproject.toml, uv.lock. Правите руками те, що хочеться поправити самому, не чекаючи на агента, — збереження йде на сервер автоматично, при кожній зміні. Жодного «завантажити — поправити — залити назад»: редактор і термінал працюють з однією й тією самою копією файлів на сервері одночасно.

Підсвітка синтаксису, яка не виглядає компромісом

Окремо варто сказати про сам редактор. Він побудований на Runestone з граматиками Tree-sitter — тобто підсвітка не «розфарбовування по regex», а чесний синтаксичний розбір для конкретної мови. Python, TOML, Markdown, YAML, JSON, Shell і ще кілька десятків мов визначаються автоматично за розширенням файлу. Відкривши pyproject.toml, який агент щойно відредагував, бачиш нормально підсвічені секції та значення, а не суцільний сірий текст — те саме відчуття «це справжній редактор коду», а не текстове поле з моноширинним шрифтом.

Git-дифи без виходу в консоль

Одна з речей, заради якої окреме вікно Git виправдовує себе найбільше саме в парі з агентом, — швидкий візуальний контроль того, що він понавносив у файли, без набору git diff руками. Список змінених файлів — з позначками A (added) і подібними — відкривається поруч із редактором; вибір файлу одразу показує порядковий diff з підсвіткою доданого зеленим і видаленого червоним. Агент відредагував pyproject.toml, змінивши description у маніфесті, — це видно порядково, без потреби просити його самого переказати, що він змінив, і без ризику, що переказ розійдеться з реальним діфом.

Це особливо цінно, коли агент виконав задачу за кілька хвилин «у фоні»: повертаєшся не до стіни тексту в чаті, а одразу до списку файлів і порядкових змін.

Тулбар клавіатури: дрібниця, яка економить час щохвилини

Екранна клавіатура iPadOS не заточена під код — дужки, крапка, =, # заховані на додаткових розкладках, а Tab на ній узагалі немає. Над клавіатурою в редакторі Remote IDE з’являється додаткова панель швидкого вводу саме з цими символами: Tab, парою дужок з курсором між ними, крапкою, знаком рівності та решіткою. При активному текстовому полі вона завжди під рукою — не потрібно пірнати в третій шар системної клавіатури заради банальної дужки. При працюючій фізичній клавіатурі панель, звісно, не потрібна і не заважає.

Як це виглядає загалом

Збираю сценарій із практики: створюю новий remote-проєкт my-pet-project з увімкненою віддаленою файловою системою, вказую шлях на сервері. У tmux-вікні агента прошу зібрати каркас Python CLI на typer і uv — агент створює структуру, pyproject.toml, README.md, тести, запускає uv run і показує, що команди hello та version працюють. Далі править pyproject.toml — уточнює description — і я бачу це порядково в Git-вікні, ще до того, як агент сам про це відзвітував. Питаю в агента: «як запустити застосунок?» — отримую точні команди cd, uv run my-pet-project hello --name World, uv run my-pet-project version — тут же, не виходячи з консолі, пробую їх у сусідньому tmux-вікні зі звичайним bash. Відкриваю README.md у редакторі — він уже підсвічений за Markdown, читається нормально. Усе це — три-чотири вікна на екрані одночасно, жодного перемикання вкладок наосліп.

Підсумок

Розробка консольних застосунків — чи не ідеальний випадок для цієї зв’язки: агент, якому не потрібен графічний інтерфейс, сервер, на якому він і працює, і iPad, який перестає бути «майже робочою станцією» і стає повноцінним пультом керування всім процесом — з підсвіткою синтаксису, порядковими дифами, окремими tmux-вікнами на проєкт і багатовіконністю, яка нарешті не заважає, а допомагає.

Remote IDE — обговорити функціональність, запропонувати ідею чи повідомити про проблему можна в GitHub Issues.

Завантажити Remote IDE в App Store →

Canonical source: remote-ide.com/...​/remote-ide-cli-agent-uk

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

На днях думав над чимсь аналогічним, як мінімум для оркестрації агентів з налаштованими процесами. Є мініпроекти, які не потребують навіть в код заглядати, або ж можна просто PR в браузері глянути.

Так, я думаю що Remote IDE підійде для цього як найкраще!!

Але чомусь після прочитання статті думав, що ця штука Open Source.
Бо давати доступ до серверів, агентів і т.д. невідомим розробникам — ризикована ідея.

Зручно вам на двох стільцях сидіти?

habr.com/...​/Serhii_Didanov/articles

Бачу ви також поруч сидите... :)

І що ж ви побачили? Аж цікаво стало, бо ваша відповідь була іншою)
kept.com.ua/...​026-07-19_at_13.04.04.png

якщо вам досі комфортно писати на російському хабрі, то я б побажав вам слідувати за російським кораблем.

в чем проблема делать эти вещи на ноуте ?

На шизлонгу біля басейну, чи в ліжку, ноут не зовсім зручно використовувати... :(

На шизлонгу біля басейну, чи в ліжку

Хтось кайфує на відпочинку, а хтось добровільно страждає

Страждають ті, хто працює на когось... :(
Коли займаєшся своєю справою, не можеш зупинитись :)

то чем ты занимаешься называется «устал смотреть через экран этого девайса». Просто возьми другой ноут и не морочь голову консолью на айпаде.

Ідея цікава, але це збочення, і це треба визнати. На жаль... Сучасні IPad-и мають достатньо потужності щоб замінити мак, але цього ніколи не станеться через жадібність Apple.

иПад так Мак це два зовсім різні девайса для різних задач. Тому жадібність Apple тут не до чого. Вони відмінно виконують кожен свою справу.

Підписатись на коментарі