📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

5 NEW Vibe Coding Repos You Haven't Heard of Yet

Sean Kochel27:30

Transcription

Вот пять новых репозиториев GitHub, с которыми я недавно столкнулся, и они довольно потрясающие, причем половина из них еще не набрала 10 000 звезд, что для меня довольно удивительно, потому что эти вещи решают некоторые довольно большие проблемы, с которыми я сталкиваюсь ежедневно, пытаясь создавать приложения с ИИ. Итак, мы пройдемся по каждому из них, продемонстрируем их и поговорим о том, где это может вписаться в ваш процесс и где некоторые из этих вещей могут быть использованы вместе. Начнем с моего любимого из этой группы, над которым вы можете посмеяться надо мной, draw.io. Итак, одна из вещей, которая действительно раздражает при кодировании, особенно если вы не инженер по образованию, заключается в том, что вы, как правило, не знаете, во-первых, что вы реально построили, а во-вторых, как все эти разные вещи, которые вы построили, на самом деле связаны между собой. И это может быть большой проблемой, потому что когда вы хотите внести улучшения или просто понять, откуда может исходить проблема или какая область нуждается в улучшении, вы в значительной степени полагаетесь на языковую модель, чтобы разобраться в этом, хотя на самом деле вам нужно понимать, как все это работает. И поэтому, что делает этот навык конкретно, так это то, что он использует интерфейс командной строки draw.io, но использует его, чтобы помочь вам создавать реальные диаграммы архитектуры вашего приложения. Итак, мы можем увидеть это на примере здесь, где мы видим мобильный интерфейс, веб-интерфейс, возможно, административный интерфейс, все это маршрутизируется через этот API-бэкенд, который передает его всем этим различным сервисам в зависимости от того, что происходит, а затем у них есть, знаете ли, разные базы данных в зависимости от сервиса и того, как вы структурировали свое приложение. И поэтому наличие такого понимания может быть чрезвычайно ценным, потому что, опять же, это даст вам понимание того, что на самом деле происходит внутри вашего приложения, где что находится, и, на мой взгляд, лучший способ подойти к кодированию или инженерии — это подойти к этому с точки зрения того, что мы хотим постоянно учиться тому, как это работает, чтобы мы могли создавать все лучшее и лучшее в будущем. Худшее, что может случиться, это то, что ваши навыки останутся на прежнем уровне, и, на мой взгляд, именно такой инструмент помогает вам в этом. Так что позвольте мне показать, как это работает конкретно. Итак, первое, что вам нужно сделать, это просто ввести команду, в зависимости от того, знаете ли вы, находитесь ли вы на Mac, Windows или, возможно, вы полный крутой парень и используете Linux. Убедитесь, что вы сначала установили эту штуку. Я не буду вдаваться в подробности, потому что это очень просто, а затем, после того, как вы это сделаете, все, что вам нужно сделать, это установить навык. Так что, если вы не используете Claude Code, вы можете просто использовать общую команду добавления навыков, а затем передать это, но если вы хотите установить это через плагин Claude Code или что-то в этом роде, вы можете просто использовать команду слэш-плагин, добавить маркетплейс, а затем установить навыки из маркетплейса. И так, первое, что вы сделаете, это спуститесь и просто вызовете навык, навык draw.io, а затем вы дадите ему команду. И одна из вещей, которая действительно приятна в этом, это то, что вы можете дать ему описание на естественном языке того, что именно вы хотите увидеть визуализированным, и он сделает это. Так что в этом примере, который я покажу вам первым, я сказал: «Я хотел бы визуализировать различные слои сервисов внутри моего репозитория». И поэтому эта штука прошла, она исследовала кодовую базу, что, честно говоря, не заняло так много токенов, а затем из этого она, по сути, нарисовала нам редактируемую диаграмму архитектуры. Так что, если мы сейчас спустимся в draw.io и откроем его, мы увидим именно это. Итак, в этом случае мы можем увидеть общую архитектуру MVP, которую мы строили, и мы собираемся вывести ее на рынок в рамках моего платного сообщества. И поэтому мы можем увидеть, как это выглядит. У нас есть уровень представления, который полностью отвечает за отображение вещей пользователю. Итак, у нас есть мобильный интерфейс, у нас есть вся навигация и элементы управления внутри этой штуки, все наши различные состояния обратной связи, значки и значки, а также различные наложения, которые у нас есть в нашем приложении, и все, что отвечает за фактическое представление чего-либо пользователю, находится здесь. Итак, затем, если вы продолжите двигаться дальше, мы можем увидеть, как уровень представления затем взаимодействует напрямую с нашим фронтенд-менеджером состояний. Итак, мы можем думать об этом как о том, где все данные с фронтенда на самом деле находятся или существуют, когда уровень представления вызывает их? Этот фронтенд затем разрешает все внутри себя относительно нашего уровня сервиса. Итак, доступ к данным, вся бизнес-логика. В этом случае это приложение для ведения пищевого дневника на естественном языке, и поэтому есть много разрешений выражений, которые пользователь вводит в чате. Так что, если кто-то говорит: «Запиши мне мою куриную тарелку с рисом». он должен уметь разрешить это выражение, а затем выйти и найти его. И поэтому мы можем увидеть все различные функции внутри этого. У нас есть этот резолвер, у нас есть эта функция рецепта, верно? У нас есть куча других функций и сервисов на этом уровне. Итак, причина, по которой что-то вроде этого ценно, я думаю, заключается в том, что многие люди, когда сталкиваются с какими-либо проблемами, просто говорят: «Эй, Claude Code, исправь эту проблему». И знаете, это обычно может сделать это довольно эффективно, но чтобы заставить его исследовать кучу вещей, в конце концов, если бы мы могли указать им на то, что, как мы знали, было областью, где проблема, скорее всего, находилась, мы бы в конечном итоге сэкономили токены в долгосрочной перспективе, и мы бы фактически построили понимание того, как все работает. Так что, например, если я сталкиваюсь с кучей проблем, связанных с тем, как обрабатываются чаты, которые отправляет пользователь, и вызывается ли агент эффективно и тому подобное, я знаю, что это, скорее всего, начнется с: «Эй, нам нужно проверить этот слой резолвера внутри нашего приложения». Так что было бы очень глупо, если бы мы отправили его читать наши файлы аналитики или телеметрии. Это было бы просто глупо и пустая трата времени. Итак, затем мы можем увидеть, хорошо, тогда уровень сервиса взаимодействует с нашей базой данных бэкенда. Итак, различные продукты, различные записи продуктов, рецепты, макро-цели, все, что связано с нашим приложением, находится в этом уровне базы данных. И поэтому, последний элемент — это то, что у нас есть эти различные пограничные функции, где мы подключаемся к внешним сервисам. Итак, PostHog для захвата событий продукта, мы используем OpenAI для завершения чата, а затем мы используем пограничные функции для обработки некоторых других вещей, которые происходят. Итак, теперь это всего лишь один пример того, как это может выглядеть. Если бы мы хотели увидеть, как эти различные сервисы, например, фактически подключаются к очень конкретным базам данных и как выглядит эта логика, мы могли бы попросить этот навык в данном случае пройти и фактически внести такое обновление в нашу диаграмму. И поэтому, чтобы подчеркнуть этот момент, недавно был твит от генерального директора Microsoft. И, по сути, чтобы подытожить все это в формате «слишком длинно, не читал», мы склонны очень сильно фокусироваться на лучшей модели и пытаться делать все за один раз и проводить все эти демонстрации этих инструментов. Но если вы действительно хотите добиться успеха в долгосрочной перспективе, вам нужно использовать эти инструменты как циклы обучения. Потому что вы сможете продвигать эти модели только настолько, насколько позволяет ваш опыт. Вот почему люди, которые являются невероятно талантливыми инженерами, уже могут создавать действительно сложные вещи с помощью этих инструментов, в то время как люди, которые более начинающие, знаете ли, довольно здорово, что они могут создать приложение «напомни мне выгулять щенка». Но причина, по которой оно не может выйти за эти пределы, заключается в том, что у них нет языка или понимания, чтобы знать, куда они могут продвинуть эти вещи в первую очередь. И поэтому, хотя это может показаться простым, наличие такого инструмента, который может начать направлять вас в сторону изучения того, что именно происходит внутри ваших проектов, я считаю невероятно ценной вещью, которую должен делать каждый. Но даже имея что-то подобное, вы неизбежно можете столкнуться с ситуацией, когда, возможно, даже то, что у нас есть здесь, неоправданно усложнено. Например, мы построили все эти вещи, и технически это работает, но одна вещь, которую любят делать языковые модели, — это чрезмерно инженерить решения проблем, и именно с этим помогает нам следующий инструмент. Итак, следующий инструмент называется Ponytail, и у него один из лучших аватаров, я думаю, которые я когда-либо видел для репозитория GitHub. И поэтому, как я уже говорил ранее, одна из самых больших проблем с инструментами для кодирования с помощью ИИ заключается в том, что они на 100% будут чрезмерно инженерить решения проблем. Несмотря на ваши лучшие усилия, несмотря на попытки, возможно, вы попытаетесь сдержать это, возможно, вам все равно, но он выйдет и создаст абстракции и вещи, которые вам не нужны для того, где находится ваш проект сейчас. И поэтому эта библиотека предназначена для того, чтобы помочь нам решить эту проблему, так что вы можете думать об этом как о тех плагинах для пещерных людей, которые мы видим повсюду, где модели должны говорить с вами меньшим количеством строк, но это делается для фактической реализации. Например, можно ли отказаться от того, что вы делаете, полностью или сделать это гораздо проще? Так что, если вы когда-либо работали в компании SAS, вы можете знать кого-то такого. Длинные волосы, овальные очки. Он работает в компании дольше, чем сама система контроля версий. Вы показываете ему 50 строк, он смотрит на них, качает головой, ничего не говорит и заменяет их одной. Вот что мы пытаемся сделать с этой библиотекой. Итак, давайте посмотрим, как это работает. Очевидно, вы установите эту штуку так, как вы бы установили плагин, поэтому вы добавляете маркетплейс, а затем устанавливаете плагин. Итак, на самом деле есть несколько разных команд внутри этого. У них есть прямая команда ponytail, и это будет полезно, если вы на самом деле пытаетесь что-то реализовать. Затем у них есть команда audit, которая просмотрит все, что у вас есть, и попытается понять, где у вас есть ненужные вещи, где вы можете упростить, где вы можете удалить вещи полностью, а затем вы также можете запустить это для фактических обзоров кода. Так что, например, если бы мы спустились внутрь этого проекта и запустили команду audit, эта штука пройдет и, надеюсь, может быть, надеюсь, может быть, не, разберет мою кодовую базу и скажет мне, что я сделал ужасную работу. Ладно, ребята. Итак, теперь, когда эта штука закончена, мы видим, что она предложила ряд вещей для потенциального исправления. Итак, одна, две, три вещи, которые она рекомендовала бы удалить полностью, потому что они либо не используются. Так что в данном случае это проект Expo, и поэтому мы импортируем стандартные вещи Expo, которые на самом деле не используются. Так что мы хотели бы удалить их вместе с некоторыми другими файлами. Есть несколько областей. Я думаю, это самое большое открытие. У нас есть одна, две, три, четыре, пять, шесть, семь вещей, которые следует сократить. Так что пример того, как может выглядеть одна из этих вещей для сокращения, это в нашем случае в этом приложении, моя философия с процессом планирования заключается в том, что вы должны планировать все различные состояния ошибок заранее, прежде чем начать строить. И поэтому, в данном случае, у нас есть по крайней мере три различных состояния ошибок, конкретно относящихся к этой полосе, которую мы имеем в нашем приложении. И поэтому у нас есть полоса ошибки, у нас есть полоса ошибки коррекции, а затем у нас есть полоса безопасной ошибки. И это все отдельные компоненты. И единственное, что действительно отличается от них, это текст, который используется, и цвет, и обработчик, который находится внутри него. И поэтому, в данном случае, у нас должен быть один компонент полосы ошибки, который принимает их как свойства внутри себя. Так что это пример того, что вы можете найти с командой shrink. И затем у нас есть YAGNI, вам это не понадобится, что обычно является ситуациями, когда вы что-то чрезмерно инженерили, что, да, хорошо, вы, возможно, планируете что-то далекое в будущем, что никогда не произойдет. И поэтому, зачем создавать сложность, когда вы можете просто сделать что-то, что опять же проще, что опять же является целью всей этой библиотеки. Так что скоро я покажу вам другой взгляд на этот тип инструмента, потому что это невероятно ценно, особенно если вы не инженер по образованию, но даже если вы инженер и хотите иметь возможность управлять этим в определенном направлении, я лично считаю, что такой тип инструмента действительно, действительно, действительно потрясающий. Вам просто нужно найти, основываясь на вашем уровне опыта, где это лучше всего вписывается в ваш конкретный процесс, какие навыки вы используете для создания вещей, какой спектр и инструменты вы используете, и опять же, где это будет иметь смысл в контексте всего этого. Но прежде чем мы перейдем к другой такой реализации чего-то подобного, я хочу показать вам бесплатный инструмент с открытым исходным кодом, который я нашел недавно, и который является огромным улучшением качества жизни, если вы еще этого не делаете, и он бесплатен. И поэтому вы, вероятно, слышали статистику раньше, что мы можем произносить слова примерно в три раза быстрее, чем печатать. И поэтому вы видите, как многие люди полностью переходят на такие инструменты, как WhisperFlow, где они просто говорят модели, что они хотят, чтобы произошло, вместо того, чтобы сидеть и печатать, потому что когда вы печатаете, вы склонны сокращать контекст, который вы, вероятно, дали бы иначе, если бы могли быстрее извлечь этот контекст из своего мозга. И поэтому есть много платных инструментов для этого, которые я пробовал. Я в настоящее время использую WhisperFlow, который мы видим здесь внизу. Это я использую WhisperFlow внизу, но это стоит денег. И поэтому этот инструмент, который называется Handy, по сути, является полностью бесплатной версией с открытым исходным кодом чего-то вроде WhisperFlow с технически немного меньшей функциональностью. Например, я не думаю, что у него есть возможности переписывания ИИ и некоторые подобные вещи, которые есть у WhisperFlow, но если вам это неважно, и вы просто хотите простой способ выгрузить свои мысли, это отличный инструмент для этого. И поэтому способ установки этой штуки, есть два варианта. Вы можете пройти и установить ее через Homebrew. Вы также можете просто зайти на их веб-сайт, скачать ее для любой платформы, на которой вы находитесь. Загружается очень быстро. Затем все, что вам нужно сделать, это перетащить ее в папку приложений. Опять же, в данном случае на Mac, вы делаете то, что соответствует вашей операционной системе. Итак, затем мы можем открыть штуку, принять разрешения. И теперь, одна из классных вещей в этом, если мы посмотрим на нее, это то, что мы можем выбрать тип модели, которая используется, в зависимости от машины, которая у нас есть. Так что, заботитесь ли вы больше о точности или скорости, вы можете выбрать, что вы хотите использовать. Parakeet, похоже, является моделью, которая набирает популярность среди людей в последнее время. Также есть Whisper large, который обрабатывает вещи медленнее, но очень точен. Но мы можем пройти и попробовать, например, что-то вроде Parakeet. И теперь, чтобы продемонстрировать, как эта штука работает, я не настраивал никаких других параметров. Мы можем просто пройти и нажать Command + пробел. И теперь, пока мы сидим здесь и печатаем, мы могли бы говорить о чем угодно, говорить о наших отзывах о конкретной спецификации, которую мы смотрели в одном из наших проектов. Возможно, нам не понравилось направление, которое оно принимало. Возможно, мы хотели бы увеличить масштаб и объяснить вещи по-другому, что бы это ни было. Мы видим, что мы получили все это, и это довольно точно. Теперь, пока мы сидим здесь и печатаем, мы можем печатать что угодно. Бла-бла-бла. Опять же, довольно точно. Есть некоторые различия между чем-то вроде этого и Whisper flow. Whisper flow удаляет лишние слова и слова-заполнители. Так что, если вы болтаете или часто говорите «эээ», он удалит такие вещи. Но для целей использования языковой модели, я не думаю, что это имеет большое значение. Так что, если вы интересовались использованием чего-то вроде Whisper flow, но не можете вынести платить 20 долларов в месяц или сколько там за Whisper flow, это действительно классный вариант с открытым исходным кодом, который вы можете использовать. Но в этой ситуации было бы полезно проверить это на чем-то ценном. Так как же мы можем объединить это со следующим навыком в списке, чтобы действительно повысить нашу общую эффективность, пока мы движемся вперед и создаем вещи? Итак, следующий навык, который я хочу показать вам, называется improve, и он разработан Shad CN или Shade CN. Я до сих пор не знаю, как это произносится. Напишите в комментариях и скажите мне правильный способ произношения, чтобы я перестал коверкать его в своих видео на YouTube. Но, по сути, что это такое, это аудитор кодовой базы. Так что, если вы помните все то время, когда у нас был доступ к Fable 5 в течение 2 с половиной дней или около того, этот навык был одним из тех, которые я использовал безостановочно, чтобы улучшить свои проекты. Потому что, по моему опыту, сам по себе Fable 5 был очень хорош в улучшении вещей, где у вас был существующий проект или существовали существующие шаблоны. Я знаю, что многие люди демонстрировали одноразовые новые вещи, что круто, но я думал, что он действительно хорош в исправлении существующих вещей. Дело в том, что я думаю, что с каждым скачком модели мы должны использовать эти возможности, чтобы фактически улучшать то, что мы уже построили. Но пока они не решат вернуть нам это, этот навык все еще довольно крут. Итак, давайте посмотрим, как это работает. Итак, в данном случае мы вызовем команду improve, но затем мы можем спуститься и использовать такой инструмент, как Handy, который мы нашли в прошлом видео. Мне нужно, чтобы вы провели аудит кодовой базы нашего приложения, но я хочу, чтобы вы конкретно посмотрели на эффективность наших функций резолвера. Итак, как мы обрабатываем информацию, поступающую с фронтенда от пользователя через чат, и решаем, нужно ли ее обрабатывать языковой моделью и нужно ли ей отправляться к агенту, или это то, что может фактически разрешиться до простого поиска. Так что это будет в первую очередь упражнение по оптимизации токенов языковой модели, но важно, чтобы в любых рекомендациях, которые вы даете, мы по-прежнему оптимизировали точность, чтобы мы принимали правильные действия, когда это необходимо. Бум, и готово. Итак, если бы мне пришлось напечатать все это, я бы, вероятно, сказал: «Мне нужно, чтобы вы оптимизировали нашу кодовую базу для вызовов языковой модели, верно?» Но теперь, когда у меня есть эта возможность, я могу получить гораздо больше контекста и действительно более полно изложить свои идеи. Если бы я не делал этого в видео, я бы, вероятно, потратил больше времени на то, чтобы сделать несколько таких мысленных записей в текстовый файл, а затем скопировать их. Но опять же, одна из причин, по которой все эти вещи сходятся, заключается в том, что если бы мы вернулись к навыку draw.io, который мы рассматривали ранее, опять же, причина, по которой я смог точно знать, где, по моему мнению, возникает эта неэффективность, заключается в том, что у меня есть такой тип диаграммы архитектуры, и я обратил внимание на типы вещей, которые строились внутри приложения, читал спецификации и пытался понять, что оно делает и почему. Итак, я знаю, что вся эта логика находится внутри этого резолвера, и поэтому, если я смогу указать модели туда, мы получим гораздо лучший анализ с самого начала. И поэтому одна из причин, по которой мне действительно нравятся такие инструменты, не обязательно этот конкретный, а любой такой инструмент, заключается в том, что он находит эти крайние случаи. Итак, что произошло ранее в контексте этого приложения, так это то, что я уже просил Opus исправить это для меня. И что он сделал, так это исправил это в одном месте. Так что в кодовой базе уже есть то, что я, по сути, прошу его оптимизировать, но он поместил это только в одно место. Это только в функции композиции рецептов внутри этого приложения. Так что, если кто-то находится в телефоне, разговаривает на естественном языке и говорит: «Эй, мне нужна куриная тарелка с рисом. У меня было 100 г курицы. У меня было 50 г риса, и у меня был мой домашний соус буффало». Это единственное место, где это используется, и есть много мест в приложении, где такая оптимизация должна происходить. Но на самом деле большая часть этого просто отправляется напрямую языковой модели, когда на самом деле большая часть этого могла бы разрешиться детерминированно, то есть нам не нужно использовать языковую модель для этого. И поэтому именно это он здесь и нашел, и теперь он движется дальше, и он перечисляет все те вещи, которые он нашел. Итак, у нас есть 1, 2, 3, по крайней мере, четыре разные вещи, в которых он довольно уверен, что нашел проблему. Это относительно низкие усилия, и это относительно низкорисковая область для рефакторинга. И теперь, одна из вещей, которая мне действительно нравится в этом инструменте, это то, что он не будет реализовывать вещи, как я думаю, многие из этих инструментов пытаются реализовать вещь в том же дыхании. Он просто составит вам план, чтобы вы могли реализовать это в любом инструменте, в котором вы хотите его реализовать. Итак, теперь, когда у него есть эти планы для исправления всех этих различных проблем, которые он нашел, просто чтобы показать вам, каковы мои конкретные следующие шаги для рабочего процесса, это создать их как проблемы GitHub. Теперь причина, по которой я предпочитаю делать это конкретно, возвращает к видео, которое я сделал на прошлой неделе о циклах агентов, которые по какой-то причине получают много внимания, но один из действительно ценных рабочих процессов, которые я лично использую, это всякий раз, когда я хочу что-то построить, и у меня есть четкая концепция этого, будь то ошибка, будь то запрос на новую функцию, оптимизация, которую нужно сделать, что угодно, я создаю их как проблемы GitHub, а затем убеждаюсь, что я действительно согласен с планом реализации этой проблемы, а затем я могу создать огромный бэклог этих вещей, а затем, пока я работаю в течение недели, я могу просто иметь что-то в фоновом режиме, перемещающееся, извлекающее любые открытые проблемы, реализующее их, создающее запрос на слияние, просматривающее запрос на слияние, а затем я могу вмешаться и провести любой обзор, который мне нужен, прежде чем он будет фактически объединен в основной проект. И поэтому для меня именно здесь начинается такой тип вещей, если я использую такой инструмент, как Improve, и я хочу иметь возможность создавать этот бэклог. Вот как я это делаю. Я не вижу причин не использовать что-то вроде GitHub. Есть другие инструменты, которые вы можете использовать, такие как Linear и другие инструменты управления проектами, но поскольку мой репозиторий размещен на GitHub, и это работает для этого, мне не нужно какое-то супер сложное решение. Вот что я использую, и именно так работает этот процесс. Так что позже сегодня, после того, как я закончу это видео, я запущу агентов, чтобы они двигались и фактически реализовывали эти вещи. Если вы хотите увидеть какие-либо другие типы видео о типах циклов агентов, подобных этому, которые я использую, вы можете оставить комментарий ниже и дать мне знать, и я могу подготовить видео на эту тему. Но теперь, если бы мы заглянули в репозиторий GitHub, мы можем увидеть, что мы создали все четыре эти проблемы прямо здесь. И затем я бы перешел к тому, что бы я сделал, это добавил к ним метки в зависимости от того, что именно нужно сделать. Так что, например, все, что с меткой бэклог, не будет реализовано, когда мои автоматизированные запуски будут проходить. Так что вы можете придумать свою собственную систему управления этими вещами, но это действительно надежный процесс. И теперь, если мы заглянем, мы знаем, где именно находится план. Мы можем увидеть, почему именно мы вносим это изменение, что мы делаем. И тогда вы можете пройти, если хотите, и иметь больше диалога. Вы можете пометить Claude, например, и сказать ему, чтобы он исследовал что-то. Много разных вещей, которые вы можете сделать, но в целом, это действительно надежный процесс. Теперь последнее, что я покажу вам, немного не связано со всем этим, но я думаю, что это действительно крутой инструмент, который всем следует использовать в определенных ситуациях. И поэтому этот навык, я думаю, возможно, это не технически навык, это сканер навыков, который был выпущен Nvidia. Итак, что это такое, это набор инструментов для аудита безопасности для сканирования библиотек навыков в частности. Итак, я хочу привести вам очень конкретный пример того, как я бы использовал что-то подобное. Итак, есть репозиторий, с которым я недавно столкнулся, который набирает обороты и становится популярным. Единственная проблема, которая у меня с ним есть, это то, что все на китайском языке, и я из тех людей, которые, когда хотят использовать новую библиотеку, обычно проходят и пытаются понять, как она работает, прежде чем погрузиться и начать ее создавать. Вы можете попробовать, возможно, переключить репозиторий на английский и пройти и попытаться прочитать его, но в данном случае это отличный пример того, где я не знаю, что может находиться внутри этой библиотеки скриптов. Я не знаю, что может быть здесь. Да, я могу пройти, возможно, и прочитать некоторые из этого, но реально, если это на языке, который вы не понимаете, будет так много потенциальных проблем, которые могут возникнуть. И поэтому это пример того, где я хотел бы сканировать репозиторий. И поэтому, что мы можем сделать, это скопировать URL, а затем перейти в терминал, и в данном случае мы находимся внутри проекта skill spector. Одна вещь, которую я скажу, просто возвращаясь к этому, способ установки и работы с этим заключается в том, что вам нужно фактически клонировать этот репозиторий, а затем у вас должен быть Python на вашей машине, и я имею в виду, что вы можете попросить языковую модель помочь вам с этим, если вы не уверены в этом, но вам нужно запустить виртуальное окружение внутри этого проекта. Вам нужно установить зависимости, а затем последнее, что вам нужно сделать, чтобы запустить это, вы можете запустить это бесплатно, но вы получите кучу ложных срабатываний до такой степени, что это даже не очень полезно. В данном случае я использую ключ API OpenAI для выполнения этого сканирования. Итак, мы спустимся сюда, а затем я запущу skill spector scan, а затем я просто вставлю репозиторий, и теперь эта штука запущена и выполняет это сканирование. И поэтому, особенно если вы такой открытый, крутой парень Hermes, знаете ли, который автоматизирует всю свою жизнь, якобы зарабатывая миллион долларов в день, ничего не делая, потому что, знаете ли, бот Hermes выходит и продает вещи за вас. Но даже если вы просто любите экспериментировать с вещами, навыки являются огромной поверхностью атаки для людей, которые живут в подвалах своих родителей и едят Cheetos. А также для серьезных талантливых хакеров, которые просто хотят воспользоваться тем, что вы построили. И поэтому возможность сканировать такие вещи невероятно ценна. Итак, в данном случае, я даже несколько удивлен. Здесь говорится, что это критическая проблема, этот репозиторий, и не устанавливайте его. Так что это интересно. Давайте попробуем разобраться, почему это так, потому что, опять же, это может быть что-то, что вы, я не знаю, обойдете и просто сделаете это в любом случае. Так что я думаю, что самая большая проблема заключается в том, что в нем много функций, которые, я имею в виду, имеют смысл, которые исполняемы, верно? Так что эта штука может выходить и использовать поиск XSS и поиск GitHub и все эти другие поисковые функции. Вы даете исполняемый доступ к этим скриптам на вашей машине. Теперь, в данном случае, есть 63 различных проблемы, которые он нашел. И для меня, я, я имею в виду, я думаю, что возможность прочитать все эти вещи и разобрать их, это как, да, вы можете это сделать, но это куча всего. И поэтому для меня, что я сделал в этом случае, это я вставил все это в Claude и попросил его описать реалистично, основываясь на дизайне вещей, каковы будут реальные ситуации атаки? Во-первых, у них есть эти вещи, где вам нужно вставить свои куки, и это, очевидно, очень, очень, очень рискованно, потому что это может дать любому злоумышленнику, который получит доступ к этим вещам, полный контроль над всем, что вы вставили, вашими сессиями в Twitter, вашими сессиями в Reddit, чем угодно, они могут получить доступ. Так что, во-вторых, что, я думаю, вероятно, кажется мне большей проблемой, это то, что вы можете просто разрешить удаленное выполнение кода через непроверенные скрипты установки и обновления. Так что в этом файле скрипта у них есть внешний скрипт установки, который вы, по сути, скачиваете и передаете прямо на свою машину. И это снова серьезная, серьезная проблема. И я чувствую, что мы видели достаточно таких компромиссов в цепочке поставок в последнее время, что даже если этот человек не был злонамеренным, это кажется очень простым способом полностью себя подставить. Итак, сказав это, хотя Seal Specter не был так связан со всеми остальными, я думаю, что это невероятно ценная вещь. И если бы мы могли заглянуть и увидеть, сколько стоило это выполнить? Я сделал несколько таких сканирований, и я использовал свои вещи OpenAI для других вещей в этом месяце. Так что это стоило мне около 5 долларов. Я делал другие сканирования на меньших репозиториях, и это стоило около 20-30 центов. И поэтому, просто для полного контекста, вот сколько стоило провести такой аудит безопасности на относительно большом, я думаю, проекте. Вот и все. Пять, я думаю, относительно новых репозиториев, о которых я действительно не слышал. Так что я думаю, они довольно крутые. Если это видео было вам полезно, обязательно подпишитесь, но на этом все. Увидимся в следующем видео.