{"id":4808,"date":"2026-10-03T14:00:00","date_gmt":"2026-10-03T12:00:00","guid":{"rendered":"https:\/\/msalamon.pl\/?p=4808"},"modified":"2026-11-04T15:40:28","modified_gmt":"2026-11-04T14:40:28","slug":"claude-code-in-embedded-six-months-later","status":"publish","type":"post","link":"https:\/\/msalamon.pl\/en\/claude-code-in-embedded-six-months-later\/","title":{"rendered":"Claude Code in embedded six months later: what aged badly?"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Claude Code in embedded six months later: what aged badly and what didn&#8217;t<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In April I tested Claude Code in embedded live: I sat it down next to Codex in front of the new <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/stm32-nucleo-c562re-nucleo-64-z-stm32c562ret6-arm-cortex-m33\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ai_w_embedded&amp;utm_content=Text\">NUCLEO-C562RE<\/a> board, gave them a <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/bme280-czujnik-cisnienia-srodowiskowy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ai_w_embedded&amp;utm_content=Text\">BMP280<\/a> sensor, the brand-new HAL2 and very general instructions. Claude Code hit its usage limit halfway through. Codex finished the simplest version, and after two hours temperature and pressure were streaming to the terminal, but it also burned through almost its entire limit. I described it in my May article and closed with the sentence that AI is a great assistant, but not yet a replacement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">More than five months have passed since that live stream. Today half of that article is out of date. And that is what this article is about: <strong>statements about AI become outdated faster than anything I know from embedded<\/strong>. Mine included.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">It wasn&#8217;t my first attempt<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let me start here, because some people treat that live stream as my first contact with AI. What you see in public is not everything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I have been working with AI for a long time, programming included. I have been programming STM32 and other microcontrollers with its help for quite a while. In March 2025 I gave a talk at a meetup titled \u201cHow AI lets me program things I have no idea about\u201d. And back then I really wasn&#8217;t fully happy with how GPT or Claude handled embedded in chat form.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Literally while I was preparing that talk, Claude Code was announced. It was a novelty, and today, from what I see, it is the most important AI agent!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My claims that LLMs handle embedded only so-so were not made up. Nor did they come from fear for my programming course sales (because that&#8217;s the easiest thing to accuse me of ;)). <strong>They came from practice and programming experience.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So during the April live I wasn&#8217;t a sceptic looking for proof. The setup was simple: <strong>complete freedom for the agent and a minimal prompt written on the fly<\/strong>. Total free rein, no guidance at all. I wanted to see whether the agent would really do the job for me, as commenters under my ads claimed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I had been working with chat for a long time, but <strong>I was only starting out with agents, and I said so openly on the live<\/strong>. Whoever uses my words from that stream today probably didn&#8217;t watch it very carefully \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And what came out of that free rein worried me. An agent that got no project, just a single instruction, did whatever it thought was right.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What aged: models and cost<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Since the model I was using back then, Anthropic has released four more Opus models: 4.7 still in April, 4.8 in May, Opus 5 in July and Opus 5.5 in September. On the other side, GPT-6 Sol appeared on 22 September, and on 29 September it was replaced by 6.1 Sol. <strong>That model lived for just one week!<\/strong> How are you supposed to record anything about AI when it changes this fast? \ud83d\ude05<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anthropic and OpenAI are really fighting hard for dominance. They release newer and newer models at shorter and shorter intervals, and their capabilities grow exponentially. This is measured by <a href=\"https:\/\/metr.org\/time-horizons\/\" target=\"_blank\" rel=\"noopener\">METR<\/a>, an independent organisation that studies what models can do on their own. It checks how long a programming task a model can complete in half of its attempts, with length measured as the time an experienced human would need for it. According to its <a href=\"https:\/\/metr.org\/blog\/2026-1-29-time-horizon-1-1\/\" target=\"_blank\" rel=\"noopener\">January measurements<\/a>, that length <strong>doubles roughly every four months<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The human brain struggles with that kind of progress. We think linearly: if it was weak six months ago, today it&#8217;s a bit less weak. It isn&#8217;t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s why I&#8217;m not repeating that experiment. The result would be outdated before I managed to write it up. Pointless.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A few numbers, all as of 2 October 2026:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Opus 5.5 costs 4 and 20 dollars per million tokens in the API. All previous models since 4.6 cost 5 and 25. A little cheaper.<\/li>\n\n\n\n<li>With the <a href=\"https:\/\/www.anthropic.com\/news\/claude-opus-5-5\" target=\"_blank\" rel=\"noopener\">release of 5.5<\/a>, Anthropic raised the 5-hour limits in its plans and said a typical task comes out about 40% cheaper than on Opus 5. We regularly get more for less.<\/li>\n\n\n\n<li>The independent <a href=\"https:\/\/artificialanalysis.ai\/articles\/claude-opus-5-5\" target=\"_blank\" rel=\"noopener\">Artificial Analysis measured<\/a> that at maximum effort Opus 5.5 uses 1.6 times more output tokens per task than Opus 5, so the cost per task ends up similar.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The two cost figures come from the same week and say different things, because they refer to different settings. Maximum effort is not a mode for everyday work, and that&#8217;s exactly how I worked in April: Opus 4.6 on xhigh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I don&#8217;t follow every piece of news myself, and I don&#8217;t intend to. So I simplified model choice for myself: <strong>I use the newest one, at default effort<\/strong>. For a specific task I move it one notch up or down at most. That&#8217;s it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What it means for programming: Terminal-Bench<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Price alone says little, so let me describe one benchmark in more detail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/arxiv.org\/abs\/2601.11868\" target=\"_blank\" rel=\"noopener\">Terminal-Bench<\/a> is an open benchmark developed by the community and the Harbor team. The agent gets a terminal in a container and a task to complete end to end: compile, configure, fix, run. It doesn&#8217;t write a single function, it has to deliver a working result. When it&#8217;s done, a separate script checks the final state. A task only counts as passed if all tests pass. There is no partial credit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When I did the live stream, version 2.0 with 89 tasks was current. According to results published by Anthropic, Opus 4.6 scored about 65% on it, and Opus 4.7, released just before the live, about 69% (<a href=\"https:\/\/benchlm.ai\/benchmarks\/terminal-bench-2\" target=\"_blank\" rel=\"noopener\">overview<\/a>). On the revised version 2.1, Opus 4.8 reached 79% in May and GPT-5.5 83% (<a href=\"https:\/\/snorkel.ai\/leaderboard\/terminal-bench-2-1\/\" target=\"_blank\" rel=\"noopener\">leaderboard<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The benchmark stopped telling models apart, so version 4.0 was created: 66 completely new tasks from programming, science, machine learning, hardware and security. Half of them take an expert at least four hours, the longest ones 60 hours. The agent gets eight hours for each.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the <a href=\"https:\/\/www.vals.ai\/benchmarks\/terminal-bench-4\" target=\"_blank\" rel=\"noopener\">independent measurement by Vals AI<\/a>, where every model gets the same simple agent with just a terminal, the version 4.0 results are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Opus 4.8 (May): 23%<\/li>\n\n\n\n<li>Opus 5 (July): 54%<\/li>\n\n\n\n<li>Opus 5.5 (September): 65%<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nobody measured older Opus models on this version anymore. Anthropic&#8217;s own figures for the last two are 52% and 66%.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What follows from this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>This benchmark doesn&#8217;t check whether a model can write a function.<\/strong> It checks whether it can deliver a multi-hour task on its own to a \u201cworks\u201d state. The May model did that in one case out of four. The September model in two out of three.<\/li>\n\n\n\n<li><strong>The jump from 23% to 65% took four months.<\/strong> That&#8217;s the exponential progress we don&#8217;t feel.<\/li>\n\n\n\n<li><strong>One task in three still ends in failure<\/strong>, and the agent doesn&#8217;t always know it. Someone has to be able to tell which one it was.<\/li>\n\n\n\n<li><strong>This is not embedded.<\/strong> Out of 66 tasks, five are about hardware, and those are CAD models and RTL designs. There&#8217;s no microcontroller firmware there. The container has no board, no sensor and no oscilloscope.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So there are still no benchmarks for embedded. Anthropic itself writes that at this level, differences in benchmarks reflect differences in real work less and less.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And how does it look for me? The Pro plan stopped being enough, simply because I started working with agents a lot. I moved to Max 5x, and that&#8217;s a really big plan. I&#8217;ve hit the weekly limit once so far. I rarely exhaust the five-hour one. <strong>The statement \u201ca plan is one hour of work\u201d is not true today<\/strong>, but I believe you can still burn through that limit in an hour.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What didn&#8217;t age<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The agent fills gaps with guesses. On the live, Claude decided a pin was an output based on nothing but the variable name. I&#8217;ve also received DMA registers from a different STM32. I haven&#8217;t seen this problem for a while, but I&#8217;m far from saying it&#8217;s gone. Since then I also provide better input documentation before we write a single line of code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The cause was the same every time: <strong>an incomplete set of data<\/strong>. If the agent doesn&#8217;t know which chip it is working on, it will make one up. So I don&#8217;t count on the next model to stop guessing. I&#8217;d rather not give it a reason to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What also hasn&#8217;t changed is that you need to know your stuff. More on that at the end.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Good input is the whole job<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After that live I started looking for a way of working that suits me and gives satisfying results. A few months later the results are miles better, and I don&#8217;t owe that mainly to new models.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Input is king.<\/strong> It has the biggest influence on how the project gets planned and written. So I spend most of my time on preparing the project before the first line of code exists:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>functionality,<\/li>\n\n\n\n<li>components,<\/li>\n\n\n\n<li>initial architecture,<\/li>\n\n\n\n<li>frameworks and libraries,<\/li>\n\n\n\n<li>documentation for the components.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">One pass is not enough. It&#8217;s worth doing a few iterations: we create a plan, then review it and improve it. It&#8217;s good to pass the plan between two models from different vendors, e.g. OpenAI and Claude, or even between a weaker and a stronger Claude.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One thing matters: <strong>the review always happens in a new session<\/strong>. The model that wrote the plan has its whole train of thought that led to it in context, and it will defend it. A fresh session sees only the plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A few weeks ago I used up all of my Claude three days before the reset, jumped over to GPT-5.6 Sol, and it approaches writing and research completely differently. I really like how they complement each other, but out of laziness I often stick to Claude alone \ud83d\ude05 I switch between Sonnet and Opus depending on what they need to do.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s also why agentic work changes so much compared to chat. The agent sits in the repository, reads the project and compiles on its own. You can prepare a project for it, not just ask it a question.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From all of this I build extensive documentation. Well, not me \u2013 the agent \ud83d\ude42 Markdown files are the foundation. Not only the project description \u2013 I also provide how it should write. Stylistically, for one. I teach it that on my older projects. If you don&#8217;t have any projects, just rely on its intuition at first.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We also document feature implementation. We don&#8217;t write off the cuff \u2013 there&#8217;s a feature plan, an implementation plan, a test plan and conditions for closing the implementation. I do everything in the same repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Right now more than one agent works on a project of mine \u2013 in fact I staff the repository with different roles. The repository is of course version-controlled with git, to keep things in order.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">My testing ground \u2013 my company<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In my company I run a so-called Second Brain \u2013 a knowledge base about what we want to achieve and what our assumptions are, in a nutshell. All projects come out of it. For example, I&#8217;m building an analytics application. Several agents write it in parallel, and another one reviews their work in a loop. For an ERP system that had no API at all, we built both an API and our own MCP server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My team (the human one, not the AI one) writes its own skills tailored to what they actually need at work. Every ~3 weeks we sit down together and learn AI. We share what we know about how we use it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In embedded, the agent learns my code style from my own repository and writes the way I do. I&#8217;m also testing how to run several agents well on STM32 when there&#8217;s only one board on the desk. And right now I&#8217;m testing something I&#8217;ll write about separately: an agent that looks into the board by itself, through GDB and through a camera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>None of these things worked from day one.<\/strong> Each took weeks of tweaking. I can&#8217;t count how many times I wanted to give up because AI didn&#8217;t do everything the way I wanted. Today it does it much better, and I want to teach you how to get there too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AI is terribly polarising on the Internet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lately I&#8217;ve been raising the topic of AI and sharing my observations, what I do, and commenting on the AI world from an embedded point of view.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I know that various \u201cinternet AI experts\u201d are running marketing campaigns today based on what I commented on many months ago. That something was weak. <strong>Yes, back then it was weak.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Just be careful, because your advice, methods and tests from today will also be weak in six months. And then I&#8217;ll be the one running campaigns on your outdated statements \ud83d\ude42<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A senior for your turbo-junior<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One thing I keep saying: to make good use of AI and agents in programming (especially professional programming), you have to know programming.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sure, you&#8217;ll get results without that too. But the full potential and support go to whoever is <strong>a senior for their turbo-junior<\/strong>. If you know which chip is on your board, you&#8217;ll notice when the agent has just invented a different one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Models will change a few more times before this text gets old. So will the numbers in this article. The method will stay: <strong>good input, a plan checked in a fresh session, and a human who knows what they&#8217;re reading<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Talking to my wonderful students, I also know there is still an appetite for gaining knowledge on your own. I&#8217;m glad that many people still want to be able to do things themselves. Without our own knowledge we can&#8217;t verify what we do with AI. We won&#8217;t check the technical nuances, and at the end of the day <strong>it&#8217;s the human who bears full responsibility<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Want to see how I do it?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m putting it together in an email series (in Polish). After signing up you&#8217;ll get:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>My setup that works for me today<\/li>\n\n\n\n<li>How to teach an agent to write the way you do?<\/li>\n\n\n\n<li>Good input is the whole job<\/li>\n\n\n\n<li>AI Software House \u2013 five agents, one project<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sign up: <a href=\"https:\/\/aiwembedded.pl\" target=\"_blank\" rel=\"noopener\">https:\/\/aiwembedded.pl<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Want to learn working with agents in embedded from me and stay up to date? I&#8217;m planning a project. The mailing list will hear about it first \ud83d\udc4c<\/p>\n\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;4808&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;0&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Claude Code in embedded six months later: what aged badly?&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Claude Code in embedded six months later: what aged badly and what didn&#8217;t In April I tested Claude Code in embedded live: I sat it down next to Codex in front of the new NUCLEO-C562RE board, gave them a BMP280 sensor, the brand-new HAL2 and very general instructions. Claude Code [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4793,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[160],"tags":[],"class_list":["post-4808","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-stm32"],"_links":{"self":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/comments?post=4808"}],"version-history":[{"count":1,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4808\/revisions"}],"predecessor-version":[{"id":4811,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4808\/revisions\/4811"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media\/4793"}],"wp:attachment":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media?parent=4808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/categories?post=4808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/tags?post=4808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}