<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenCode on БлоGнот</title>
    <link>https://blognot.co/tags/opencode/</link>
    <description>Recent content in OpenCode on БлоGнот</description>
    <generator>Hugo</generator>
    <language>ru</language>
    <lastBuildDate>Wed, 22 Apr 2026 15:22:40 +0000</lastBuildDate>
    <atom:link href="https://blognot.co/tags/opencode/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Попытка использовать OpenCode/GPT</title>
      <link>https://blognot.co/popytka-ispolzovat-opencodegpt/</link>
      <pubDate>Wed, 22 Apr 2026 15:22:40 +0000</pubDate>
      <guid>https://blognot.co/popytka-ispolzovat-opencodegpt/</guid>
      <description>&lt;p&gt;Я далеко не такой упертый пользователь Claude Code и регулярно пробую что-то новое. Потестировав Codex и убедившись, что он не дотягивает до нужного мне уровня, я решил посмотреть на, пожалуй, один из самых серьезных агентов — OpenCode. Там есть много похожего на Claude Code, что-то реализовано иначе, но тоже неплохо — в общем, почему бы не попробовать?&lt;/p&gt;&#xA;&lt;p&gt;Сначала он упал. Точнее, на любой запрос выдавал стек ошибок и останавливался. Я удалил конфиг вообще, запустил его, показал ему настройки Claude Code и предложил портировать. Он перенес часть настроек и после рестарта (а OpenCode не подгружает изменения сам) упал опять. Пришлось позвать Claude Code, который определил, что проблема в плагине Claude-mem — тот хоть и заявляет поддержку OpenCode, но не очень про нее знает. Заодно Claude Code выяснил, что никакие настройки OpenCode с GPT не перенес — он просто в конфиге сослался на файлы Claude Code, перед этим запланировав именно миграцию, а не подключение.&lt;/p&gt;&#xA;&lt;p&gt;ОК, через некоторое время работы Claude Code конфигурация была портирована и OpenCode запустился. Я предложил ему самому перенести MCP серверы и приключения продолжились — сначала он перенес только те, что были указаны в проектах, а глобальные проигнорировал. Затем он перенес глобальные и начал настаивать, что вот тут токены в конфиге, их надо ротировать обязательно, они уже скомпрометированы, и вообще указать в окружении. Я согласился перенести в окружение, он сделал — и они не заработали. Оказывается, он нафантазировал фрагмент конфига. Конфиг он поправил — все это сопровождается постоянными рестартами для переподключения, — теперь надо бы протестировать. Я даю URL для проверки Cloudflare Browser Rendering — это фактически Chrome в облаке Cloudflare. Дальше смотрите скриншоты.&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;&#xA;  &lt;figure  &gt;&#xA;    &lt;span class=&#34;lightbox&#34; data-src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qafe_hu_138d769a068ed1a6.png&#34;&gt;&#xA;      &lt;img&#xA;        src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qafe_hu_13a908773cf88bcf.png&#34;&#xA;        srcset=&#34;&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qafe_hu_781cfbffea55d0a7.webp 480w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qafe_hu_506233284c3f5257.webp 768w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qafe_hu_2a0d3ae0d5a957ba.webp 1024w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qafe_hu_1f24542eafea1f56.webp 1200w&#34;&#xA;        sizes=&#34;(max-width: 480px) 100vw, (max-width: 768px) 85vw, (max-width: 1024px) 75vw, 800px&#34;&#xA;        width=&#34;800&#34;&#xA;        height=&#34;245&#34;&#xA;        loading=&#34;lazy&#34;&#xA;        alt=&#34;Сначала он запустил локальный Chrome вместо облачного&#34;&#xA;        &#xA;      /&gt;&#xA;    &lt;/span&gt;&#xA;  &#xA;    &#xA;      &lt;figcaption class=&#34;center&#34;&#xA;        &gt;&#xA;        Сначала он запустил локальный Chrome вместо облачного&#xA;      &lt;/figcaption&gt;&#xA;    &#xA;  &lt;/figure&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;&#xA;  &lt;figure  &gt;&#xA;    &lt;span class=&#34;lightbox&#34; data-src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qapg_hu_99d77608108b4db6.png&#34;&gt;&#xA;      &lt;img&#xA;        src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qapg_hu_7d6ab83f1b701b20.png&#34;&#xA;        srcset=&#34;&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qapg_hu_9364ba2b8adaf277.webp 480w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qapg_hu_75f0263df3d043c1.webp 768w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qapg_hu_ec7d7da648cc39d3.webp 1024w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qapg_hu_f75aa55c72e80315.webp 1200w&#34;&#xA;        sizes=&#34;(max-width: 480px) 100vw, (max-width: 768px) 85vw, (max-width: 1024px) 75vw, 800px&#34;&#xA;        width=&#34;800&#34;&#xA;        height=&#34;159&#34;&#xA;        loading=&#34;lazy&#34;&#xA;        alt=&#34;Признал этот факт&#34;&#xA;        &#xA;      /&gt;&#xA;    &lt;/span&gt;&#xA;  &#xA;    &#xA;      &lt;figcaption class=&#34;center&#34;&#xA;        &gt;&#xA;        Признал этот факт&#xA;      &lt;/figcaption&gt;&#xA;    &#xA;  &lt;/figure&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;&#xA;  &lt;figure  &gt;&#xA;    &lt;span class=&#34;lightbox&#34; data-src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qast_hu_3ae1087703282a56.png&#34;&gt;&#xA;      &lt;img&#xA;        src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qast_hu_9c7fbfb1569fe5cd.png&#34;&#xA;        srcset=&#34;&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qast_hu_63032ca36b96e490.webp 480w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qast_hu_5dfa81a796cd2a8f.webp 768w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qast_hu_7af6b836b1f0d30c.webp 1024w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qast_hu_d9a981d28ee69e92.webp 1200w&#34;&#xA;        sizes=&#34;(max-width: 480px) 100vw, (max-width: 768px) 85vw, (max-width: 1024px) 75vw, 800px&#34;&#xA;        width=&#34;800&#34;&#xA;        height=&#34;843&#34;&#xA;        loading=&#34;lazy&#34;&#xA;        alt=&#34;Затем он вместо обращения к MCP пишет свой скрипт для запроса через API&#34;&#xA;        &#xA;      /&gt;&#xA;    &lt;/span&gt;&#xA;  &#xA;    &#xA;      &lt;figcaption class=&#34;center&#34;&#xA;        &gt;&#xA;        Затем он вместо обращения к MCP пишет свой скрипт для запроса через API&#xA;      &lt;/figcaption&gt;&#xA;    &#xA;  &lt;/figure&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;&#xA;  &lt;figure  &gt;&#xA;    &lt;span class=&#34;lightbox&#34; data-src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qawq_hu_683e1d6343c606b0.png&#34;&gt;&#xA;      &lt;img&#xA;        src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qawq_hu_b00fbad0db3ec63e.png&#34;&#xA;        srcset=&#34;&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qawq_hu_caa4879f05574812.webp 480w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qawq_hu_2657297c49c446fb.webp 768w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qawq_hu_37c55dee3273f040.webp 1024w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qawq_hu_4f75836bc9a42e3.webp 1200w&#34;&#xA;        sizes=&#34;(max-width: 480px) 100vw, (max-width: 768px) 85vw, (max-width: 1024px) 75vw, 800px&#34;&#xA;        width=&#34;800&#34;&#xA;        height=&#34;143&#34;&#xA;        loading=&#34;lazy&#34;&#xA;        alt=&#34;Соглашается, что неправ&#34;&#xA;        &#xA;      /&gt;&#xA;    &lt;/span&gt;&#xA;  &#xA;    &#xA;      &lt;figcaption class=&#34;center&#34;&#xA;        &gt;&#xA;        Соглашается, что неправ&#xA;      &lt;/figcaption&gt;&#xA;    &#xA;  &lt;/figure&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;&#xA;  &lt;figure  &gt;&#xA;    &lt;span class=&#34;lightbox&#34; data-src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qazt_hu_608001066e3f0638.png&#34;&gt;&#xA;      &lt;img&#xA;        src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qazt_hu_14a72b5301198708.png&#34;&#xA;        srcset=&#34;&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qazt_hu_7ed55e84a2b316a4.webp 480w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qazt_hu_e469ab335b4a2d5b.webp 768w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qazt_hu_fd298631d0fa65c.webp 1024w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qazt_hu_bb09d2b746472990.webp 1200w&#34;&#xA;        sizes=&#34;(max-width: 480px) 100vw, (max-width: 768px) 85vw, (max-width: 1024px) 75vw, 800px&#34;&#xA;        width=&#34;800&#34;&#xA;        height=&#34;153&#34;&#xA;        loading=&#34;lazy&#34;&#xA;        alt=&#34;Затем он читает свой конфиг и решает посмотреть документацию&#34;&#xA;        &#xA;      /&gt;&#xA;    &lt;/span&gt;&#xA;  &#xA;    &#xA;      &lt;figcaption class=&#34;center&#34;&#xA;        &gt;&#xA;        Затем он читает свой конфиг и решает посмотреть документацию&#xA;      &lt;/figcaption&gt;&#xA;    &#xA;  &lt;/figure&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;&#xA;  &lt;figure  &gt;&#xA;    &lt;span class=&#34;lightbox&#34; data-src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qbif_hu_8be468fb7e659aca.png&#34;&gt;&#xA;      &lt;img&#xA;        src=&#34;https://blognot.co/popytka-ispolzovat-opencodegpt/SCR-20260422-qbif_hu_cb0190034faf3849.png&#34;&#xA;        srcset=&#34;&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qbif_hu_c0c456047169fc6b.webp 480w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qbif_hu_e4ac05d74432547e.webp 768w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qbif_hu_3be84cb7a53ae305.webp 1024w,&#xA;          /popytka-ispolzovat-opencodegpt/SCR-20260422-qbif_hu_33f807e4d339ecbf.webp 1200w&#34;&#xA;        sizes=&#34;(max-width: 480px) 100vw, (max-width: 768px) 85vw, (max-width: 1024px) 75vw, 800px&#34;&#xA;        width=&#34;800&#34;&#xA;        height=&#34;436&#34;&#xA;        loading=&#34;lazy&#34;&#xA;        alt=&#34;В итоге он читает страницу простым fetch вместо MCP&#34;&#xA;        &#xA;      /&gt;&#xA;    &lt;/span&gt;&#xA;  &#xA;    &#xA;      &lt;figcaption class=&#34;center&#34;&#xA;        &gt;&#xA;        В итоге он читает страницу простым fetch вместо MCP&#xA;      &lt;/figcaption&gt;&#xA;    &#xA;  &lt;/figure&gt;&#xA;&#xA;&#xA;&lt;p&gt;В сухом остатке — он попробовал практически способы прочитать веб-страницу, кроме того единственного, который тестировался. Ну, я не знаю, что можно сказать по поводу веселого розыгрыша, что эта модель хорошо следует инструкциям.&lt;/p&gt;&#xA;&lt;p&gt;Даже не сомневаюсь, что мне объяснят, что я не умею использовать AI. Можно начинать.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
