{"id":25609,"date":"2026-04-29T14:27:55","date_gmt":"2026-04-29T21:27:55","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=25609"},"modified":"2026-04-29T14:27:55","modified_gmt":"2026-04-29T21:27:55","slug":"from-prompt-to-production-teams-agent-setup-simplified","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/from-prompt-to-production-teams-agent-setup-simplified\/","title":{"rendered":"From prompt to production: Teams agent setup, simplified"},"content":{"rendered":"<p dir=\"auto\">You want to build a Teams agent. Maybe it answers customer questions from a knowledge base. Maybe it runs your team&#8217;s standups. The interesting part is the logic, the thing the agent actually\u00a0<em>does<\/em>.<\/p>\n<p dir=\"auto\">But before you write a single line of that logic, you have to register it with Teams. That takes a number of steps.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">How it works today<\/h2>\n<p>Getting an agent into Teams requires configuring an identity, generating credentials, authoring a manifest, and wiring it all together. These steps span the Azure portal, Developer Portal, and your editor. Each one is straightforward on its own, but the context-switching between them adds up.<\/p>\n<\/div>\n<div dir=\"auto\"><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/setup-steps.webp\"><img decoding=\"async\" class=\"aligncenter wp-image-25610 size-medium\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/setup-steps-254x300.webp\" alt=\"Image of the steps to add an agent to Teams.\" width=\"254\" height=\"300\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/setup-steps-254x300.webp 254w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/setup-steps-768x906.webp 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/setup-steps.webp 792w\" sizes=\"(max-width: 254px) 100vw, 254px\" \/><\/a><\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">Let your coding agent handle it<\/h2>\n<p>The <a href=\"https:\/\/microsoft.github.io\/teams-sdk\/developer-tools\/agent-skills\"><code>teams-dev<\/code>\u00a0agent skill<\/a>\u00a0works with AI coding agents like Copilot, Claude Code, and Cursor. Instead of learning the registration steps yourself, tell your coding agent:<\/p>\n<\/div>\n<ul dir=\"auto\">\n<li><em>&#8220;Help me build a Teams agent that answers FAQs&#8221;<\/em><\/li>\n<li><em>&#8220;Get my agent running in Teams&#8221;<\/em><\/li>\n<li><em>&#8220;My agent isn&#8217;t loading in Teams, can you help?&#8221;<\/em><\/li>\n<\/ul>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/microsoft\/teams-sdk\/blob\/main\/teams.md\/blog\/2026-04-28-teams-cli-preview\/agent-skill.gif\" target=\"_blank\" rel=\"noopener noreferrer\" data-target=\"animated-image.originalLink\"><img decoding=\"async\" src=\"https:\/\/github.com\/microsoft\/teams-sdk\/raw\/main\/teams.md\/blog\/2026-04-28-teams-cli-preview\/agent-skill.gif\" alt=\"The teams-dev agent skill in action\" data-target=\"animated-image.originalImage\" \/><\/a><\/p>\n<p dir=\"auto\">The skill uses the CLI under the hood to handle the full infrastructure workflow, from sign in to a working agent in Teams, and troubleshooting when something breaks. Beyond infrastructure, it also helps your coding agent write application logic following best practices from the Teams SDK documentation.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">Under the hood: The Teams CLI<\/h2>\n<p>For developers who want direct control, the skill is powered by the next iteration of our CLI. Install it and sign in:<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>npm install -g @microsoft\/teams.cli@preview\r\nteams login<\/pre>\n<h3 class=\"zeroclipboard-container\">Create is now just one command<\/h3>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<p><span style=\"font-family: Consolas, Monaco, monospace;\">teams app create &#8211;name <\/span><span class=\"pl-s\" style=\"font-family: Consolas, Monaco, monospace;\"><span class=\"pl-pds\">&#8220;<\/span>My Bot<span class=\"pl-pds\">&#8220;<\/span><\/span><span style=\"font-family: Consolas, Monaco, monospace;\"> &#8211;endpoint https:\/\/my-bot.example.com\/api\/messages &#8211;env .env<\/span><\/p>\n<\/div>\n<p dir=\"auto\"><code>teams app create<\/code>\u00a0does the heavy lifting (registration, credentials, manifest, and more) so you can start building immediately. All the steps from above happen behind the scenes.<\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/microsoft\/teams-sdk\/blob\/main\/teams.md\/blog\/2026-04-28-teams-cli-preview\/app-create.gif\" target=\"_blank\" rel=\"noopener noreferrer\" data-target=\"animated-image.originalLink\"><img decoding=\"async\" src=\"https:\/\/github.com\/microsoft\/teams-sdk\/raw\/main\/teams.md\/blog\/2026-04-28-teams-cli-preview\/app-create.gif\" alt=\"Showcasing how a single command is able to set up your entire agent infra\" data-target=\"animated-image.originalImage\" \/><\/a><\/p>\n<p dir=\"auto\">Now you can focus on your agent&#8217;s logic without worrying about app registration concepts. See the\u00a0<a href=\"https:\/\/github.com\/microsoft\/teams-sdk\/blob\/main\/cli\">CLI docs<\/a>\u00a0for all available flags.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">Easy installation<\/h3>\n<p>Traditionally, getting an agent into Teams means building an app package, managing a manifest, and sideloading it. With the CLI, <code>app create<\/code>\u00a0gives you an installation link. Open it and Teams handles the install flow without a manual zip\/package upload.<\/p>\n<\/div>\n<p dir=\"auto\"><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/install-link.webp\"><img decoding=\"async\" class=\"aligncenter wp-image-25612 size-medium\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/install-link-300x269.webp\" alt=\"Screenshot of the My Bot agent.\" width=\"300\" height=\"269\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/install-link-300x269.webp 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/install-link-768x688.webp 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2026\/04\/install-link.webp 861w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p dir=\"auto\">The CLI also includes a\u00a0<code>teams app doctor<\/code>\u00a0command that checks your agent&#8217;s registration, credentials, endpoint, and manifest so when something breaks, you know exactly what to fix.<\/p>\n<p dir=\"auto\">For CI pipelines and custom tooling, every CLI command supports\u00a0<code>--json<\/code>\u00a0output for programmatic consumption.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">Get started<\/h2>\n<p>Install the <code>teams-dev<\/code>\u00a0agent skill (Copilot, Claude Code, Cursor):<\/p>\n<\/div>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\">\n<pre class=\"notranslate\"><code>\/plugin marketplace add microsoft\/teams-sdk\r\n\/plugin install teams-sdk@teams-skills\r\n<\/code><\/pre>\n<div class=\"zeroclipboard-container\">See the <a href=\"https:\/\/microsoft.github.io\/teams-sdk\/developer-tools\/agent-skills\/\">agent skills guide<\/a>\u00a0for VS Code and other editors.<\/div>\n<\/div>\n<p dir=\"auto\">Install the CLI:<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>npm install -g @microsoft\/teams.cli@preview<\/pre>\n<div class=\"zeroclipboard-container\">For documentation, see <a href=\"https:\/\/microsoft.github.io\/teams-sdk\/cli\/\" rel=\"nofollow\">microsoft.github.io\/teams-sdk\/cli<\/a>. To file issues, go to <a href=\"https:\/\/github.com\/microsoft\/teams-sdk\/issues\">github.com\/microsoft\/teams-sdk<\/a>.<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to use a coding agent to register and agent with Teams.<\/p>\n","protected":false},"author":212803,"featured_media":25159,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-25609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer"],"acf":[],"blog_post_summary":"<p>Learn how to use a coding agent to register and agent with Teams.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/212803"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=25609"}],"version-history":[{"count":2,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25609\/revisions"}],"predecessor-version":[{"id":25622,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25609\/revisions\/25622"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=25609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=25609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=25609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}