Transcription
CLI GitHub Copilot. Да, у нас есть еще один инструмент, и я много о нем говорил в X или Twitter, как вам больше нравится. И это потому, что он мне очень нравится. И одна из вещей, которую я хочу делать на этом канале, — это всегда быть честным с вами относительно того, что, по моему мнению, работает, а что, по моему мнению, является просто чушью. И Copilot CLI действительно работает очень хорошо. Он стал моим ежедневным инструментом. И поэтому в этом видео я хочу провести вас через то, как начать с ним работать. Так что это немного видео для начинающих, но в то же время я покажу вам некоторые вещи, которые я с ним делаю, некоторые настройки, где я его фактически использую, некоторые из моих рабочих процессов, и мы даже что-то построим в этом видео, потому что это единственный способ, которым вы можете действительно смотреть или учиться, чтобы увидеть, как Copilot CLI фактически используется в реальной жизни. И поэтому, если вы готовы, давайте сделаем это. Отлично. Итак, чтобы начать, очевидно, первое, что вы захотите сделать, это установить CLI. Итак, э-э, вы можете просто поискать это в Google. Вы все знаете, как это сделать. И э-э, затем просто нажмите кнопку "Установить сейчас". Прямо сейчас это приведет вас на страницу GitHub. Я думаю, что это скоро улучшится, но просто найдите свою установку, а затем установите. Здесь я был на Mac, поэтому я сделал установку через Brew. Теперь, следующее, что вы захотите знать, это где мне запустить эту штуку? Э-э, мне запустить ее в системном терминале или как мне это сделать? Итак, я покажу вам, как я это делаю, а именно, я всегда запускаю ее внутри Visual Studio Code с открытым проектом, над которым я работаю. Э-э, итак, позвольте мне показать вам, что я имею в виду и почему я это делаю. Итак, для этого видео я создал папку под названием "CLI video". Итак, давайте перейдем в нее здесь, в терминале. И вы заметите, что у меня терминал справа, а редактор слева. И это намеренно. Вы увидите почему через секунду. Хорошо. Э-э, так что с открытым терминалом здесь мы фактически хотим открыть Visual Studio Code для этой папки. Нам не обязательно делать это для запуска CLI, но Visual Studio Code имеет эту концепцию открытия для папки. И поэтому мы хотим придерживаться этой концепции здесь, чтобы облегчить нашим мозгам. Итак, я запущу здесь э-э code insiders с точкой и тире r. И это просто означает открыть текущую папку в существующем окне. Итак, теперь мы это сделали. Вы не можете этого действительно увидеть, кроме того, что у нас есть заголовок здесь. Давайте снова откроем боковую панель. И если вы задаетесь вопросом, как я фактически получил терминал здесь, в боковой панели, вам нужно сделать следующее: из нижней панели здесь, из нижней панели, вы просто перетаскиваете эти вещи и бросаете их туда. Так что, если вы не знали, что можете это сделать, вы можете. Вот как я получил терминал здесь. Теперь я даже не запускаю CLI в терминале, как таковой, хотя мы находимся в терминале. Хорошо, я запускаю его здесь, в пространстве редактора. И чтобы сделать это, вы можете просто сказать э-э terminal. И если вы ищете terminal в редакторе, вы можете создать новый терминал в пространстве редактора вот так. Э-э, я делаю это часто. И поэтому я создаю сочетание клавиш. И тогда то, что мы сделаем здесь, это просто найдем terminal в редакторе. И тогда здесь говорится "создать новый терминал в редакторе". И вы можете видеть, что я установил это на э-э control option t, потому что я делаю это часто. И поэтому э-э control option t, и мы получаем новый экземпляр редактора здесь или новый экземпляр терминала, скорее, в пространстве редактора. Теперь давайте запустим CLI. Итак, мы просто наберем copilot, и вот CLI. Теперь в первый раз, когда вы это сделаете, вы увидите приятную анимацию, и вам придется ввести /lo, чтобы фактически войти в систему, но я уже сделал это, поэтому вы этого здесь не увидите. Отлично. Итак, с запущенным copilot CLI, давайте быстро пройдемся по интерфейсу. Э-э, вы можете видеть, что он говорит нам, что мы можем набирать @, чтобы упомянуть файлы, / для команд или вопросительный знак для ярлыков. Теперь э-э я в основном использую команды с косой чертой. Мы поговорим о некоторых ярлыках. Я почти никогда не упоминаю файлы. На самом деле, у нас здесь даже нет ни одного. Но если бы мы сказали э-э создать простой readme здесь, он создаст простой readme для этого проекта. И тогда мы могли бы просто упомянуть файл здесь. Так что мы можем сказать, знаете ли, "привести в порядок этот readme". И вы заметите, что он говорит: "Хотите ли вы создать этот readme?" И я хочу, но я не хочу каждый раз говорить CLI, что это нормально делать что-то, знаете ли. И поэтому он мог бы сказать "да" и больше не спрашивать об операциях с файлами. Но он будет спрашивать меня каждый раз, когда он пытается выполнить вызов инструмента. Так что я скажу "да". тест. Но затем я вернусь к э-э CLI здесь, и я скажу "разрешить все" вот так. И когда мы это сделаем, мы включим то, что фактически также называется режимом YOLO. Так что он больше никогда не будет спрашивать у меня разрешения. И я хочу полный опыт агента. Так что вот что мы сделаем. Теперь я также люблю псевдонимизировать это из командной строки. Так что я нажму Ctrl + C дважды, чтобы выйти отсюда. И из командной строки вы можете запустить его в этом режиме, набрав copilot- yolo, что дает вам точно то же самое. Это просто автоматическое одобрение э-э по умолчанию. Так что мне не нравится набирать это. Поэтому я просто псевдонимизирую его, чтобы я мог просто набрать yolo, и я получу то же самое. Copilot в режиме разрешения. И если вы скажете: "Я не знаю, как создать псевдоним", ну, поэтому мы используем терминал VS Code, потому что copilot встроен туда тоже, верно? Так что, если вы не знаете, вы можете просто спросить команду или controlI в Windows, скажите: "alias copilot alias copilot- yolo to yolo", и он создаст этот псевдоним для вас, независимо от того, находитесь ли вы в powershell или bash, это не имеет значения. Так вот почему мы любим терминал VS Code, потому что он имеет встроенный ИИ, и это команда или controlI, потому что нам все еще нужно быть в терминале. Нам все еще придется делать вещи. Мы хотим, чтобы Copilot был там с нами тоже, а не только в CLI. Итак, давайте вернемся к нашей сессии. В сессии, которую мы имели, э-э, есть два способа вернуться к ней. Так что, если мы скажем copilot-res, это выведет список наших недавних сессий здесь. Так что вы увидите, что я работал над многим. Так что простой readme прямо здесь. Э-э, это верхний элемент здесь, прямо там. Вы можете видеть, что Опра тоже работает над некоторыми идеями проектов. Так что мы могли бы, мы могли бы возобновить таким образом. Другой способ возобновить здесь — мы могли бы просто сделать э-э, мы могли бы сделать это. Мы могли бы сказать copilot uh d- continue. И это просто возобновит последнюю сессию, в которой мы были, а именно сессию, которую мы только что покинули. И говоря о псевдонимах, кое-что, что мы могли бы сделать здесь, что довольно забавно, это то, что мы можем сказать alias copilot- continue to uh CPR, верно? И поэтому, по сути, он добавит это в мой файл ZSH. Я собираюсь позволить ему сделать это. И тогда нам нужно перезагрузить нашу оболочку. И тогда, как только мы это сделаем, если мы просто наберем CPR, это просто возобновит последнюю сессию, в которой мы были. Итак, вот мы. Так что, если мы закроем его, вернемся в терминал, это нормально. CPR вернет его к жизни. Поняли? Отлично. Хорошо. Теперь, следующее, что мы хотим сделать здесь, это посмотреть на некоторые команды с косой чертой, которые мы будем часто использовать. Так что, очевидно, модель или модели — это большая вещь. Это выбирает модель ИИ, которую вы хотите использовать. Я вижу, что Opus 46 — это по умолчанию. Я не знаю, так ли это на самом деле для всех, и я не знаю, так ли это для вас в вашей компании, но вы можете видеть все модели, к которым у нас есть доступ здесь. И снова, если вы не видите этого, ваша компания, если у вас есть корпоративная подписка, может контролировать, что вы можете и чего не можете видеть. Хорошо? И поэтому они могут отсутствовать в этом списке. Кроме того, вы увидите здесь некоторые модели, которые говорят "скрыто от меня". И это потому, что это не общедоступные модели. Это либо внутренние модели, либо они не являются, они являются предварительными моделями. И поэтому я скрыл их здесь, э-э, чтобы они не сбивали вас с толку, почему их нет в моем списке моделей. Ну, потому что они доступны не всем пока. Так что, э-э, мы будем использовать cloud opus 46. Я большой поклонник Opus. 53 — это здорово, и мы фактически будем использовать 53, э-э, но не напрямую, и я объясню почему через секунду. Итак, вот как мы могли бы изменить нашу модель, если бы мы захотели, э-э, и наши уровни рассуждений. Если вы хотите изменить уровень рассуждений, выберите модель, а затем вы можете изменить уровень рассуждений. Теперь давайте посмотрим на некоторые ярлыки, которые вы будете часто использовать. Итак, один, который я продолжаю использовать, и который вы видели, как я много раз использовал, это просто CR L. И это просто очищает экран. Не начинает новую сессию, просто очищает экран. И поэтому, э-э, что мы можем сделать здесь, это посмотреть на некоторые другие команды, которые очень важны. Итак, какие еще команды, какие еще команды мне нужно знать? Э-э, одна из них — control A, которая перенесет вас в начало строки. А другая — control E, которая перенесет вас в конец строки. И есть другие вещи, которые вы можете сделать, такие как control K, который, я думаю, удаляет весь текст после курсора. Он это делает. И если вы хотите увидеть, что это такое, вы можете просто набрать э-э вопросительный знак здесь. И вы увидите здесь все их troll E. Э-э, редактирование — это то, что вы ищете прямо здесь. Так что вы можете посмотреть на это в любое время, чтобы увидеть, что это такое, но это те, которые я использую больше всего. Э-э, похоже, control U для удаления до начала строки. И поэтому, если бы у нас был более длинный запрос, control-U, удалить до начала строки. Хорошо знать эти ярлыки. Хорошо. Теперь я говорил о том, как у меня был пользовательский агент. Вы можете настроить свои собственные пользовательские агенты здесь, просто набрав / agent. И тогда вы можете видеть, что у меня есть пара из них здесь. И агент, давайте, если бы мы собирались создать новый агент здесь. Э-э, мы могли бы поместить его либо в user config, который доступен для каждого проекта, либо только для этого проекта. Агент — это просто файл с запросом, который дает агенту некоторые инструкции, но они очень, очень мощные. На самом деле, я считаю, что не так много, чего вы не можете сделать с пользовательскими агентами. Вы можете решить практически любую проблему рабочего процесса с их помощью. Э-э, но если бы мы собирались создать один, давайте просто назовем его test agent здесь. Это просто тест. Э-э, и снова, это просто э-э, мы просто показываем, как создать пользовательский агент здесь. Он ничего не сделает. И тогда здесь мы бы сказали что-то вроде: "Ты — агент по программированию, всегда следуй этому рабочему процессу", и тогда агент будет создан, и он создан здесь. Вы видите его прямо там. И если мы нажмем, это фактически откроет его в Visual Studio Code. Это еще одна причина, по которой мы любим быть в VS Code, когда используем терминал, потому что, если мы нажимаем command на ссылках, когда они даются из терминала в файлы, они открываются прямо здесь. Это очень мощно. Я не могу недооценить это. Терминал сам по себе великолепен, но когда вам нужны возможности редактирования файлов и вы хотите видеть файл, вы просто не можете превзойти этот опыт. Так что вы определенно хотите быть в Visual Studio Code. Хорошо. Теперь я говорил о пользовательском агенте, который у меня есть здесь, под названием Anvil, и это тот, который мы будем использовать сегодня. И вы можете получить его, если зайдете на burcllin.kub.io/anvil, а затем это просто плагин. И поэтому эти плагины поддерживаются copilot CLI. Э-э, этот находится на GitHub. Если вы просто найдете репозиторий Anvil, вы увидите, как я создал плагин. И этот плагин имеет пользовательского агента и сервер контекста 7 MTP. Э-э, и снова, и тогда есть навык фронтенд-дизайна, который я рекомендую, но я не даю его вам, потому что есть другое место, откуда я хочу, чтобы вы его установили. Так что, когда вы запустите это, вы получите сервер контекста 7 MCP и агента, и вы можете знать, что это так. Если вы зайдете в MCP здесь, вы увидите, что контекст 7 присутствует. И контекст 7 просто позволяет агенту читать документы как файлы markdown. Вот и все. Пользовательский агент Anvil делает гораздо больше. Так что агент действительно пытается заставить модель использовать контекст 7 много, использовать fetch много, а затем он заставляет его выполнять то, что мы называем враждебными проверками или, по сути, проверять свою работу с GPT53 codecs и Gemini, который является одной из скрытых моделей, которые я использую здесь. И причина, по которой я это делаю, заключается в том, что мне очень нравится Opus, он очень агентный. Он любит угождать. Он хочет выполнять работу, но не всегда делает это наилучшим образом. GBT53, с другой стороны, очень жесткий. С ним не очень весело работать, но он делает только то, что его просят. Так что, если мы объединим эти две вещи, мы получим лучшие результаты. Последнее, что я хочу показать вам, прежде чем мы начнем, это этот навык фронтенд-дизайна, который я рекомендовал. Итак, навыки, если вы не смотрели мое видео, мое видео о навыках, вам стоит посмотреть. Но это просто файлы markdown. Есть отличный файл под названием Front-end Design, и я рекомендую вам его иметь. Он занимается фронтенд-дизайном. Э-э, чтобы установить его, вы просто скопируете, а затем спуститесь, и тогда вы захотите запустить это в своем терминале. Теперь это действительно хорошая возможность для нас увидеть несколько разных способов сделать это. Итак, один из способов — мы могли бы просто открыть наш терминал здесь сбоку и выполнить его там. Это, вероятно, самый простой способ. Если вы фактически хотели бы э-э отменить CLI, вы могли бы нажатьR C дважды, и это просто завершит вашу сессию, а затем мы могли бы выполнить команду. Однако есть другой способ сделать это, который своего рода уникален. Итак, давайте вернем нашу сессию сюда с помощью CPR. Один, одна из вещей, которая встроена в Linux, это только для Linux, которую я собираюсь показать вам, это то, что если вы нажмете control Z, это приостановит процесс. И в этом случае это CLI. И тогда мы можем выполнить другую команду для установки навыка фронтенд-дизайна, которую я не буду делать, потому что я уже установил ее здесь. И тогда, если мы хотим вернуть это, если мы просто нажмем FG, что означает foreground, тогда это вернет процесс. И он вернулся. Так что есть несколько разных способов, которыми вы можете либо выйти из CLI, либо вернуться в CLI. Вероятно, проще всего просто иметь открытый экземпляр терминала и делать эти вещи здесь и оставлять эти вещи открытыми. Теперь, еще одна вещь, которую мы имеем здесь, это то, что здесь, наверху, если у нас есть несколько экземпляров терминала, нам не очень легко понять, что есть что. Э-э, и причина этого в том, что он просто говорит node наверху. Так что, если мы откроем еще один экземпляр терминала здесь, и у нас также будет запущен copilot здесь. Так что давайте yolo в этот. Теперь мы действительно не знаем, что здесь происходит, и что происходит здесь. Оба просто говорят node. Так что есть исправление для этого. Если вы зайдете в настройки UI, а затем то, что мы ищем, это terminal uh title, а затем вы можете видеть, что заголовок вкладок терминала здесь может быть немного мелким. И то, что вы хотите сделать, это установить это на sequence, верно? Этот, этот здесь. Так что давайте просто скопируем это. Спустимся. Мы просто установим это на sequence вот так. А затем выйдем. И тогда, когда мы это сделаем, вы можете видеть здесь, что у нас наверху э-э немного более описательное определение того, что на самом деле происходит. Так что в этом, по мере того, как мы будем продвигаться, вы увидите, что он фактически обновляет эти заголовки заголовком сессии чата, что очень приятно. Так что вы можете видеть, что на самом деле происходит. Еще один совет, который я хочу дать вам, и это много логистики, прежде чем мы начнем, это то, что когда вы запускаете терминал в такой вкладке, он поглощает многие ярлыки, к которым вы привыкли. Так что командаB работает для меня, но не будет работать для вас. И я могу увеличить и уменьшить масштаб, но это не будет работать для вас. И чтобы исправить это, вам нужно перейти в пользовательские настройки, а затем вы хотите найти terminal uh integrated. Я думаю, это просто команды для пропуска оболочки. Вот что мы ищем здесь. Так что вы можете видеть здесь, это различные команды. По сути, мы говорим: не передавайте эти команды через оболочку. Пусть VS Code обрабатывает их. И на самом деле три, которые я добавляю, это увеличение масштаба, уменьшение масштаба и переключение видимости боковой панели. Вот и все. И тогда, как только вы добавите их, ваши сочетания клавиш начнут работать э-э, как вы ожидаете. Так что это быстрое исправление для этого. Теперь у нас много настроек. Мы сделали много. Давайте перейдем и начнем что-то строить. И вопрос всегда: ну, что мы будем строить? И я всегда строю одно и то же. Так что давайте посмотрим на это. Если вы смотрели некоторые из моих других видео, я всегда строю этот сайт. И причина, по которой я строю этот сайт, заключается в том, что он выглядит тривиальным, но на самом деле это не так. Э-э, так что это э-э, это сайт для обмена ссылками. Э-э, если мы добавим ссылку здесь, мы можем добавить еще одну ссылку. Э-э, давайте добавим microsoft.com. Давайте добавим github github.com/copilot. Верно. И тогда здесь, мы можем добавить крутые ссылки. Ой, уже занято. И поэтому здесь много всего происходит. Мы можем опубликовать, но нам нужно войти в систему, чтобы опубликовать. И тогда мы могли бы видеть все наши ссылки. И тогда здесь есть ссылки, которые мы можем, мы можем переупорядочить их. И тогда мы можем дать кому-то одну URL-адрес, и они смогут поделиться им с миром вот так. Отлично. Итак, я вошел в систему. Если я нажму "Опубликовать" сейчас, мы получим этот URL-адрес. И если вы фактически зайдете на этот URL-адрес прямо сейчас, вы увидите этот список ссылок, которые я создал здесь. И я, там были некоторые другие уже в локальном хранилище, поэтому вы видите некоторые дубликаты. Так что мы хотим воссоздать этот сайт. Это задача, которую мы будем выполнять с агентом. Итак, давайте вернемся к CLI и узнаем больше, пока мы это делаем. Итак, мы хотим построить эту штуку. Как мы собираемся это сделать? Итак, сначала я переключусь на своего агента и перейду к Anvil. Теперь следующее, что мы хотим сделать, это сделать план, потому что мы начинаем с, знаете ли, абсолютного нуля. Здесь ничего нет. И это очень особый сценарий. Это тот, в котором вы можете не оказаться, если вы не строите проекты с нуля, верно? Если вы работаете с существующими проектами, вы можете оказаться в разных сценариях. Но поскольку у нас ничего нет, нам действительно нужно сначала спланировать. Когда я делаю это, и мне приходится давать этой штуке довольно большой запрос, потому что я собираюсь попытаться описать, что я хочу. Я не хочу набирать это. Я хочу говорить это. И чтобы сделать это, я буду использовать встроенную поддержку голосового ввода в операционной системе. Для Mac вам нужно перейти в настройки. И тогда в настройках вы просто ищете клавиатуру. Так что найдите здесь клавиатуру. И тогда под клавиатурой вы будете искать диктовку. Включите ее. И тогда установите сочетание клавиш для нажатия клавиши control дважды. Если вы на Windows, я почти уверен, что она уже включена. Это просто Windows keyh. Хорошо. Итак, я собираюсь продиктовать запрос, и мы создадим план. Но нам нужно быть в специальном режиме для этого, а именно в режиме плана. Так что я нажму shift tab, что перенесет меня в режим плана. И тогда я начну планировать. Так что давайте сделаем это. Я хотел бы создать сайт под названием URL list. Вся суть сайта заключается в том, чтобы позволить пользователям создавать списки ссылок, а затем делиться ими по одному URL-адресу. Итак, сайт — это, по сути, домашняя страница, которая описывает, что делает сайт, с большим заметным полем ввода, которое гласит: "Создайте свой первый список". И затем, после того, как пользователь введет ссылку, он переходит на страницу составления, где он может продолжать вводить больше ссылок. И по мере ввода ссылок, данные open graph для этих ссылок извлекаются из Интернета, так что каждая ссылка имеет приятную иконку, заголовок и описание. Пользователь может редактировать эти заголовки и описания или принимать их как есть. Они также могут переупорядочивать элементы в списке с помощью перетаскивания. Кроме того, они создают пользовательский URL-адрес. Но эти пользовательские URL-адреса должны быть уникальными, и список также может иметь описание. Теперь, как только у них все это будет, они могут опубликовать ссылку, список и сделать его общедоступным. Кроме того, у них есть страница "Мои ссылки", где они могут видеть все свои ссылки и редактировать эти списки ссылок в любое время с этой страницы "Мои ссылки". Для этого я хочу, чтобы вы использовали Firebase в качестве бэкэнда. Я установил Firebase CLI и вошел в систему. Так что не стесняйтесь создавать любые ресурсы, которые вам нужны. Если вам что-то нужно от меня, просто спросите. Кроме того, как всегда, используйте навык фронтенд-дизайна при создании, чтобы у нас был красивый, прекрасный сайт. И я дам вам некоторое дизайнерское вдохновение для этого сайта. Так что это был довольно длинный запрос. Я нажму shift enter, чтобы перейти вниз. И вы можете видеть внизу, я сказал, что дам ему некоторое дизайнерское вдохновение. Мы сделаем это. Так что давайте перейдем в браузер, и мы зайдем на color.adobe.com. Мы просто поищем приятную палитру. Так что давайте посмотрим на "исследовать", а затем "весна". Мне нравятся светлые, своего рода пастельные цвета. Так что давайте посмотрим, что у нас есть здесь. Так что это очень красиво. Вы можете представить, что это может сделать действительно красивый сайт. Этот здесь красивый. Мне нравится этот. Так что я нажму на него здесь. И тогда то, что я сделаю, это скажу "скопировать как CSS", верно? И тогда давайте вернемся. Я просто вставлю все это. Теперь есть много строк, так что вы их не увидите. Но если бы мы, потому что мы находимся в Visual Studio Code, давайте создадим новую вкладку здесь. И мы можем просто вставить и посмотреть. И вы можете видеть, что здесь действительно интересно, это не только то, что он э-э описывает цвет для использования, но и описывает белые розы на фоне голубого неба под солнечным светом. ИИ посмотрит на это и преобразует это в дизайн. Так что мы буквально даем ему вдохновение в форме э-э CSS-классов. Совершенно завораживает. Хорошо, давайте, давайте не будем сохранять это, и мы собираемся отправить это. Это огромный запрос, верно? Я, по сути, просто сказал все, что пришло мне в голову. И теперь агент Opus 46 собирается приступить к работе, и он попытается создать план для этого. Так что теперь вы можете видеть здесь, похоже, мы не в режиме yolo. Так что давайте скажем "да". И давайте вернемся и сделаем "разрешить все". Если вы помните, так мы попадаем в режим yolo. Разрешения теперь включены. Хорошо. Так что он больше не будет меня спрашивать. И я могу ускорить это немного, чтобы вам не пришлось смотреть, как думает ИИ. Но я вижу, что у вас уже есть проект под названием link list. Так что я уже делал эту демонстрацию. Следует ли мне использовать этот существующий проект? Э-э, давайте создадим новый, чтобы мы начали с нуля. Как пользователи должны аутентифицироваться? Э-э, давайте начнем просто с входа через Google. Мы просто начнем с этого. Какой фреймворк для фронтенда использовать? Интересно. Я не указал ничего из этого. React + V рекомендуется. Далее. Хорошо. Хорошо. React + V звучит хорошо, мы останемся с этим. Где его следует разместить? Мы хотим, чтобы он был размещен на Firebase. Все будет на Firebase. Требуется ли при создании списка сначала войти в систему? Ой, теперь это хороший улов. Так что да, вход требуется. Требуется. Нет, любой может создать, но только вошедшие пользователи могут управлять. Так что я думаю, что здесь мы хотим, чтобы любой мог создать список, но только вошедшие пользователи могли его опубликовать. Если пользователь не вошел в систему, э-э, он может создать список, который должен быть сохранен в локальном хранилище. Верно? Так что у нас нет подходящего варианта. Так что мы предоставляем некоторое направление и некоторую спецификацию для планирования. И мы не пишем никакого кода прямо сейчас. Агент не пишет никакого кода. Все, что он делает, это помогает нам собрать все требования, которые нам действительно нужны для построения этого, потому что в противном случае ему придется много угадывать, и он угадает неправильно, потому что это ИИ. Это не чтец мыслей. Теперь он отправился создавать план. Я должен отметить, что в обычном рабочем процессе для меня на этом этапе я перейду к чему-то другому. Так что я не буду сидеть здесь и просто смотреть на это. Что я сделаю, это я создам новый экземпляр Visual Studio Code и начну строить что-то другое, или я вернусь и поработаю над чем-то другим. Так что, например, я работал над мобильным приложением для iOS, которое является приложением для чата, которое работает так, как я хочу. Так что я вернусь сюда и начну работать над этим приложением для чата. Обычно я бы так и делал, верно? Я бы позволил этой другой вещи готовиться в фоновом режиме, а затем периодически я буду возвращаться и проверять. И похоже, режим плана завершен. Я как раз вовремя. Теперь вы можете видеть, что у нас есть пара разных вариантов: принять план и построить в автопилоте. Принять план и построить по умолчанию. Так что я фактически не возьму ничего из этого. Я просто нажму escape, чтобы полностью отменить это. Я объясню почему через минуту. Так что вы можете видеть, что он создал план здесь. И если мы вспомним, если мы нажмем command на этом, то мы можем увидеть план прямо здесь. Так что вот план. И вы можете видеть, что он, он на самом деле довольно длинный. Э-э, он описывает э-э структуру данных. Он описывает все страницы, маршруты, облачные функции, которые необходимы, правила безопасности. Там много всего. И обычно, если бы мы не снимали просто демонстрационное видео, мы бы прошли через это, проверили его. Не обязательно проверять его в мельчайших деталях, не нужно тщательно проверять каждую деталь, но вам нужно пройти и подумать о различных вещах, которые происходят, и просто посмотреть, не выскочит ли что-нибудь вам как красный флаг. Обычно я так и делаю. Но поскольку мы снимаем видео, мы хотим реализовать план. И поэтому вместо этого мы переключимся в режим, я сделаю shift tab, и мы перейдем в режим автопилота. И автопилот вы можете думать о нем как о версии Ralph loop для copilot CLI. Хорошо, если вы не знаете, что такое Ralph loop, это, по сути, просто помещение агента в цикл while, и агент просто работает и работает, и работает, и ему постоянно скармливаются его собственные результаты, пока он не достигнет точки, где он посмотрел на свой собственный вывод настолько много, что чувствует себя действительно уверенным, что он реализовал вещи правильно. Это встроено в CLI. Мне нравится эта функция. Она называется автопилот. Мы оставим ее на anvil, верно? И мы просто скажем "implement". Теперь мы могли бы упомянуть файл плана здесь, если бы мы захотели, с помощью @, но нам не нужно. Мы просто скажем "implement the plan" и дадим ему готовиться. Теперь это займет секунду. Так что я пойду работать над другими вещами, и мы вернемся и посмотрим, что именно произошло здесь и что мы получили. Увидимся через минуту. Отлично. Итак, я возвращаюсь к вам до того, как это фактически закончится, чтобы мы могли взглянуть на несколько вещей, которые происходят, пока это работает. Итак, одна из вещей, которую мы можем сделать, пока это работает, это посмотреть на различные фоновые задачи. Так что вы можете видеть, что он выполняет враждебную проверку с 53. Скрытая модель — Gemini с open 46. Так что, если мы нажмем /tasks, мы можем увидеть каждую из них, и мы можем углубиться и увидеть, что здесь произошло, верно? Так что мы можем видеть, что похоже, Gemini обнаружил некоторые SSRF и облачную функцию open graph критической серьезности, верно? И поэтому он обсудит это с Opus. Они разберутся в этом между ними. Так что вы можете проверить фоновые задачи таким образом, включая фоновые процессы терминала. Так что я нажму escape и снова escape, чтобы вернуться. Теперь другая вещь, которую я хочу показать вам здесь, которая довольно увлекательна, заключается в том, что другое преимущество выполнения этого внутри Visual Studio Code заключается в том, что мы фактически получаем интеграцию со встроенным чатом в VS Code. Так что я открою эту боковую панель чата. И вы увидите здесь различные э-э сессии, которые у нас были с Copilot CLI. Они просто появляются здесь. И я немного расширю это. Если я нажму на это, это фактически откроется, и мы фактически смотрим на сессию CLI в боковой панели чата. Верно? Так что, если вы прокрутите вверх здесь, и я очень сильно увеличил масштаб для видео, поэтому очень трудно увидеть, но мы можем видеть, что именно происходит. И если мы вернемся сюда, давайте посмотрим. Давайте посмотрим. Здесь. Так что вот хороший пример. Так что это произошло. Вот под агент, который использовался для проверки статуса firestore. Не то, что легко увидеть в CLI, но если мы нажмем здесь, это приведет нас к этому. Так что мы можем видеть, что именно произошло, верно? Так что он использовал get diagnostics. Так что он использует, следуйте за мной, CLI использует инструмент диагностики редактора, в частности LSP или языковой сервер. Так что, если я сделаю, я открою нижнюю панель здесь. Если вы когда-нибудь зайдете в "проблемы" и увидите "проблемы", это делает языковой сервер. Это называется LSP или протокол языкового сервера. CLI, интегрированный с редактором, великолепен, потому что в противном случае он не знает, что есть ошибки. Он не может использовать функции редактора, такие как линтинг и проверка ошибок, э-э, для проверки своего собственного кода. Он фактически буквально должен построить, и это не самый эффективный способ. Мы хотим, чтобы агент имел те же инструменты, что и мы. И тогда мы можем видеть, что он выполнил эту команду здесь, и мы можем углубиться и увидеть, что именно это за команда и что на самом деле произошло. Так что интеграция с Visual Studio Code очень мощная, ее нельзя недооценивать. Часто вам неважно, что происходит в CLI, но когда это важно, вам действительно нужно иметь возможность углубиться и увидеть это. И интеграция внутри VS Code предоставляет это. И это бесплатно. Это просто работает. Вам не нужно ничего настраивать. Так что интересно, что вы можете видеть, что он просматривает отзывы от 53 и Gemini, а затем выполняет сборку и убеждается, что все проходит. И он фактически развертывает хостинг и правила. Так что снова, мы в Ralph loop здесь. Так что он действительно попытается дойти до конца. И помните, я сказал ему: "Эй, у тебя есть Firebase CLI, так что просто продолжай, пока не закончишь. Делай все, что тебе нужно". И вы можете видеть, как он идет, вы увидите эти SQL-вызовы. И это потому, что CLI использует эту базу данных SQLite в бэкэнде. И Anvil использует эту базу данных SQLite для отслеживания прогресса, чтобы, когда он дойдет до конца, он не галлюцинировал, сделал ли он что-то на самом деле. Он должен проверить базу данных, чтобы увидеть, сделал ли он это на самом деле. Так что он закончил. И я уменьшил масштаб, чтобы мы могли видеть, что на самом деле происходит с Anvil, потому что все в конце — это пользовательский агент. Так что вы можете видеть, давайте просто пройдемся по тому, что он фактически сделал. Он представляет пакет, основанный на доказательствах. И это действительно для его э-э выгоды, чтобы он знал, что здесь есть доказательства того, что он завершил и сделал то, что он сказал, что собирается сделать. Так что начальное состояние было чистым после первоначального коммита, пустой проект только с readme. Так что это снимок начального состояния, а затем после проверки после того, как он закончит. Так что он запустил V build, он посмотрел на диагностику IDE. Он посмотрел на правила Firebase. Он посмотрел на хостинг, выполнил функции хостинга. Так что похоже, что для blaze plane требуется резервное копирование. Так что ему нужно, чтобы я обновил до плана Blaze. И тогда регрессии не обнаружены. И тогда здесь враждебная проверка, где он посмотрел на 53 Codeex, Gemini 3 Pro и Opus Force 6. Все они нашли примерно одно и то же, прошли и исправили все эти вещи, а затем вернулись и, по сути, сказали: "Я закончил". И если вам это не нравится, вы можете просто запустить эту команду здесь, чтобы отменить все это. И это идея Anvil — он проверяет свою работу и облегчает вам откат изменений, которые он внес. Теперь он хочет, чтобы я обновил до планов Blaze. Я сделаю это быстро. Он фактически хочет запустить это э-э в облаке. Он развернул его, но я хочу запустить его локально. Так что я буквально просто спрошу, как мне запустить это локально? И э-э, надеюсь, он не попытается запустить его сам. Если это произойдет, мы можем остановить его в любое время. Кстати, вы можете остановить в любое время, просто нажав escape один, два, два, один, два остановит. Э-э, и просто э-э, вы можете просто остановить модель от ответа или выполнения того, что она делает. Э-э, так хотите ли вы запустить эту команду? Э-э, нет. Так что мы запустим ее сами. Что мы сделаем? Что мы хотим запустить? Похоже, мы хотим запустить npxvit. Отлично. Так что он работает. И тогда давайте нажмем и откроем наш сайт. Отлично. Итак, вот что он создал. И помните, мы предоставили CSS. И вы можете видеть э-э, похоже, мы уже вошли в систему. Я не знаю как. Вот мои ссылки. Давайте попробуем google.com. Э-э, похоже, он хочет полностью квалифицированный. Так что давайте введем его. Создайте наш список. Вот он. Хорошо. И у нас есть две ссылки. Мы можем перетаскивать их. Мы можем перемещать их. Можем ли мы добавить новую? Microsoft Microsoft.com. Это выглядит хорошо. О, мы и мы получаем. Посмотрите на, э-э, скругленные. Он добавил немного скругления к open graph, что прекрасно. Мне это нравится. Могу ли я редактировать разные вещи? Могу. Это просто, это действительно приятно. Э-э, давайте сделаем GitHub и GitHub. Интересно. Хорошо, а как насчет еще одного? А как насчет этого сайта? Это хороший. Мой мой собственный блог. Бесстыдная реклама. Вот он. Хорошо. И тогда вот наш пользовательский URL. И тогда можем ли мы опубликовать? Э-э, похоже, можем. Э-э, очень приятно. Э-э, и поэтому мы должны были добавить заголовок здесь. Если мы выйдем, тогда мы можем войти через Google. Вот, вот мои ссылки. Давайте создадим новый список. Дайте ему имя, описание. Так что, знаете ли, есть вещи, которые я бы изменил, например, слишком много эмодзи. Поток немного нелепый. Э-э, я бы вернулся и начал направлять и вносить некоторые изменения, но, по сути, это своего рода ваш "берндаун" по CLI, то, что вам нужно знать сегодня, чтобы использовать его, и своего рода, как я использую его для рабочих процессов. И вы действительно можете построить что угодно, как я, я не могу подчеркнуть это достаточно. Одна из вещей, над которой я работал, — это соревнование по программированию Vibe, которое у меня было с Пирсом из команды продукта на прошлой неделе в Radmin. И если вы присоединились к этому э-э в прямом эфире. Так что вот другой экземпляр Visual Studio Code. У меня их на самом деле три, и я использую расширение peacock, чтобы я мог сказать, в каком я нахожусь. Так что этот зеленый. Этот синий. А затем это тот, в котором мы были. Так что это просто легкий способ для меня визуально перемещаться и видеть, хорошо, это мое мобильное приложение. Это демонстрационное приложение, над которым мы работаем сейчас. И вот другое. Так что это я просто, я просто хочу показать вам, потому что я, я своего рода горжусь этим. Но э-э, вся суть этого заключалась в создании стены благодарности для участников, потому что большая часть вкладов, которые делаются, или кода в Visual Studio Code, исходит от вас, исходит от ваших pull request. И поэтому мы хотели почтить это. И поэтому я создал сайт под названием "стена благодарности". Это было частью вызова. И вы можете загрузить выпуск здесь, и вы можете увидеть всех различных участников, а затем просто своего рода выразить им признательность здесь, что приятно. Но я показываю вам это, потому что я также добавил в самый низ. Я сказал: "Было бы так здорово, если бы вы могли просто летать и исследовать всех этих разных участников". И поэтому я сделал это, чтобы вы могли просто летать по небу и исследовать. Я имею в виду, а затем выражать признательность людям. Это просто сносит мне крышу. Год назад это было бы просто невозможно. И это просто я, своего рода, говорю ИИ, что я хочу, и он строит. Посмотрите на эти горы, эти деревья и эти облака. Вы можете сделать это. Нет ничего, чего вы не можете сделать. Э-э, в любом случае, боковая панель, немного отвлекся, но это GitHub Copilot CLI. Он мне очень нравится. Он действительно мощный. Я считаю, что он чрезвычайно хорош в обработке фоновой активности терминала. Автопилот или Ralph loop там великолепен. И мы даже не добрались до таких вещей, как флоты, которые позволяют развернуть целый флот под агентов для решения больших проектов, таких как рефакторинг. Я надеюсь, это было полезно. Я надеюсь, это поможет вашим рабочим процессам. И помните, что все, что работает для вас, — это правильный рабочий процесс. Я оставлю ссылки на все эти вещи, которые вам нужны или которые использовались в видео, такие как Anvil, ниже в описании. И, как всегда, спасибо за просмотр и удачного кодирования.