Главная/Блог/Гайд/web-edit: Как я создал веб-интерфейс…
Гайд8 мин чтения · 13 октября 2026 г.

web-edit: Как я создал веб-интерфейс для редактирования файлов через Tailscale

История создания простого Python-приложения для безопасного редактирования файлов с мобильного телефона через Tailscale, минуя контекст LLM.

web-edit: Как я создал веб-интерфейс для редактирования файлов через Tailscale

В эпоху, когда большие языковые модели (LLM) стали неотъемлемой частью рабочего процесса разработчика, мы часто сталкиваемся с парадоксом удобства и безопасности. Чем проще интегрировать ИИ в наш код, тем сложнее контролировать, какие именно данные проходят через его «мозги». Я столкнулся с этой дилеммой, работая над проектом со своего смартфона с помощью Codex Remote. Возникла необходимость отредактировать файл с учетными данными (credentials), но я не хотел, чтобы эти конфиденциальные данные отправлялись обратно в LLM для обработки. Это классическая проблема: как дать агенту доступ к файловой системе, не раскрывая ему секреты?

Решение пришло в виде простого, но элегантного Python-приложения под названием web-edit. Это веб-интерфейс, который позволяет просматривать и редактировать файлы в определенной папке. Ключевая особенность — запуск через Tailscale. Это позволяет агенту запустить приложение на удаленной машине, а затем безопасно подключиться к нему с моего телефона через приватную сеть Tailscale, минуя публичный интернет и, что самое важное, минуя сам LLM как посредника в передаче данных.

В этой статье мы подробно разберем, почему я выбрал именно такой подход, какие технические решения были использованы (включая выбор редактора кода), и как это вписывается в более широкую картину использования ИИ-агентов в реальной разработке. Мы также обсудим важность изоляции конфиденциальных данных и то, как простые инструменты могут решить сложные архитектурные задачи.

01Проблема: Контекст LLM и конфиденциальность данных

Когда вы используете такие инструменты, как Codex Remote или аналогичные AI-ассистенты, вы обычно отправляете фрагменты кода или запросы в модель. Модель анализирует контекст и возвращает исправленный код или новые файлы. Однако, когда речь заходит о файлах с секретами — API-ключами, паролями, токенами доступа — этот процесс становится рискованным. Даже если провайдер LLM гарантирует, что данные не используются для обучения, сам факт передачи этих данных через API-интерфейс создает точку потенциального утечки или просто нежелательного присутствия в истории запросов.

В моем случае, работая с телефона, я хотел сохранить мобильность и скорость, но не жертвовать безопасностью. Отправка файла с учетными данными в LLM означала бы, что модель «видит» эти данные, даже если она их не сохраняет. Для некоторых проектов это приемлемо, но для других — категорически нет. Мне нужен был способ редактировать файл напрямую, без участия ИИ в процессе передачи самого содержимого файла.

💡
Совет по безопасности. Всегда разделяйте контекст задачи (код, логику) и конфиденциальные данные (секреты, ключи). Используйте переменные окружения или специализированные менеджеры секретов, а не передавайте их напрямую в чат с LLM.

02Решение: web-edit 0.1a0

Чтобы решить эту проблему, я решил создать собственное веб-приложение. Оно было разработано с помощью Codex и модели GPT-6 Astra Extra High. Да, вы не ослышались: я использовал ИИ, чтобы создать инструмент, который позволит мне работать с ИИ более безопасно. Это ироничный, но эффективный цикл обратной связи.

Приложение web-edit представляет собой простой веб-интерфейс на Python. Его основная функция — предоставление возможности просматривать и редактировать файлы в заданной папке. Оно не является сложной CMS или системой управления версиями. Это точечный инструмент, созданный для конкретной задачи: дать человеку (мне) прямой доступ к файловой системе сервера, где запущен агент.

Архитектурно приложение спроектировано так, чтобы быть легковесным и безопасным. Оно не требует сложной настройки базы данных или аутентификации через OAuth. Вместо этого безопасность обеспечивается на сетевом уровне. Приложение предназначено для запуска через Tailscale, что означает, что оно доступно только в рамках моей личной приватной сети.

web-edit: Как я создал веб-интерфейс для редактирования файлов через Tailscale

03Почему Tailscale?

Tailscale — это инструмент, который создает виртуальную частную сеть (VPN) между устройствами. Он использует протокол WireGuard для шифрования трафика и позволяет устройствам «видеть» друг друга, даже если они находятся за NAT или фаерволами. Для разработчика это означает, что я могу получить доступ к серверу, запущенному в облаке или на домашнем компьютере, так же легко, как к локальному хосту.

В контексте web-edit использование Tailscale решает несколько критических проблем:

  1. Безопасность по умолчанию: Приложение не нужно открывать в публичный интернет. Оно доступно только по приватному IP-адресу Tailscale. Это значительно снижает поверхность атаки.
  2. Удобство: Мне не нужно настраивать сложные SSH-туннели или управлять SSL-сертификатами для локального доступа. Tailscale делает это автоматически.
  3. Мобильность: Поскольку у меня есть приложение Tailscale на телефоне, я могу подключиться к серверу из любой точки мира, где есть интернет. Это идеально для работы в пути.

Таким образом, агент (Codex) запускает web-edit на сервере. Затем я открываю браузер на телефоне, перехожу по адресу Tailscale и получаю доступ к интерфейсу редактирования. Файлы передаются напрямую между моим браузером и сервером, минуя LLM. Это обеспечивает полную конфиденциальность содержимого файлов.

⚠️ Важно.
Ограничения Tailscale. Tailscale требует, чтобы все устройства были подключены к одной и той же учетной записи Tailscale. Убедитесь, что вы доверяете всем устройствам в вашей сети. Также помните, что безопасность зависит от защиты вашей учетной записи Tailscale (используйте MFA).

04Выбор редактора: CodeMirror 6 против Monaco

Одной из самых интересных технических деталей проекта стал выбор библиотеки для редактирования кода. Изначально я планировал использовать Monaco Editor — это тот же редактор, на котором построен VS Code. Он мощный, знакомый многим разработчикам и обладает отличной поддержкой подсветки синтаксиса и автодополнения.

Однако при тестировании на мобильных устройствах я столкнулся с серьезными проблемами. Monaco Editor, будучи тяжеловесным и сложным, не всегда корректно работает на мобильных браузерах. Проблемы включали:

  • Производительность: Загрузка и рендеринг редактора на телефоне занимали слишком много времени.
  • Удобство использования: Элементы управления были слишком мелкими, а взаимодействие с клавиатурой и экраном было неудобным.
  • Адаптивность: Редактор не всегда корректно масштабировался под разные размеры экранов.
web-edit: Как я создал веб-интерфейс для редактирования файлов через Tailscale

В результате я переключился на CodeMirror 6. Это современная, модульная библиотека для создания редакторов кода. Она легче, быстрее и лучше адаптирована для мобильных устройств. CodeMirror 6 позволяет создавать гибкие интерфейсы, которые можно настроить под конкретные нужды, и при этом она остается достаточно простой для интеграции в легковесные приложения, такие как web-edit.

Выбор CodeMirror 6 оказался правильным. Интерфейс стал отзывчивым, даже на небольших экранах смартфонов. Это позволило мне эффективно редактировать файлы в пути, не жертвуя удобством.

05Как это работает: Технический обзор

Хотя web-edit — это простой инструмент, за ним стоит продуманная архитектура. Приложение написано на Python и использует современные веб-фреймворки для обеспечения скорости и надежности. Вот как оно работает:

  1. Запуск: Агент (например, Codex) запускает приложение на сервере. Приложение начинает слушать порт, доступный через Tailscale.
  2. Навигация: Пользователь открывает интерфейс в браузере. Приложение отображает список файлов в заданной папке. Это позволяет быстро найти нужный файл.
  3. Редактирование: При выборе файла открывается редактор CodeMirror 6. Пользователь вносит изменения.
  4. Сохранение: При нажатии кнопки «Сохранить» изменения записываются в файл на сервере. Приложение не отправляет данные никуда, кроме как в файловую систему сервера.

Этот простой поток обеспечивает полный контроль над данными. Я вижу, что редактирую, и я контролирую, когда и как изменения сохраняются. Нет скрытых запросов к LLM, нет случайной отправки данных в облако.

📌 Факт.
Версия 0.1a0. Это альфа-версия приложения. Она предназначена для личного использования и тестирования. В будущих версиях могут появиться дополнительные функции, такие как поддержка нескольких папок, история изменений или интеграция с Git.

06Более широкий контекст: ИИ-агенты и безопасность

История с web-edit — это не просто пример создания инструмента. Это отражение более широкой тенденции в использовании ИИ-агентов. По мере того как агенты становятся более автономными и получают доступ к более широкому кругу систем, вопросы безопасности и конфиденциальности выходят на первый план.

Многие разработчики сейчас экспериментируют с тем, как дать агентам доступ к файловой системе, базам данных и API. Но часто этот доступ предоставляется без должного внимания к тому, какие данные при этом передаются. web-edit демонстрирует альтернативный подход: использование агентов для автоматизации запуска инструментов, но сохранение ручного контроля над критически важными операциями.

web-edit: Как я создал веб-интерфейс для редактирования файлов через Tailscale

Это принцип «человек в контуре» (human-in-the-loop) в действии. Агент выполняет рутинную работу: запускает сервер, настраивает окружение. Человек выполняет критическую работу: редактирует секреты, проверяет код. Такой подход позволяет максимизировать преимущества ИИ, минимизируя риски.

07Что это значит на практике

Для разработчиков, работающих с ИИ-агентами, web-edit предлагает несколько важных уроков:

  • Изолируйте секреты. Никогда не передавайте учетные данные через LLM. Используйте локальные редакторы или специализированные инструменты, такие как web-edit с Tailscale.
  • Используйте приватные сети. Tailscale и аналогичные инструменты позволяют безопасно получать доступ к удаленным ресурсам без открытия портов в интернет.
  • Выбирайте правильные инструменты. Monaco Editor может быть мощным, но CodeMirror 6 может быть более подходящим для мобильных сценариев. Тестируйте инструменты на реальных устройствах.
  • Простота — это сила. Не всегда нужен сложный фреймворк. Простой Python-скрипт может решить сложную проблему, если он правильно спроектирован.

В конечном итоге, web-edit — это пример того, как можно использовать ИИ для создания инструментов, которые делают нашу работу с ИИ более безопасной и эффективной. Это не замена ИИ, а дополнение к нему, позволяющее сохранить контроль над критически важными аспектами разработки.

Если вы работаете с ИИ-агентами и сталкиваетесь с проблемами конфиденциальности, попробуйте создать подобный инструмент. Начните с простого веб-интерфейса, используйте Tailscale для безопасности и CodeMirror для редактирования. Вы удивитесь, как быстро это может решить вашу проблему.

И помните: технологии должны служить вам, а не наоборот. Если инструмент усложняет вашу работу или ставит под угрозу безопасность, найдите более простое решение. Иногда лучший код — это тот, который вы не пишете, а тот, который уже существует и правильно настроен.

Источник: Simon Willison ↗