{"id":4852,"date":"2026-11-13T17:45:32","date_gmt":"2026-11-13T16:45:32","guid":{"rendered":"https:\/\/msalamon.pl\/?p=4852"},"modified":"2026-11-13T17:51:18","modified_gmt":"2026-11-13T16:51:18","slug":"ulanzi-vibekey-review-claude-code","status":"publish","type":"post","link":"https:\/\/msalamon.pl\/en\/ulanzi-vibekey-review-claude-code\/","title":{"rendered":"Do we still need a keyboard? Testing the Ulanzi VibeKey with Claude Code"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Do we still need a keyboard? Testing the Ulanzi VibeKey with Claude Code<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">AI is storming every field. Programming, engineering, basically every area of life. I&#8217;m a big fan of dictation: I&#8217;ve tested it and I love simply talking to my computer instead of hammering the keys. And when you work with AI agents, you basically do three things: you tell the agent what to do, and you accept or reject what it does. <strong>So why would we still need a huge keyboard with all those keys?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exactly. Somebody asked themselves that question, and the memes turned into a real device: the Ulanzi VibeKey. Three keys, a knob and a microphone. I bought it with my own money, unboxed it, plugged it into my laptop and checked what it can do in Windows and in Claude Code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This article is the text version of my video. If you&#8217;d rather watch, it&#8217;s all here (in Polish):<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"M\u00f3w, akceptuj, odrzu\u0107. Sprawdzi\u0142em Ulanzi VibeKey z Claude Code\" width=\"750\" height=\"422\" src=\"https:\/\/www.youtube.com\/embed\/ECgCRRqbPxQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">It all started with a meme<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Somebody made a keyboard and called it VibeKey, after vibe coding, meaning programming not even with AI&#8217;s help anymore, but by handing AI the job of writing all the software. Renders were going around X with three buttons: Allow once, Allow always and Reject. An orange space invader with the Anthropic logo and a dictation key got almost 800 thousand views. None of them existed, they were all generated by AI \ud83d\ude09<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">just picked up this bad boy. can&#39;t wait to write some software with it <a href=\"https:\/\/t.co\/s2e3xEsUlR\">pic.twitter.com\/s2e3xEsUlR<\/a><\/p>&mdash; matt rothenberg (@mattrothenberg) <a href=\"https:\/\/x.com\/mattrothenberg\/status\/2031383560062370235?ref_src=twsrc%5Etfw\">March 10, 2026<\/a><\/blockquote><script async src=\"https:\/\/platform.x.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">it&#39;s time <a href=\"https:\/\/x.com\/claudeai?ref_src=twsrc%5Etfw\">@claudeai<\/a> <a href=\"https:\/\/t.co\/64HtPk5bKE\">pic.twitter.com\/64HtPk5bKE<\/a><\/p>&mdash; Salma (@Salmaaboukarr) <a href=\"https:\/\/x.com\/Salmaaboukarr\/status\/2038041934007095360?ref_src=twsrc%5Etfw\">March 28, 2026<\/a><\/blockquote><script async src=\"https:\/\/platform.x.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then real devices showed up: the open source <a href=\"https:\/\/vibekeys.dev\/\" target=\"_blank\" rel=\"noopener\">VibeKeys<\/a>, CtrlVibe and CodingWand on Kickstarter, and even the official Codex Micro from OpenAI. And I was surprised to see Ulanzi join the game. It&#8217;s a company that usually makes photography accessories, and lately it has moved into computer accessories, e.g. Elgato alternatives. Their <a href=\"https:\/\/www.ulanzi.com\/collections\/creator-desk\/products\/au05-vibe-key-ai-voice-input-keypad-i018\" target=\"_blank\" rel=\"noopener\">VibeKey (model AU05)<\/a> came out, I believe, in September 2026. I didn&#8217;t think twice, I just bought it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unboxing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The box looks quite elegant. I deliberately didn&#8217;t open it, I waited for the recording. Inside: the keypad in foil, a cable, a dongle and a short manual. I put the manual aside, because a real man doesn&#8217;t need to read the manual \ud83d\ude09 Seriously though, I had read up on it a bit earlier and knew that an app is needed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/01-vibekey-w-dloni.jpg\" alt=\"Ulanzi VibeKey: dictation, accept and reject buttons, with the knob below them\" class=\"wp-image-4840\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/01-vibekey-w-dloni.jpg 1600w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/01-vibekey-w-dloni-300x169.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/01-vibekey-w-dloni-1024x576.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/01-vibekey-w-dloni-768x432.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/01-vibekey-w-dloni-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">Ulanzi VibeKey: dictation, accept and reject buttons, with the knob below them<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So what do we have here? The casing feels like aluminium: it&#8217;s cold to the touch, and for such a small product the keypad is quite heavy. On the front there are three buttons: dictation, accept and reject. The key travel is so-so, it&#8217;s probably a cheap membrane keyboard. Below them there&#8217;s an encoder, i.e. a knob, probably for scrolling up and down in the chat. And interestingly, it can be pressed too. On top of that, a power switch on the side, a grille with the microphone and a wrist strap. The strap doesn&#8217;t go around your hand, so I have no idea what it&#8217;s for. Probably just for holding it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The keypad has a battery and connects to the computer through a tiny USB-C dongle, which is nice. Is it Bluetooth? Nobody knows. There&#8217;s nothing about it on the box, and the app doesn&#8217;t say a word about Bluetooth either, so it&#8217;s probably some other radio. The cable has a soft fabric braid and is about a metre long. It doesn&#8217;t have all the USB-C pins inside, though, so it won&#8217;t do for any kind of fast charging.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"1000\" src=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/02-dongiel-usb-c.jpg\" alt=\"The USB-C dongle the VibeKey uses to connect to the computer\" class=\"wp-image-4841\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/02-dongiel-usb-c.jpg 1500w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/02-dongiel-usb-c-300x200.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/02-dongiel-usb-c-1024x683.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/02-dongiel-usb-c-768x512.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/02-dongiel-usb-c-360x240.jpg 360w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><figcaption class=\"wp-element-caption\">The USB-C dongle the VibeKey uses to connect to the computer<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Out of the box it works right away<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I thought I wouldn&#8217;t be able to do anything without the Ulanzi app. Surprise: I plug in the dongle, hold the power button, everything pairs and it works right away:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the dictation button is the Win+H shortcut, i.e. the dictation built into Windows,<\/li>\n\n\n\n<li>accept is Enter,<\/li>\n\n\n\n<li>reject is Escape,<\/li>\n\n\n\n<li>the knob scrolls,<\/li>\n\n\n\n<li>pressing the knob is Backspace.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">On top of that, the system sees it as a regular USB microphone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Windows dictation itself is worse. It only works when you have an active window. If the window loses focus, the text is gone: it&#8217;s not in the clipboard, and Win+V is empty too. I asked it for an Enter in several ways and it didn&#8217;t insert a single one. And at some point it stopped processing anything at all. Windows dictation has plenty of fans, but for me the frustration that something doesn&#8217;t work, or that something didn&#8217;t land in the window, outweighed any actual use. I gave up on it very quickly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What I dictate with: Wispr Flow<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every day I use Wispr Flow. It&#8217;s an app based on AI models: you send the audio, it transcribes it and corrects the way you speak on the fly. It doesn&#8217;t type as you go, like Windows dictation does, it pastes everything at once when you release the button.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/03-wispr-flow-statystyki.jpg\" alt=\"My Wispr Flow statistics: about 150 words per minute, almost 150 thousand words dictated\" class=\"wp-image-4842\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/03-wispr-flow-statystyki.jpg 1600w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/03-wispr-flow-statystyki-300x169.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/03-wispr-flow-statystyki-1024x576.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/03-wispr-flow-statystyki-768x432.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/03-wispr-flow-statystyki-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">My Wispr Flow statistics: about 150 words per minute, almost 150 thousand words dictated<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve dictated almost 150 thousand words in it. I dictate about 150 words per minute, while we type about 50 on a keyboard. <strong>When you speak, you pass on much more, in much more detail, than when you type.<\/strong> That&#8217;s exactly what I use it for when describing tasks for agents, because those descriptions are simply richer. I write emails and social media posts this way too. There are only single days when I don&#8217;t use it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I talk to agents in Polish, because it&#8217;s more comfortable for me. I don&#8217;t really care whether it burns 10% more tokens or less. In Polish I simply explain the task better and understand better what the agent is doing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What else does it handle? It has fixed my word order more than once, because when you get on a roll, you say whatever comes to mind. If you say &#8220;no, wait, let&#8217;s change that&#8221; mid-sentence, it adjusts the text, so while dictating you&#8217;re giving it commands a little. You can also set up a dictionary: you say &#8220;account number&#8221;, and it pastes your bank transfer details.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And to be fair: in the recording I wanted to show that it works brilliantly, and I said too much. It didn&#8217;t paste the Enters, even though on my previous computer everything worked fine, of course. The commas and full stops were in place, though, so it still works way better than Win+H.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The free version gives you 2000 words a week, and that was enough for me for the first few weeks, just to get going. Then I bought premium. If you want to try it, you can use my link: <a href=\"https:\/\/wisprflow.ai\/r?MATEUSZ821\" target=\"_blank\" rel=\"noopener\">wisprflow.ai\/r?MATEUSZ821<\/a>. It&#8217;s an affiliate link: when you sign up through it and dictate over 2000 words, I get one more month of premium. You don&#8217;t pay anything, and you support me this way \ud83d\udc4c<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ulanzi Studio<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For mapping the buttons there&#8217;s the <a href=\"https:\/\/www.ulanzi.com\/pages\/downloads\" target=\"_blank\" rel=\"noopener\">Ulanzi Studio<\/a> app. During installation it immediately updated the firmware of both the keypad and the dongle. It looks very similar to Elgato&#8217;s software, which I use at my desk. Here you can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>set the sleep time, backlight brightness and noise reduction (I like that one),<\/li>\n\n\n\n<li>assign profiles to apps, so the keys do different things depending on what&#8217;s in the foreground,<\/li>\n\n\n\n<li>install plugins from the marketplace,<\/li>\n\n\n\n<li>control several devices from one keypad.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This studio isn&#8217;t that dumb after all.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/04-ulanzi-studio.jpg\" alt=\"Ulanzi Studio: assigning a shortcut to the dictation key\" class=\"wp-image-4843\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/04-ulanzi-studio.jpg 1600w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/04-ulanzi-studio-300x169.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/04-ulanzi-studio-1024x576.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/04-ulanzi-studio-768x432.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/04-ulanzi-studio-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">Ulanzi Studio: assigning a shortcut to the dictation key<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Except I have dictation set up under Ctrl+Win and I wanted to set the same in Ulanzi. And? No way. With two modifiers the app waits for a third, regular key. That&#8217;s bad, really bad. In the end I changed the shortcut in Wispr Flow to Ctrl+Win+Z and set the same one in Ulanzi. It works, but it&#8217;s a workaround.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s also a problem with profiles: the VibeKey has no display at all. It won&#8217;t tell you which profile it&#8217;s in, so you don&#8217;t know what the keys are doing right now.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Test in Claude Code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">So let&#8217;s fire up Claude Code in the terminal, because that&#8217;s what this keypad is for after all. Through Wispr Flow I dictated a task: &#8220;prepare a few messages for me so I can test all the buttons&#8221;. The text came in very accurately, Wispr Flow got it right, Claude Code got it right too. (Claude or Cloud? You&#8217;ll roast me for it in the comments ;))<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enter works, Escape works. The test itself went, let&#8217;s say, so-so. When Claude Code gives you several options to choose from, you move between them with the up and down arrows. And the VibeKey knob doesn&#8217;t send arrows, it scrolls the screen. When Claude lists points 1, 2, 3 for me, I can&#8217;t switch between them. It was supposed to replace the keyboard completely, and there are no up and down buttons.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/05-claude-code-opcje.jpg\" alt=\"Claude Code asks you to pick an option, and you need arrow keys for that\" class=\"wp-image-4844\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/05-claude-code-opcje.jpg 1600w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/05-claude-code-opcje-300x169.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/05-claude-code-opcje-1024x576.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/05-claude-code-opcje-768x432.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/05-claude-code-opcje-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">Claude Code asks you to pick an option, and you need arrow keys for that<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Let&#8217;s let Claude show what it can do<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Since it&#8217;s a keypad for working with an agent, I asked the agent to configure it. We only have 4 buttons and one knob, we can change profiles and mappings, so look through what&#8217;s possible and try to sort something out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You know what it did? I thought it would research what to set in Ulanzi Studio. Instead it simply started digging through files on Windows and changing them live. It read the keypad&#8217;s configuration, added shortcuts to its own key bindings file and told me to restart Claude Code. I wanted to do it through Ulanzi Studio, but that rascal Claude figured out a different way.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/06-claude-zmienia-konfiguracje.jpg\" alt=\"Claude describes what it changed in the configuration and suggests more workarounds\" class=\"wp-image-4845\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/06-claude-zmienia-konfiguracje.jpg 1600w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/06-claude-zmienia-konfiguracje-300x169.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/06-claude-zmienia-konfiguracje-1024x576.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/06-claude-zmienia-konfiguracje-768x432.jpg 768w, https:\/\/msalamon.pl\/wp-content\/uploads\/2026\/11\/06-claude-zmienia-konfiguracje-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\">Claude describes what it changed in the configuration and suggests more workarounds<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">No luck. After the restart the knob still scrolled the screen, and jumping between options didn&#8217;t work. Claude didn&#8217;t give up and suggested two more options. First: set arrows on the knob in Ulanzi Studio instead of scrolling. Except then I can&#8217;t scroll through what the agent wrote, and I read its reports all the time, because they&#8217;re quite long. Second: pick options with a number. Great, except this keypad has no number keys \ud83d\ude09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s also a lesson here about working with an agent: in auto mode it can reach deeper into your system than you expect. I talk more about how I handle that in the video about <a href=\"https:\/\/youtu.be\/deAV4LyvqvI\" target=\"_blank\" rel=\"noopener\">my setup for working with an AI agent<\/a> (in Polish).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">My thoughts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A fun gadget. Is it necessary? In my opinion, not really. It&#8217;s more of a trend. A great gadget, but more as a meme, more as a toy. I don&#8217;t know what I&#8217;d use it for every day. And it cost about 60 dollars, so for a not very useful gadget that&#8217;s quite a lot. Being the crazy person I am, I bought it straight away to test it \ud83d\ude09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What am I missing? The way I see it, it would need <strong>two more buttons<\/strong> for up and down arrows. The first vibe keyboards actually had them. The second thing is <strong>visual feedback about which profile you&#8217;re in<\/strong>: a display, three LEDs or RGB backlighting that tells you by colour how the keys are currently mapped.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What I use instead<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Because our computers have microphones, and we don&#8217;t need this kind of tool. When I work on my laptop, I have it in front of me along with the Ctrl+Win shortcut I set up. The microphone is above the webcam. I get the same result without any extra device. In the office, at my desktop computer, I have a microphone next to me all the time, because I record online courses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At home the laptop sits closed in the docking station, and the microphone hears me as if I were sitting in a jar. I found a workaround: I have a lavalier microphone (Boya BY-M1, about 50 PLN) plugged into the docking station. The cable runs around the desk, and the microphone sits between the books, close to my mouth. I don&#8217;t have to reach for another device and dictate into its microphone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For everyday work with dictated text, in Windows or with AI agents, a microphone and a keyboard shortcut are 100% enough. That&#8217;s how I do it every day. Will the VibeKey be useful for you? You&#8217;ll have to judge that yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>And do you already use voice input?<\/strong> Let me know in the comments whether you see a use for something like this.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">More about working with AI agents<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On the &#8220;AI w Embedded&#8221; list I write about what I&#8217;ve tested with AI agents on STM32 and where I fell flat on my face (in Polish). Sign up: <a href=\"https:\/\/aiwembedded.pl\" target=\"_blank\" rel=\"noopener\">aiwembedded.pl<\/a>. We can also chat on the <a href=\"https:\/\/linki.msalamon.pl\/ai_embedded\" target=\"_blank\" rel=\"noopener\">\u201eAI w Embedded\u201d Discord<\/a> (in Polish).<\/p>\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;4852&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;Do we still need a keyboard? Testing the Ulanzi VibeKey with Claude Code&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>When you work with an AI agent, you basically just talk, accept and reject. I tested the Ulanzi VibeKey, a 3-button keypad, in Windows and in Claude Code.<\/p>\n","protected":false},"author":1,"featured_media":4863,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[200],"tags":[],"class_list":["post-4852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-in-embedded"],"_links":{"self":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4852","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=4852"}],"version-history":[{"count":2,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4852\/revisions"}],"predecessor-version":[{"id":4854,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4852\/revisions\/4854"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media\/4863"}],"wp:attachment":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media?parent=4852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/categories?post=4852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/tags?post=4852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}