<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hands-On AI Tools]]></title><description><![CDATA[Hands-On AI Tools]]></description><link>https://handsonaitools.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6aeed97f4e2c7d6c4c3fce2e/1f8e7505-8431-4ba9-b0e1-0267548b347f.png</url><title>Hands-On AI Tools</title><link>https://handsonaitools.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 07:50:04 GMT</lastBuildDate><atom:link href="https://handsonaitools.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Gamma 5 Free Plan Review: I Turned One of My Articles Into a 10-Slide Deck]]></title><description><![CDATA[A real write-up pasted into Gamma 5 on the free plan, every slide checked against the source]]></description><link>https://handsonaitools.hashnode.dev/gamma-5-free-plan-review-i-turned-one-of-my-articles-into-a-10-slide-deck</link><guid isPermaLink="true">https://handsonaitools.hashnode.dev/gamma-5-free-plan-review-i-turned-one-of-my-articles-into-a-10-slide-deck</guid><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[presentations]]></category><category><![CDATA[#ai-tools]]></category><category><![CDATA[review]]></category><dc:creator><![CDATA[Hands-On AI Tools]]></dc:creator><pubDate>Wed, 11 Nov 2026 08:18:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aeed97f4e2c7d6c4c3fce2e/4c4aba5d-9f60-45de-9faa-7fa5017b7fbb.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Key takeaways</strong></p>
<ul>
<li>From pasted article to a finished 10-slide deck took about two and a half minutes in English, including one error that a page refresh fixed, and about three minutes in Chinese.</li>
<li>The results table came through with every number right in both languages. Elsewhere the agent added claims my article never made, such as "22x faster", and then told me it had added nothing.</li>
<li>Asking the agent to fix one slide worked: it changed only that slide, in under a minute, and showed the original and the edit side by side.</li>
<li>On the free plan a deck cost me about 130 to 140 of the 400 signup credits, Gamma stops at 10 slides per prompt, and every exported slide carries a "Made with Gamma" badge.</li>
</ul>
<blockquote>
<p><strong>Tested on:</strong> Gamma 5 on the free plan, Standard effort, November 3, 2026, in Chrome on Windows 11. The PPTX export was opened in Microsoft PowerPoint.</p>
</blockquote>
<p><em>Disclosure: the Gamma link in this post is an affiliate link. If you buy a paid Gamma plan through it, I may earn a commission at no extra cost to you.</em></p>
<p>I wanted to know whether <a href="https://try.gamma.app/gaf0ch22wg0s">Gamma</a> could turn something I had already written into slides I would actually present, without me rewriting it first. So I gave it a real document: my <a href="https://handsonaitools.com/posts/elevenlabs-free-vs-qwen3-tts-chinese/">ElevenLabs vs Qwen3-TTS test</a>, with its methods, its seven-version results table and its caveats. Then I read every slide against the original.</p>
<p>I used a new account on the free plan. When I logged in, Gamma opened with an announcement for Gamma 5, which it calls its biggest update so far: an agent you chat with now plans, writes and designs the whole thing.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/gamma5-welcome.webp" alt="Gamma 5 announcement shown at first login" /></p>
<h2>What I gave it</h2>
<p>The home screen asks "What should we create together?" and offers Presentation, Document, Carousel, Image, Beautify and Import. A balance in the top corner showed 400 credits. Next to the prompt box is an effort setting with three levels: Lite, Standard and Max, where Max needs the Pro plan and more effort uses more credits. I left it on Standard.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/home.webp" alt="Gamma home screen with the prompt box and the 400-credit balance" /></p>
<p>I picked Presentation and pasted the article, about 4 KB of text with my instructions at the top: ten slides, keep every number and conclusion, add no facts that are not in the article, and give the results table its own slide. Gamma turned the long paste into an attachment called "Pasted text", so I added one line in the box itself: "Make a 10-slide presentation from the attached article. Keep all numbers as written."</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/paste.webp" alt="The pasted article as an attachment, with the one-line instruction underneath" /></p>
<h2>The first try failed, the refresh worked</h2>
<p>Sending it gave me a cat with a magnifying glass and "Couldn't open chat. Refresh the page to try again."</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/error.webp" alt="Error after the first submit: Couldn't open chat" /></p>
<p>After a refresh the job was already running. The agent named the deck "ElevenLabs vs local TTS deck", showed "Creating Plan" and then "Creating your gamma".</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/creating.webp" alt="After the refresh: the agent creating a plan" /></p>
<p>Before it finished, it posted a note saying the first draft was done and it was going over it again, because a few lines were smaller than the text around them, one title didn't match the others and one panel sat off the margin. Then it reported that the deck was ready, that it had kept every number and conclusion as written, and that the results table was on slide 6. From pressing send to that message took about two and a half minutes, refresh included.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/ready.webp" alt="The finished deck with the agent's summary on the left" /></p>
<h2>Checking the slides against the article</h2>
<p>The style it chose is called Freeform: heavy black headlines, a decorative selection box with corner handles around the title, a cursor icon, a barcode, and glossy AI images of a blue glass microphone and yellow glass spheres. Every slide also repeats the full article title in tiny spaced capitals at the top, which looks odd at that length.</p>
<p>The results table is the slide I expected to break, and it was perfect. Every cell matched my table, and it highlighted the "Most natural" ranking and the preset voice's misread English name.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/slide-06.webp" alt="Slide 6, the results table, with every number matching the article" /></p>
<p>Slide 8 was wrong in two ways. It put the 176 to 184 seconds per take under the cloned voice, when that figure belongs to the preset voice; the clone's figure is 3 to 6 seconds of computing per second of speech. It also ended with "Cloud synthesis delivered 22x faster turnaround than the 14-core Intel laptop CPU". My article contains neither "22x" nor "14-core". The second is true of that processor, and the first is arithmetic the agent did on its own, but I had asked for no added facts, and the summary told me it had kept to the article.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/slide-08-before.webp" alt="Slide 8 before the fix, with the misplaced timing and the added " /></p>
<p>Slide 7 had a layout problem: the three boxes on the right run into the edge of the slide. The agent's own note said it had left slide 7 as drafted. The other slides held up, apart from small additions such as an IPA spelling of "Muse".</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/slide-07.webp" alt="Slide 7, with the right-hand boxes touching the slide edge" /></p>
<h2>Asking it to fix one slide</h2>
<p>I told the agent what was wrong with slide 8, gave it the correct figure and asked it to change only that slide. It replied with its plan, and less than a minute later it was done. The clone's box now said 3 to 6 seconds of computing per second of speech, and both added claims were gone. It also corrected the slide's speaker notes, which had repeated the same mix-up, and confirmed that no other slides changed.</p>
<p>The panel then showed the original and the modified slide side by side, with the new one selected and a "Compare all edits" link. If the fix had been wrong, I could have picked the original back.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/fixed.webp" alt="Slide 8 after the fix, with the original and modified versions in the agent panel" /></p>
<h2>The same test in Chinese</h2>
<p>My readers include Chinese speakers, so I ran the Chinese version of the article through the same steps. The agent replied in Chinese, named the deck 中文AI配音测评 and finished in about 175 seconds. Chinese text rendered cleanly in a different style, with soft 3D illustrations, and the results table was again correct.</p>
<p>It also hit the free plan's limit. The agent had planned 11 slides, the free plan creates at most 10, and the slide it dropped was the last one, "What I did not test". The agent said so plainly, and a banner offered an upgrade to finish the deck.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/zh-ready.webp" alt="The Chinese deck with the banner: Free includes up to 10 slides, created 10 of 11" /></p>
<p>The Chinese deck added more than the English one. Slide 4 described a blind test with the seven audio files shuffled at random, when I had simply listened to them one after another. Slide 7 gained a "core conclusion" in bold that I never wrote, saying that realism in voiceover comes from the breathing room between punctuation marks. Slide 8 calculated a "22.5x" efficiency gap and said ElevenLabs runs on a cloud cluster. The agent's summary again said it had added nothing beyond the article.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/zh-slide-07.webp" alt="Chinese slide 7 with an added " /></p>
<h2>Exporting to PowerPoint</h2>
<p>The export panel offers PDF, PowerPoint, Google Slides and PNGs, at Basic, Standard or Detailed quality. "Hide Made with Gamma badge" is a Plus feature. The panel also suggests installing two fonts, Outfit and Urbanist, and warns that gradient text and frosted backgrounds fall back to simpler styles in PDF and PowerPoint.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/export-options.webp" alt="Export options, with the badge toggle marked PLUS and the font note" /></p>
<p>The PowerPoint file took under half a minute and came to 2.36 MB. Inside were 10 slides of editable text, a real PowerPoint table on slide 6, speaker notes on every slide and the six font files embedded, so it displayed correctly in PowerPoint without installing anything.</p>
<p>Every slide had the "Made with Gamma" badge in the bottom right corner. The title wrapped differently from the web version, so the decorative box no longer lines up with the text.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/ppt-slide-01.webp" alt="The exported title slide in PowerPoint, with the Made with Gamma badge in the corner" /></p>
<p>On slide 8 the corrected sentence is longer than the original, and in PowerPoint its last word spills just below the box.</p>
<p><img src="https://handsonaitools.com/images/posts/gamma-5-free-plan-review/ppt-slide-08.webp" alt="Exported slide 8 in PowerPoint, with the last word running past the box" /></p>
<h2>What the free plan gets you</h2>
<p>The balance went from 400 to 270 after the English deck and the one-slide fix, then to 131 after the Chinese deck, so a 10-slide deck cost me 130 to 140 credits. That is about three decks from the signup credits. The credit panel says upgrading gets you credits that refresh monthly; according to Gamma's pricing page, the free plan's 400 come once, at signup.</p>
<p>On the pricing page on November 3, 2026, Plus cost $12 a month, or $9 a month billed yearly, for 1,500 credits a month, up to 100 slides per prompt and no Gamma branding. Pro cost $25, or $18 billed yearly, for 4,000 credits a month, better image models and custom branding.</p>
<h2>Would I use it?</h2>
<p>For a first draft of a deck from my own writing, yes. It took a long article and produced a structured, good-looking deck faster than I could pick a template, and the hardest slide, the table, was exact. The fix-one-slide request was the best part of the test.</p>
<p>What I wouldn't do is present it unchecked. In both languages it added numbers and conclusions I never wrote, and its own summary said it hadn't, so the summary is no substitute for reading every slide against the source. The free credits are enough to try that on two or three of your own documents before paying. I tested only the Presentation mode, Standard effort and one article in two languages.</p>
<hr />
<p><em>Originally published on <a href="https://handsonaitools.com/posts/gamma-5-free-plan-review/">Hands-On AI Tools</a>, where I test AI tools on real tasks. Cover: the title slide Gamma generated in this test; the images on it were made by Gamma.</em></p>
]]></content:encoded></item><item><title><![CDATA[Synthesia Free Plan Review: Making Videos with Syren and Studio]]></title><description><![CDATA[What the free Basic plan does, tested with an English article in Syren and a Chinese script in Studio]]></description><link>https://handsonaitools.hashnode.dev/synthesia-free-plan-review-making-videos-with-syren-and-studio</link><guid isPermaLink="true">https://handsonaitools.hashnode.dev/synthesia-free-plan-review-making-videos-with-syren-and-studio</guid><category><![CDATA[#ai-tools]]></category><category><![CDATA[review]]></category><category><![CDATA[video]]></category><category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Hands-On AI Tools]]></dc:creator><pubDate>Wed, 11 Nov 2026 08:15:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aeed97f4e2c7d6c4c3fce2e/9c1b4347-9876-4a46-a865-cda37e4da0bd.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclosure: the Synthesia link in this post is an affiliate link. If you buy a paid Synthesia plan through it, I may earn a commission at no extra cost to you.</em></p>
<p><strong>Key takeaways</strong></p>
<ul>
<li>Syren turned a 5.4 KB English article into an accurate 2 minute 42 second voice-over video in 6 minutes 17 seconds, and put an avatar host on screen once the prompt used the third person.</li>
<li>Videos made in Syren can be downloaded on the free plan as 1080p MP4 files with a watermark, while the Studio editor requires a paid Starter plan to download.</li>
<li>Three test videos totalling 4 minutes 14 seconds cost $0, drawing from Syren's 1,000 free promo credits before using the monthly workspace allowance.</li>
</ul>
<blockquote>
<p><strong>Tested on:</strong> Synthesia free (Basic) plan, November 7, 2026, Chrome on Windows 11. Syren for the English videos, the Studio editor for the Chinese avatar video.</p>
</blockquote>
<p>After noting in my <a href="https://handsonaitools.com/posts/heygen-vs-synthesia-youtube-reviews/">HeyGen vs Synthesia YouTube review roundup</a> that I had yet to try <a href="https://www.synthesia.io/?via=wei-han">Synthesia</a> myself, I tested its free plan on November 7, 2026. I signed up in Chrome on Windows 11 with a new account and no card added, using my earlier article, <a href="https://handsonaitools.com/posts/elevenlabs-free-vs-qwen3-tts-chinese/">ElevenLabs Free Plan vs a Local Open-Source Model: Same Chinese Script, Side by Side</a>, as test material.</p>
<h2>Sign up and pick the free plan</h2>
<p>Right after signup, a plan picker lets you choose the free Basic plan. Basic includes 500 credits a month, about 10 minutes of video a month, 9 AI avatars, Syren videos up to 3 minutes long, a share link, and a Synthesia watermark on videos. After two quick onboarding questions about your role and how you heard about Synthesia, you land on a "What do you want to make?" box where Synthesia had already pulled my site's logo from my email domain and suggested three topic prompts.</p>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/plans.webp" alt="The plan picker after signup" /></p>
<h2>Make a video from an article with Syren</h2>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/syren-start.webp" alt="The What do you want to make box with the site logo and three suggested prompts" /></p>
<p>To test Syren, Synthesia's AI video agent, I pasted the full 5.4 KB text of my ElevenLabs article into the prompt box with a short instruction at the top: "Make a short explainer video (about 2 minutes) from the article below. Keep every number and conclusion as written. Do not add facts that are not in the article."</p>
<p>After waiting 6 minutes 17 seconds, Syren finished a 2 minute 42 second explainer in 11 sections with a US English voice-over called "Sarah" over animated charts. I checked every scene against my source text, and every number and conclusion matched the article.</p>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/syren-built.webp" alt="The finished Syren video in the editor with Syren's summary in the chat" /></p>
<p>Syren left out an avatar because the article was written in the first person, explaining: "There's no on-screen presenter, because a generated face saying 'my own cloned voice' would pretend to be you." Listening through the full video, the "Sarah" narration had natural intonation, smooth phrasing from sentence to sentence, and a clear voice.</p>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/frame-pauses.webp" alt="A pause chart frame from the downloaded Syren video" /></p>
<h2>Get an avatar presenter</h2>
<p>To get an avatar on screen in Syren, write the script in the third person so the presenter reports "the tester's" results and never says "I". I gave Syren the Muse pronunciation facts from the article, asked for a video under 1 minute with a stock avatar, and instructed the presenter to act as a host reporting a test by Hands-On AI Tools.</p>
<p>Syren asked "Which avatar do you want to use?" and opened the avatar list. I picked Hana, and Syren built the video in two passes taking about 4 minutes in total (2 minutes 49 seconds, then 1 minute 17 seconds).</p>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/hana-host-open.webp" alt="Hana opening the 45-second avatar video" /></p>
<p>The result was a 45-second video, which you can watch at the top of the <a href="https://handsonaitools.com/posts/synthesia-free-plan-review/">original article</a>. Hana speaks in a voice called "Jade". Her lip sync matched the words throughout, the voice was clear with a natural accent, and it was hard to tell she was a generated avatar. One on-screen detail was invented (an alternating "miù zi / miù sī" chip pattern on the Muse panel), so you should still check the screen before publishing.</p>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/hana-host-muse.webp" alt="The Muse panel in the avatar video, with the alternating miù zi and miù sī chips beside Hana" /></p>
<h2>Make a video by hand in the Studio editor</h2>
<p>To build a video manually, click Create, choose Start from blank, paste a script, pick an avatar and its voice in the speaker list, and click Generate. I tried a Chinese script (three paragraphs, about 260 characters) from my ElevenLabs article with Hana. Rendering the 47-second video took about 12 minutes. While Hana looked realistic in the video, the Chinese narration sounded clearly synthetic with a mechanical quality and a few mispronunciations, so for Chinese, listen before you use it.</p>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/studio-hana.webp" alt="The Studio editor with Hana and the Chinese script" /></p>
<h2>Download and share</h2>
<p>Syren videos can be downloaded on the free plan from the Share menu ("Download the video") as 1080p, 30 fps MP4 files with a watermark, or shared by link. Studio videos cannot be downloaded on the free plan; clicking the Download button asks you to upgrade to Starter.</p>
<p><img src="https://handsonaitools.com/images/posts/synthesia-free-plan-review/share-download.webp" alt="The Share menu with Download the video" /></p>
<h2>What it costs</h2>
<p>Basic is free. Starter costs $19 a month, or $14 a month billed yearly ($168 a year), with 15,000 credits a year (about 150 minutes of studio video or about 24 Syren videos), and adds downloads, logo removal, the AI Video Assistant, and 125+ avatars. Pro costs $89 a month, or $59 billed yearly ($708 a year), for 72,000 credits a year.</p>
<p>In this test, I made 3 videos running 4 minutes 14 seconds in total (2:42 and 0:45 from Syren, plus 0:47 from Studio) and paid nothing. Syren's own counters showed 347.5 and 955.1 credits, about 1,300 in total, taken first from the free Syren credits (Basic currently gets 1,000 promo credits for Syren, limited time) and then from the workspace credits; afterwards Syren showed 394 workspace credits left. The Studio video did not show up as used credits. According to Synthesia's own note, a 1-minute Syren video typically uses 1,000 to 2,000 credits.</p>
<h2>Who the free plan suits</h2>
<p>The free Basic plan is a good choice for trying English videos from an existing article or script in Syren if a watermark on your 1080p download or share link is acceptable. You need Starter to remove the watermark, download Studio videos, or use the AI Video Assistant. I did not test personal avatars, voice cloning or dubbing.</p>
<hr />
<p><em>Originally published on <a href="https://handsonaitools.com/posts/synthesia-free-plan-review/">Hands-On AI Tools</a>. Cover: a frame from the 45-second avatar video made in this test with Synthesia's free plan. Hana is one of Synthesia's stock AI avatars.</em></p>
]]></content:encoded></item><item><title><![CDATA[How I Connected Muse to Feishu So It Works When My Computer Is Off]]></title><description><![CDATA[A custom Feishu app, the permissions to turn on, and a listener on Muse's cloud computer]]></description><link>https://handsonaitools.hashnode.dev/how-i-connected-muse-to-feishu-so-it-works-when-my-computer-is-off</link><guid isPermaLink="true">https://handsonaitools.hashnode.dev/how-i-connected-muse-to-feishu-so-it-works-when-my-computer-is-off</guid><category><![CDATA[AI]]></category><category><![CDATA[ai agents]]></category><category><![CDATA[automation]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Hands-On AI Tools]]></dc:creator><pubDate>Sat, 07 Nov 2026 08:02:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aeed97f4e2c7d6c4c3fce2e/67b0a114-0508-4cbf-bb73-d224d413eb91.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Key takeaways</strong></p>
<ul>
<li>Muse has no built-in Feishu connector. You create a custom app in the Feishu developer console, then authorize Muse to use it.</li>
<li>For messaging you need at least im:message, im:message:send_as_bot and im:message.p2p_msg:readonly, plus offline_access.</li>
<li>Have Muse run a listener on its cloud computer, and in Feishu subscribe to the receive message event over a persistent connection. Then it gets your messages while your computer is off.</li>
<li>Your Feishu account needs permission to create custom apps, or an admin who can approve them.</li>
</ul>
<blockquote>
<p><strong>Tested on:</strong> Muse (October 2026), Feishu Open Platform, an organization Feishu account.</p>
</blockquote>
<p><img src="https://handsonaitools.com/images/posts/connect-muse-to-feishu/jolly-wake.webp" alt="Muse's mascot stretching" /></p>
<p>I wanted to send Muse a message from Feishu on my phone, with my computer switched off, and have it do the job and reply in Feishu.</p>
<p>Muse has its own cloud computer that stays on around the clock, so Feishu needs to talk to that computer instead of mine. I did this on Feishu, the Chinese version of Lark. Lark has a developer console too, but I only tested Feishu, and the menu names below are my translations of the Chinese interface.</p>
<h2>Before you start</h2>
<p>Your Feishu account needs permission to create custom apps for your organization, or an admin who can approve and release them. Without that, the steps below won't work. If it's a company account, check whether your company allows third-party AI assistants first.</p>
<h2>Step 1: Tell Muse you want to connect Feishu</h2>
<p>I simply told Muse that I wanted it to connect to my Feishu. It answered that it has no built-in Feishu connector, so there is no one-click option like its Gmail connector, and offered two routes: a custom integration, or handling a single task through its browser. For regular use, pick the custom integration ("帮我搭一个飞书自定义接入", build me a custom Feishu integration).</p>
<p><img src="https://handsonaitools.com/images/posts/connect-muse-to-feishu/ask-muse.png" alt="Asking Muse to connect to Feishu; Muse offers two routes" /></p>
<h2>Step 2: Get the checklist from Muse</h2>
<p>Muse then listed what to set up on the Feishu side, including the callback URL. The list asks for the offline_access permission, so that Muse gets a refresh token and doesn't need you to re-authorize every 2 hours.</p>
<p><img src="https://handsonaitools.com/images/posts/connect-muse-to-feishu/muse-checklist.png" alt="Muse's checklist for the Feishu side, with the callback URL" /></p>
<h2>Step 3: Create the app in the Feishu developer console</h2>
<ol>
<li>Open the Feishu Open Platform (open.feishu.cn), go to the developer console and click Create custom app (创建企业自建应用). I named mine "Muse 助手" (Muse assistant).</li>
<li>Under Add features (添加应用能力) in the left menu, add the Bot capability.</li>
<li>Open Credentials and basic info (凭证与基础信息) and note the App ID and App Secret. You'll need them to authorize Muse. Don't paste them into any chat.</li>
</ol>
<h2>Step 4: Turn on permissions, add the callback URL, release</h2>
<p>In Permission management (权限管理), click Add permissions (开通权限) and search for each permission by its code. These are the messaging permissions on my app:</p>
<table>
<thead>
<tr>
<th>Name in the console</th>
<th>Code</th>
<th>Identity</th>
<th>What it's for</th>
</tr>
</thead>
<tbody><tr>
<td>获取与发送单聊、群组消息 (read and send direct and group messages)</td>
<td><code>im:message</code></td>
<td>App and user</td>
<td>Basic permission for messaging</td>
</tr>
<tr>
<td>以应用的身份发消息 (send messages as the app)</td>
<td><code>im:message:send_as_bot</code></td>
<td>App</td>
<td>Lets the "Muse 助手" bot reply in Feishu</td>
</tr>
<tr>
<td>读取用户发给机器人的单聊消息 (read direct messages sent to the bot)</td>
<td><code>im:message.p2p_msg:readonly</code></td>
<td>App</td>
<td>The bot receives what you send it in a direct chat</td>
</tr>
<tr>
<td>持续访问已授权的数据 (keep access to authorized data)</td>
<td><code>offline_access</code></td>
<td>User</td>
<td>Refresh token, so no re-authorizing every 2 hours</td>
</tr>
<tr>
<td>获取群组中用户@机器人消息 (optional: messages that @ the bot in groups)</td>
<td><code>im:message.group_at_msg:readonly</code></td>
<td>App</td>
<td>Only if you want to @ it in group chats</td>
</tr>
</tbody></table>
<p>For direct chats only, the first four are enough. If you want Muse to read documents or calendars, add those permissions too; leave out anything you won't use.</p>
<p>Then:</p>
<ol>
<li>In Security settings (安全设置), add Muse's callback URL <code>https://agent.meta.ai/api/hatch/oauth/callback</code> as a redirect URL. Without it, authorization fails because the redirect URL doesn't match.</li>
<li>Under Version management and release (版本管理与发布), create a version and release it. The console notes that releasing a custom app needs approval from your organization's admin.</li>
</ol>
<h2>Step 5: Authorize Muse</h2>
<p>Click the connect button Muse sends you, fill in the App ID and App Secret, and finish the authorization. Afterwards Muse runs one harmless read to confirm the connection works.</p>
<p>If you change the app's permissions later, go back to Muse and authorize again.</p>
<h2>Step 6: Start the listener and the persistent connection</h2>
<ol>
<li>Ask Muse to run a listener on its cloud computer.</li>
<li>Back in the Feishu console, open Events and callbacks (事件与回调) and set the subscription method to receive events over a persistent connection (使用长连接接收事件). This mode needs no public domain and no encryption settings.</li>
<li>Click Add events (添加事件) and add receive message (接收消息, <code>im.message.receive_v1</code>) with app identity. The console lists the permissions this event needs and asks for any one of them; the direct-message permission from step 4 is one.</li>
<li>Release a version again.</li>
</ol>
<p>Once the listener was running, Muse sent a test message in Feishu saying the credentials are stored on its cloud computer in a file with 600 permissions, so I don't have to give it the Secret again.</p>
<h2>Test: turn the computer off and message it from your phone</h2>
<p><img src="https://handsonaitools.com/images/posts/connect-muse-to-feishu/jolly-levelup.webp" alt="Muse's mascot wearing a gold star" /></p>
<p>Find the "Muse 助手" bot in Feishu and message it directly. I switched my computer off and asked from my phone whether it could still hear me. It replied that it could, because it runs in the cloud and doesn't depend on my computer, as long as my phone is online.</p>
<h2>Keep in mind</h2>
<p>Once connected, Muse can call the Feishu APIs you authorized as you. The more permissions you grant, the more it can touch, so only grant what you need. Enter the App Secret only on the authorization page and never paste it into a chat.</p>
<hr />
<p><em>Originally published on <a href="https://handsonaitools.com/posts/connect-muse-to-feishu/">Hands-On AI Tools</a>. The Muse mascot animations and the cover are from Meta's official Muse animations.</em></p>
]]></content:encoded></item></channel></rss>