<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"><channel><title>Pulumi Blog: Pulumi Neo Team</title><link>https://www.pulumi.com/blog/author/neo-team/</link><description>Pulumi blog posts: Pulumi Neo Team.</description><language>en-us</language><pubDate>Mon, 22 Jun 2026 08:00:00 -0700</pubDate><item><title>Neo code reviews: AI code review built for infrastructure</title><link>https://www.pulumi.com/blog/neo-code-reviews/</link><pubDate>Mon, 22 Jun 2026 08:00:00 -0700</pubDate><guid>https://www.pulumi.com/blog/neo-code-reviews/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-code-reviews/index.png" /&gt;
&lt;p&gt;Today we&amp;rsquo;re introducing &lt;a href="https://www.pulumi.com/docs/ai/code-reviews/"&gt;Pulumi Neo code reviews&lt;/a&gt;, now in public preview. Neo code reviews analyze pull request changes in conjunction with what Pulumi Cloud knows about your running infrastructure, providing both high-level and code-level feedback.&lt;/p&gt;
&lt;p&gt;Normal code review agents can&amp;rsquo;t reliably anticipate the impact an infrastructure-as-code change will have. This is because they don&amp;rsquo;t have access to critical aspects of the IaC workflow: the potential impact the update will have, in this case the &lt;code&gt;pulumi preview&lt;/code&gt; output; and the current state of the cloud infrastructure. Neo not only has access to both of those, but also to the entirety of your other cloud context, such as stack relationships and dependencies.&lt;/p&gt;
&lt;h2 id="running-reviews"&gt;Running reviews&lt;/h2&gt;
&lt;p&gt;Neo can review every pull request automatically, or only when someone mentions &lt;code&gt;@pulumi-neo&lt;/code&gt;. Either way, it skips draft pull requests and those opened by bots by default.&lt;/p&gt;
&lt;p&gt;A review is a comment, so it informs the person approving the merge and sits alongside the required checks and branch protection you already enforce. Neo code reviews run inside the same governance as every other Neo task, with the &lt;a href="https://www.pulumi.com/docs/administration/access-identity/rbac/"&gt;RBAC&lt;/a&gt;, guardrails, and audit logging your organization has set.&lt;/p&gt;
&lt;p&gt;&lt;img src="neo-code-review.png" alt="Neo code review on a GitHub pull request, showing a risk assessment and the resource changes the update would make"&gt;&lt;/p&gt;
&lt;h2 id="enable-code-reviews"&gt;Enable code reviews&lt;/h2&gt;
&lt;p&gt;Neo code reviews are available on GitHub during public preview. They require Pulumi Neo to be enabled for your organization, the &lt;a href="https://www.pulumi.com/docs/integrations/version-control/github-app/"&gt;Pulumi GitHub App&lt;/a&gt; installed on the repositories you want reviewed, and a one-time grant from each organization user to access their GitHub account under &lt;strong&gt;Management&lt;/strong&gt; &amp;gt; &lt;strong&gt;Version control&lt;/strong&gt;. If Neo currently posts preview summaries on your pull requests, code reviews are already enabled, and they take the place of those summaries.&lt;/p&gt;
&lt;p&gt;Neo code reviews are free while in public preview. On July 1, 2026, they&amp;rsquo;ll be generally available, and reviews will begin counting toward your organization&amp;rsquo;s Neo token usage, at the same per-token rate as any other Neo task. The &lt;a href="https://www.pulumi.com/pricing/"&gt;pricing page&lt;/a&gt; shows that rate and the monthly token allotment included with each plan.&lt;/p&gt;
&lt;h2 id="give-it-a-try"&gt;Give it a try&lt;/h2&gt;
&lt;p&gt;Open a pull request against a stack Pulumi manages and see Neo&amp;rsquo;s review. We want to hear what it catches and what it misses, so hop into the &lt;a href="https://slack.pulumi.com/"&gt;Pulumi Community Slack&lt;/a&gt; and tell us.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>features</category><category>pulumi-neo</category></item><item><title>Bringing Neo to GitHub and Slack</title><link>https://www.pulumi.com/blog/neo-github-slack/</link><pubDate>Thu, 21 May 2026 08:00:00 -0700</pubDate><guid>https://www.pulumi.com/blog/neo-github-slack/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-github-slack/index.png" /&gt;
&lt;p&gt;This week, &lt;a href="https://www.pulumi.com/blog/pulumi-neo/"&gt;Pulumi Neo&lt;/a&gt; started working in two more places: GitHub and Slack. The agent that already runs Pulumi tasks from the Cloud console and the &lt;a href="https://www.pulumi.com/blog/pulumi-neo-cli/"&gt;terminal&lt;/a&gt; now participates in the threads where your team discusses changes.&lt;/p&gt;
&lt;p&gt;Mention &lt;code&gt;@pulumi-neo&lt;/code&gt; in a &lt;a href="https://www.pulumi.com/docs/ai/code-reviews/"&gt;pull request or issue&lt;/a&gt; and Neo replies in the thread. Mention &lt;code&gt;@Neo&lt;/code&gt; in a &lt;a href="https://www.pulumi.com/docs/ai/integrations/slack/"&gt;Slack channel&lt;/a&gt; and Neo starts a &lt;a href="https://www.pulumi.com/docs/ai/tasks/"&gt;task&lt;/a&gt;, continuing the conversation as you reply.&lt;/p&gt;
&lt;h2 id="neo-in-github"&gt;Neo in GitHub&lt;/h2&gt;
&lt;p&gt;Mention &lt;code&gt;@pulumi-neo&lt;/code&gt; in a pull request description, a top-level or inline review comment, or an issue. Neo sees the diff, the stacks linked to the repository, and their current state. Reviewers can ask Neo to walk through what a proposed change does, including resources that change in stacks the PR doesn&amp;rsquo;t touch directly. Responses land in the same thread, so the analysis becomes part of the review record and any follow-up stays with it.&lt;/p&gt;
&lt;div class="my-4"&gt;
&lt;video class="flex outline-none rounded-lg w-full" title="Delegating a GitHub issue to Neo"
autoplay muted playsinline
loop &gt;
&lt;source src="neo-github.mp4" /&gt;
&lt;/video&gt;
&lt;/div&gt;
&lt;h2 id="neo-in-slack"&gt;Neo in Slack&lt;/h2&gt;
&lt;p&gt;Mention &lt;code&gt;@Neo&lt;/code&gt; in any channel where Neo has been added, and Neo starts a task in the thread. The reply lands in the same thread, and follow-up messages continue the conversation there. The rest of the channel can see what was asked and what Neo found. Neo has the same capabilities here as in the Pulumi Cloud console or the terminal: check stack state, investigate failures, walk through what a change will do, or carry out actions the team has approved.&lt;/p&gt;
&lt;div class="my-4"&gt;
&lt;video class="flex outline-none rounded-lg w-full" title="Tagging Neo for help with an issue in Slack"
autoplay muted playsinline
loop &gt;
&lt;source src="neo-slack.mp4" /&gt;
&lt;/video&gt;
&lt;/div&gt;
&lt;h2 id="integrations-in-action"&gt;Integrations in action&lt;/h2&gt;
&lt;p&gt;A teammate posts in &lt;code&gt;#platform-engineering&lt;/code&gt;: &amp;ldquo;API latency p95 has been climbing for two days, nobody can figure out why.&amp;rdquo; You reply:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; @Neo check the production API stack. Anything change in the last 72 hours?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Neo starts a task in the thread, walks the stack history, and finds a configuration change to the load balancer&amp;rsquo;s idle-timeout setting that landed Friday afternoon. It posts the change, who deployed it, and when. The rest of the channel sees the finding without you having to retell it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; @Neo open a PR to revert idle-timeout to the previous value.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Neo edits the stack&amp;rsquo;s Pulumi program, runs &lt;code&gt;pulumi preview&lt;/code&gt; to confirm the change touches only the load balancer, and opens a pull request with the diff and the preview output. A reviewer pulls it up:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Reviewer:&lt;/strong&gt; @pulumi-neo what else does this change affect downstream?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Neo replies in the same review thread with the resources that change: the listener config and the target group health check. The reviewer reads, approves, and the change ships.&lt;/p&gt;
&lt;p&gt;The investigation moved from Slack to GitHub, and both threads keep the record.&lt;/p&gt;
&lt;h2 id="permissions-and-governance"&gt;Permissions and governance&lt;/h2&gt;
&lt;p&gt;Whether the conversation starts in GitHub or Slack, Neo runs with the &lt;a href="https://www.pulumi.com/docs/administration/access-identity/rbac/"&gt;RBAC permissions&lt;/a&gt; of your Pulumi Cloud user. Stack-level controls, organization-level guardrails, and audit logging apply the same way they do for a task started from the console. Starting a conversation in a new place doesn&amp;rsquo;t grant Neo new permissions; it just changes where the conversation happens.&lt;/p&gt;
&lt;h2 id="try-it-out"&gt;Try it out&lt;/h2&gt;
&lt;p&gt;Both integrations are available now for Neo-enabled organizations. The &lt;a href="https://www.pulumi.com/docs/ai/code-reviews/"&gt;Code Reviews docs&lt;/a&gt; and &lt;a href="https://www.pulumi.com/docs/ai/integrations/slack/"&gt;Slack integration docs&lt;/a&gt; cover the one-time setup. From there, every engineer with a linked Pulumi Cloud identity can mention Neo from the threads they already work in.&lt;/p&gt;
&lt;p&gt;Today&amp;rsquo;s launch is part of a &lt;a href="https://www.pulumi.com/releases/agentic-infrastructure-era/"&gt;bigger story&lt;/a&gt;. Read our launch-day piece on &lt;a href="https://www.pulumi.com/blog/the-agentic-infrastructure-era/"&gt;the agentic infrastructure era&lt;/a&gt; for the broader vision, the &lt;a href="https://www.pulumi.com/blog/pulumi-neo-cli/"&gt;Neo CLI launch post&lt;/a&gt; for Neo&amp;rsquo;s new home in the terminal, and the &lt;a href="https://www.pulumi.com/blog/neo-integrations/"&gt;Neo Integrations post&lt;/a&gt; for the MCP servers and cloud CLIs that ship with this release.&lt;/p&gt;
&lt;p&gt;As always, we&amp;rsquo;d love to hear what you think — and if you have any suggestions for places we should put Neo next, file an issue in &lt;a href="https://github.com/pulumi/pulumi-cloud-requests/issues/new/choose"&gt;pulumi-cloud-requests&lt;/a&gt;.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>features</category><category>pulumi-neo</category></item><item><title>Neo Automations: Scheduled Tasks Shipped as Pull Requests</title><link>https://www.pulumi.com/blog/neo-automations/</link><pubDate>Thu, 21 May 2026 07:00:00 -0700</pubDate><guid>https://www.pulumi.com/blog/neo-automations/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-automations/index.png" /&gt;
&lt;p&gt;Recurring platform work slips: provider versions fall behind, drift accumulates between checks, and the quarterly audit keeps getting pushed back another month. &lt;a href="https://www.pulumi.com/blog/pulumi-neo/"&gt;Pulumi Neo&lt;/a&gt; can now run any &lt;a href="https://www.pulumi.com/docs/ai/tasks/"&gt;task&lt;/a&gt; on a cadence you set, opening a pull request for each run.&lt;/p&gt;
&lt;h2 id="automations-in-action"&gt;Automations in action&lt;/h2&gt;
&lt;p&gt;Your platform team runs stacks across staging and production, and the &lt;a href="https://www.pulumi.com/registry/packages/aws/"&gt;AWS&lt;/a&gt;, &lt;a href="https://www.pulumi.com/registry/packages/gcp/"&gt;GCP&lt;/a&gt;, and &lt;a href="https://www.pulumi.com/registry/packages/kubernetes/"&gt;Kubernetes&lt;/a&gt; providers keep shipping new versions. Nobody has time to bump them stack by stack.&lt;/p&gt;
&lt;p&gt;You write one automation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Every Monday at 8 AM, check the &lt;code&gt;infra/&lt;/code&gt; project for stacks where the AWS, GCP, or Kubernetes provider is more than two minor versions behind. For each one, bump the out-of-date provider, run &lt;code&gt;pulumi preview&lt;/code&gt;, and open a PR if the preview is clean.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Monday morning, Neo runs the prompt. It finds three stacks behind on the AWS provider, edits each program, runs preview, and opens a PR for each clean run. You review the PRs like you would any other dependency bump, merge them, and Neo runs again next Monday.&lt;/p&gt;
&lt;h2 id="what-automations-are-for"&gt;What automations are for&lt;/h2&gt;
&lt;p&gt;The launch includes four built-in templates: a provider freshness check, an encryption audit, a backup audit, and an activity digest. You can also skip the templates and write your own prompt.&lt;/p&gt;
&lt;p&gt;Pick from hourly, daily, weekdays, or weekly cadences. Each automation gets its own page in the &lt;strong&gt;Automations&lt;/strong&gt; tab, where you can edit the prompt, change the schedule, run it once on demand, or pause it.&lt;/p&gt;
&lt;h2 id="safe-by-default"&gt;Safe by default&lt;/h2&gt;
&lt;p&gt;Automations default to two settings that fit recurring work. Approval mode is &lt;a href="https://www.pulumi.com/docs/ai/tasks/#task-modes"&gt;&lt;strong&gt;auto&lt;/strong&gt;&lt;/a&gt;, so a run doesn&amp;rsquo;t wait for human confirmation between steps. Permission mode is &lt;a href="https://www.pulumi.com/docs/ai/tasks/#task-modes"&gt;&lt;strong&gt;read-only&lt;/strong&gt;&lt;/a&gt;, so a run can read state and propose changes through pull requests but can&amp;rsquo;t apply changes directly. You can override either default per automation.&lt;/p&gt;
&lt;h2 id="how-automations-fit-with-the-rest-of-neo"&gt;How automations fit with the rest of Neo&lt;/h2&gt;
&lt;p&gt;A scheduled task uses the same context as an interactive Neo task. &lt;a href="https://www.pulumi.com/docs/ai/settings/"&gt;Custom Instructions&lt;/a&gt; at the organization and project level apply, so a scheduled run respects the same naming conventions, tagging policies, and architecture rules your team has written down.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/"&gt;MCP integrations&lt;/a&gt; and &lt;a href="https://www.pulumi.com/docs/ai/integrations/cli/"&gt;CLI integrations&lt;/a&gt; work in scheduled tasks the same way they work in interactive ones, so a weekly drift check can query AWS through the &lt;code&gt;aws&lt;/code&gt; CLI, file &lt;a href="https://linear.app/"&gt;Linear&lt;/a&gt; issues, and link related &lt;a href="https://www.pagerduty.com/"&gt;PagerDuty&lt;/a&gt; incidents. Scheduled tasks also run with the &lt;a href="https://www.pulumi.com/docs/administration/access-identity/rbac/"&gt;RBAC permissions&lt;/a&gt; of the user who scheduled them, checked at run time; if permissions change between scheduling and execution, the new permissions apply.&lt;/p&gt;
&lt;h2 id="try-it-out"&gt;Try it out&lt;/h2&gt;
&lt;p&gt;Open Neo in &lt;a href="https://www.pulumi.com/product/pulumi-cloud/"&gt;Pulumi Cloud&lt;/a&gt;, switch to the &lt;strong&gt;Automations&lt;/strong&gt; tab, and pick a template or write your own prompt. The &lt;a href="https://www.pulumi.com/docs/ai/automations/"&gt;automations docs&lt;/a&gt; cover the form, scheduling options, and per-automation overrides.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.pulumi.com/blog/neo-automations/neo-freshness.check.png" alt="Setting up a scheduled task for Pulumi Neo"&gt;&lt;/p&gt;
&lt;p&gt;Today&amp;rsquo;s launch is part of a &lt;a href="https://www.pulumi.com/releases/agentic-infrastructure-era/"&gt;bigger story&lt;/a&gt;. Read our launch-day piece on &lt;a href="https://www.pulumi.com/blog/the-agentic-infrastructure-era/"&gt;the agentic infrastructure era&lt;/a&gt; for the broader vision, and the &lt;a href="https://www.pulumi.com/blog/neo-integrations/"&gt;Neo Integrations post&lt;/a&gt; for the third-party tools and CLIs your automations can use.&lt;/p&gt;
&lt;p&gt;As always, we&amp;rsquo;d love to hear what you think — and if you have any suggestions for automations that&amp;rsquo;d make Neo even better, file an issue in &lt;a href="https://github.com/pulumi/pulumi-cloud-requests/issues/new/choose"&gt;pulumi-cloud-requests&lt;/a&gt;.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>features</category><category>pulumi-neo</category></item><item><title>Neo, Now in the Terminal</title><link>https://www.pulumi.com/blog/pulumi-neo-cli/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/pulumi-neo-cli/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/pulumi-neo-cli/index.png" /&gt;
&lt;p&gt;Since launching &lt;a href="https://www.pulumi.com/blog/pulumi-neo/"&gt;Pulumi Neo&lt;/a&gt;, over 4,500 organizations have used it to delegate real infrastructure work: scaffolding, migrating, investigating, operationalizing, and more. Though that usage has come entirely through Pulumi Cloud, we know a large portion of Pulumi users live in the terminal, and increasingly that&amp;rsquo;s where AI tools run too. Now we&amp;rsquo;re bringing Neo there.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pulumi neo&lt;/code&gt; brings the same Neo experience you&amp;rsquo;ve had in Pulumi Cloud to your terminal. Running locally means there&amp;rsquo;s no separate branch to push, no credentials to provision, and no context to paste: Neo picks up the setup you already have.&lt;/p&gt;
&lt;p&gt;&lt;img src="tui.png" alt="pulumi neo working through a Kubernetes cluster check, with Flux GitOps state verified and a TODO list in progress"&gt;&lt;/p&gt;
&lt;h2 id="what-local-execution-unlocks"&gt;What local execution unlocks&lt;/h2&gt;
&lt;p&gt;Neo inherits your setup when it runs locally. The CLIs you&amp;rsquo;ve authenticated, the environment variables and kubeconfigs you&amp;rsquo;ve configured, and the project you&amp;rsquo;re editing right now are all available without any setup on your part. That means Neo can run the same commands you would, against the same systems you have access to.&lt;/p&gt;
&lt;p&gt;That makes &lt;code&gt;pulumi neo&lt;/code&gt; a fit for paired, interactive sessions where you and Neo work through a problem together. For asynchronous, autonomous tasks you set up and come back to, Pulumi Cloud Neo is still the surface to reach for. Both reach the same Neo.&lt;/p&gt;
&lt;p&gt;You can also hand tasks to Neo from other agent sessions. Simply ask your agent, such as Claude Code or Codex, to hand the task off to Neo, and the &lt;a href="https://github.com/pulumi/agent-skills/tree/main/delegation"&gt;Neo handoff skill&lt;/a&gt; packages the current thread (goal, repo pointers, conversation summary) and starts a Neo task using &lt;code&gt;pulumi neo&lt;/code&gt; under the hood. This works anywhere skills are supported, without leaving your current session.&lt;/p&gt;
&lt;h2 id="what-carries-over"&gt;What carries over&lt;/h2&gt;
&lt;p&gt;Local tools and context are what&amp;rsquo;s new. The full set of controls you have in Pulumi Cloud Neo applies in the terminal: approval modes (manual, balanced, auto) for tool calls, permission modes (default, read-only) for what Neo can change, and &lt;a href="https://www.pulumi.com/docs/ai/tasks/#plan-mode"&gt;Plan Mode&lt;/a&gt; for research and planning before execution.&lt;/p&gt;
&lt;p&gt;Integrations carry over too. The &lt;a href="https://www.pulumi.com/blog/neo-integration-catalog/"&gt;integration catalog&lt;/a&gt; (connectors to Atlassian, Datadog, Linear, PagerDuty, and others) works the same way from the terminal. Identity, RBAC, and audit all run through your &lt;code&gt;pulumi login&lt;/code&gt;, the same way they do in the console. See the &lt;a href="https://www.pulumi.com/docs/ai/"&gt;Pulumi Neo docs&lt;/a&gt; for details.&lt;/p&gt;
&lt;h2 id="get-started"&gt;Get started&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;pulumi neo&lt;/code&gt; ships with the latest Pulumi CLI. To start a session:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Authenticate to Pulumi Cloud with &lt;code&gt;pulumi login&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;pulumi neo&lt;/code&gt;, or pass an initial prompt: &lt;code&gt;pulumi neo &amp;quot;what's in this stack?&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;pulumi neo&lt;/code&gt; is part of a &lt;a href="https://www.pulumi.com/releases/agentic-infrastructure-era/"&gt;broader launch&lt;/a&gt; on &lt;a href="https://www.pulumi.com/blog/the-agentic-infrastructure-era/"&gt;agentic infrastructure&lt;/a&gt;. See the &lt;a href="https://www.pulumi.com/docs/iac/cli/commands/pulumi_neo/"&gt;&lt;code&gt;pulumi neo&lt;/code&gt; command reference&lt;/a&gt; and the &lt;a href="https://www.pulumi.com/docs/ai/"&gt;Pulumi Neo docs&lt;/a&gt; for details. &lt;a href="https://www.pulumi.com/blog/10-things-you-can-do-with-neo/"&gt;10 things you can do with Neo&lt;/a&gt; is a good starting point for tasks to try. The &lt;a href="https://slack.pulumi.com/"&gt;Pulumi Community Slack&lt;/a&gt; is the place for questions and feedback.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>features</category><category>pulumi-neo</category><category>pulumi-cli</category></item><item><title>Neo Integrations: MCP Servers and Cloud CLIs</title><link>https://www.pulumi.com/blog/neo-integrations/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/neo-integrations/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-integrations/index.png" /&gt;
&lt;p&gt;&lt;a href="https://www.pulumi.com/product/neo/"&gt;Pulumi Neo&lt;/a&gt; already understands your infrastructure: your code, your stacks, your state. Today we&amp;rsquo;re launching new capabilities that extend Neo&amp;rsquo;s reach in two directions: into the third-party systems your team uses to plan and observe, and out to the cloud CLIs that actually drive your infrastructure.&lt;/p&gt;
&lt;p&gt;The first half is MCP integrations: connections to &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#atlassian-jira-and-confluence"&gt;Atlassian&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#datadog"&gt;Datadog&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#honeycomb"&gt;Honeycomb&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#linear"&gt;Linear&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#pagerduty"&gt;PagerDuty&lt;/a&gt;, and &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#supabase"&gt;Supabase&lt;/a&gt; that show up as tools Neo can call during a &lt;a href="https://www.pulumi.com/docs/ai/tasks/"&gt;task&lt;/a&gt;. The second half is CLI integrations: scopable access to &lt;a href="https://www.pulumi.com/docs/ai/integrations/cli/#supported-clis"&gt;&lt;code&gt;aws&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/ai/integrations/cli/#supported-clis"&gt;&lt;code&gt;gcloud&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/ai/integrations/cli/#supported-clis"&gt;&lt;code&gt;az&lt;/code&gt;&lt;/a&gt;, and &lt;a href="https://www.pulumi.com/docs/ai/integrations/cli/#supported-clis"&gt;&lt;code&gt;kubectl&lt;/code&gt;&lt;/a&gt;. Both are configured once at the org level and available to every Neo task in the organization.&lt;/p&gt;
&lt;h2 id="integrations-in-action"&gt;Integrations in action&lt;/h2&gt;
&lt;p&gt;A PagerDuty alert just fired: RDS storage on &lt;code&gt;payments-prod&lt;/code&gt; is at 90% and climbing. You want to know how fast, and whether you can buy yourself any runway before it fills.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; Neo, RDS storage on &lt;code&gt;payments-prod&lt;/code&gt; just paged at 90%. How fast is it growing, and what do we have configured?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Neo pulls the active incident from PagerDuty, decides on its own to check Datadog for the storage-utilization curve over the last 30 days, and runs &lt;code&gt;aws rds describe-db-instances --db-instance-identifier payments-prod&lt;/code&gt; through your &lt;code&gt;production-aws&lt;/code&gt; CLI integration (the name your org gave its production AWS credentials). The database has been growing about 5 GB a day. The instance has &lt;code&gt;AllocatedStorage&lt;/code&gt; at 200 GB and &lt;code&gt;MaxAllocatedStorage&lt;/code&gt; also at 200, so storage autoscaling is effectively disabled. At current growth, the disk fills in three days.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; Bump max allocated storage to 500. Open a PR.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Neo edits the &lt;code&gt;payments&lt;/code&gt; stack&amp;rsquo;s Pulumi program to raise &lt;code&gt;maxAllocatedStorage&lt;/code&gt; from 200 to 500 on the RDS instance, runs &lt;code&gt;pulumi preview&lt;/code&gt; to confirm the change is scoped to that one resource, and opens a pull request with the diff, the preview output, and links to the PagerDuty incident and the Datadog graph. You review the PR and merge it. Pulumi applies the change, and Neo posts the resolution back to PagerDuty.&lt;/p&gt;
&lt;p&gt;With three integrations and one conversation, the change is reviewed, shipped, and the alert resolved a few minutes later.&lt;/p&gt;
&lt;h2 id="mcp-integrations-context-from-your-existing-tools"&gt;MCP integrations: context from your existing tools&lt;/h2&gt;
&lt;p&gt;The launch catalog covers six services that show up most often in infrastructure investigations: &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#atlassian-jira-and-confluence"&gt;Atlassian&lt;/a&gt; for Jira issues and Confluence runbooks, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#datadog"&gt;Datadog&lt;/a&gt; for metrics and logs, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#honeycomb"&gt;Honeycomb&lt;/a&gt; for traces, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#linear"&gt;Linear&lt;/a&gt; for issue tracking, &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#pagerduty"&gt;PagerDuty&lt;/a&gt; for incidents and on-call schedules, and &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/#supabase"&gt;Supabase&lt;/a&gt; for managed database changes. Each connects Neo to a remote MCP server hosted by the provider, so the agent has access to the full set of tools the vendor chooses to expose.&lt;/p&gt;
&lt;p&gt;Integrations can be enabled by organization administrators on the Neo Settings page. Once configured, they&amp;rsquo;re available to every Neo task in your organization.&lt;/p&gt;
&lt;p&gt;&lt;img src="mcp-integrations.png" alt="Neo Settings showing the six available MCP integrations: Atlassian, Datadog, Honeycomb, Linear, PagerDuty, and Supabase"&gt;&lt;/p&gt;
&lt;h2 id="cli-integrations-live-cloud-insights"&gt;CLI integrations: live cloud insights&lt;/h2&gt;
&lt;p&gt;CLI integrations cover what MCP doesn&amp;rsquo;t reach: live cloud insights. With AWS, GCP, Azure, or Kubernetes connected, Neo can check live database utilization, look up the current state of a running service, verify a service quota before scaling, or reach into resources that aren&amp;rsquo;t managed by any Pulumi stack.&lt;/p&gt;
&lt;p&gt;An admin enables a CLI integration the same way as an MCP one, from your org&amp;rsquo;s Neo settings. Each integration gets a name your team chooses, like &lt;code&gt;production-aws&lt;/code&gt; or &lt;code&gt;staging-gcloud&lt;/code&gt;, and tasks reference that name to tell Neo which environment to reach into. You can connect multiple instances of the same CLI (for example, &lt;code&gt;production-aws&lt;/code&gt; and &lt;code&gt;staging-aws&lt;/code&gt;) so Neo can investigate staging without touching production. Credentials are backed by &lt;a href="https://www.pulumi.com/docs/esc/"&gt;Pulumi ESC&lt;/a&gt; environments your org owns; the &lt;a href="https://www.pulumi.com/docs/ai/integrations/cli/"&gt;CLI integrations docs&lt;/a&gt; walk through setup.&lt;/p&gt;
&lt;p&gt;&lt;img src="cli-integrations.png" alt="Neo Settings CLI tools tab with two connected AWS and Kubernetes integrations and four available CLI types: AWS, Google Cloud, Azure, and Kubernetes"&gt;&lt;/p&gt;
&lt;h2 id="per-task-control-and-failure-handling"&gt;Per-task control and failure handling&lt;/h2&gt;
&lt;p&gt;Both surfaces default to org-wide availability, with per-task overrides. Before starting a task, you can toggle individual MCP integrations off. The toggles only affect that task; the org-level configuration is unchanged.&lt;/p&gt;
&lt;p&gt;&lt;img src="per-task-toggles.png" alt="Neo task composer showing the Integrations menu with toggles for the Linear MCP server and two connected CLI integrations"&gt;&lt;/p&gt;
&lt;p&gt;Failures behave the same way for both. If an integration can&amp;rsquo;t be reached, Neo logs a warning, skips it, and continues with the rest. A single broken integration doesn&amp;rsquo;t stop a task. CLI integration connect and disconnect events go to your organization&amp;rsquo;s audit log, and Neo&amp;rsquo;s individual CLI calls appear in the task transcript alongside its other tool calls.&lt;/p&gt;
&lt;h2 id="try-it-out"&gt;Try it out&lt;/h2&gt;
&lt;p&gt;Both MCP and CLI integrations are available now for Neo-enabled organizations. Open your org&amp;rsquo;s Neo settings, connect the MCP server or CLI of your choice, and let Neo do the next investigation against the tools you already use. The &lt;a href="https://www.pulumi.com/docs/ai/integrations/mcp/"&gt;MCP integrations docs&lt;/a&gt; and &lt;a href="https://www.pulumi.com/docs/ai/integrations/cli/"&gt;CLI integrations docs&lt;/a&gt; walk through credential setup for each one, and the &lt;a href="https://www.pulumi.com/docs/ai/integrations/"&gt;Neo integrations hub&lt;/a&gt; ties it all together.&lt;/p&gt;
&lt;p&gt;Today&amp;rsquo;s launch is part of a &lt;a href="https://www.pulumi.com/releases/agentic-infrastructure-era/"&gt;bigger story&lt;/a&gt;. Read our launch-day piece on &lt;a href="https://www.pulumi.com/blog/the-agentic-infrastructure-era/"&gt;the agentic infrastructure era&lt;/a&gt; for the broader vision, and the &lt;a href="https://www.pulumi.com/blog/pulumi-neo-cli/"&gt;Neo CLI launch post&lt;/a&gt; for Neo&amp;rsquo;s new home in the terminal.&lt;/p&gt;
&lt;p&gt;As always, we&amp;rsquo;d love to hear what you think — and if you have any suggestions for integrations that&amp;rsquo;d make Neo even better, file an issue in &lt;a href="https://github.com/pulumi/pulumi-cloud-requests/issues/new/choose"&gt;pulumi-cloud-requests&lt;/a&gt;.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>features</category><category>pulumi-neo</category><category>esc</category></item><item><title>Neo Plan Mode: Iterate Before You Execute</title><link>https://www.pulumi.com/blog/neo-plan-mode/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/neo-plan-mode/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-plan-mode/index.png" /&gt;
&lt;p&gt;Infrastructure work ranges from simple updates to complex multi-stack operations. For straightforward tasks, jumping straight to execution is often fine. But complex tasks benefit from deliberate upfront thinking: understanding what exists, identifying dependencies, and agreeing on an approach before anything changes. Today we&amp;rsquo;re launching Plan Mode, a dedicated experience for collaborating with Neo on a detailed plan before execution begins.&lt;/p&gt;
&lt;h2 id="plan-mode"&gt;Plan Mode&lt;/h2&gt;
&lt;p&gt;Without dedicated planning, Neo balances planning with progress toward execution. That works well for many tasks, but complex operations benefit from more thorough upfront discovery. Plan Mode now makes upfront deliberation a first-class workflow, where instead of focusing on getting to execution, Neo focuses entirely on discovery and synthesis until you explicitly approve the plan.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;p&gt;Enter Plan Mode by selecting the plan button when starting a task. Neo shifts its behavior:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Discovery&lt;/strong&gt;: Neo investigates your environment — examining existing infrastructure, reading relevant code, checking dependencies, and researching patterns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Synthesis&lt;/strong&gt;: From that research, Neo produces a plan explaining what it will do and why. The plan references specific things Neo discovered, like a particular stack configuration or dependency.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refinement&lt;/strong&gt;: You refine the plan through normal conversation, challenging assumptions, asking for an alternative approach, or requesting more detail on a specific area.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Approval&lt;/strong&gt;: Once you&amp;rsquo;re satisfied, you approve the plan and execution begins. Neo carries forward everything it learned during discovery, so the transition from planning to execution is seamless.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="when-to-use-it"&gt;When to use it&lt;/h2&gt;
&lt;p&gt;Plan Mode is opt-in. You choose it when you want to work through an approach before committing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Complex multi-stack operations&lt;/strong&gt; where understanding dependencies matters&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unfamiliar infrastructure&lt;/strong&gt; where discovery reduces churn&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autonomous execution&lt;/strong&gt; where plan approval is your key control point before Neo runs without step-by-step oversight&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="get-started"&gt;Get started&lt;/h2&gt;
&lt;p&gt;Plan Mode is available now for all Pulumi Cloud organizations. It works with any &lt;a href="https://www.pulumi.com/docs/ai/tasks/#task-modes"&gt;task mode&lt;/a&gt;, so you can pair thorough upfront planning with whatever level of execution autonomy fits the situation.&lt;/p&gt;
&lt;p&gt;To try it, &lt;a href="https://app.pulumi.com/neo"&gt;open Neo in Pulumi Cloud&lt;/a&gt;. For more details, see the &lt;a href="https://www.pulumi.com/docs/ai/tasks/#plan-mode"&gt;Plan Mode documentation&lt;/a&gt;.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>pulumi-neo</category><category>ai</category><category>features</category></item><item><title>Pulumi Neo Now Supports AGENTS.md</title><link>https://www.pulumi.com/blog/pulumi-neo-now-supports-agentsmd/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/pulumi-neo-now-supports-agentsmd/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/pulumi-neo-now-supports-agentsmd/index.png" /&gt;
&lt;p&gt;Neo now reads &lt;a href="https://agents.md/"&gt;AGENTS.md&lt;/a&gt; files, the open standard for giving AI coding tools context about your project. If you&amp;rsquo;re already using AGENTS.md, Neo will pick up those same instructions automatically.&lt;/p&gt;
&lt;h2 id="the-problem-agentsmd-solves"&gt;The problem AGENTS.md solves&lt;/h2&gt;
&lt;p&gt;Every codebase has conventions that aren&amp;rsquo;t captured in linters or formatters. Maybe your team uses a specific naming pattern for infrastructure resources. Maybe there&amp;rsquo;s a particular way you structure tests, or commands that need to run in a certain order. These are the things you&amp;rsquo;d explain to a new team member, and now you can explain them to AI tools too.&lt;/p&gt;
&lt;p&gt;Without something like AGENTS.md, you end up repeating yourself. Every conversation starts with &amp;ldquo;remember to use TypeScript&amp;rdquo; or &amp;ldquo;make sure you add the environment tag.&amp;rdquo; It&amp;rsquo;s tedious, and things slip through.&lt;/p&gt;
&lt;p&gt;AGENTS.md gives these instructions a home. You write them once, commit the file to your repo, and any tool that supports the format picks them up automatically.&lt;/p&gt;
&lt;h2 id="what-to-put-in-yours"&gt;What to put in yours&lt;/h2&gt;
&lt;p&gt;Think about what you&amp;rsquo;d tell someone on their first day working in the codebase. How do you run tests? Are there naming conventions? Any gotchas they should know about?&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s an example for a Pulumi project:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# Infrastructure conventions
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Run tests with &lt;span class="sb"&gt;`make test`&lt;/span&gt;. This spins up LocalStack, so Docker must be running.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Stacks are named &lt;span class="sb"&gt;`{service}-{region}-{env}`&lt;/span&gt; (e.g., &lt;span class="sb"&gt;`payments-us-west-2-prod`&lt;/span&gt;).
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Only the platform team deploys to prod stacks.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;All resources need these tags: &lt;span class="sb"&gt;`cost-center`&lt;/span&gt;, &lt;span class="sb"&gt;`team`&lt;/span&gt;, &lt;span class="sb"&gt;`environment`&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Reusable components live in &lt;span class="sb"&gt;`components/`&lt;/span&gt;. Check there before writing
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;something new.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There&amp;rsquo;s no required structure, just markdown. Some teams write a few lines, others write detailed guides. Start small and add things as you notice yourself repeating instructions.&lt;/p&gt;
&lt;h2 id="how-neo-handles-agentsmd"&gt;How Neo handles AGENTS.md&lt;/h2&gt;
&lt;p&gt;When you point Neo at a repository, it reads any AGENTS.md file it finds and applies those instructions to its work. You don&amp;rsquo;t need to mention the file or remind Neo about your conventions.&lt;/p&gt;
&lt;p&gt;If you have a monorepo, you can put AGENTS.md files in subdirectories too. Neo uses the nearest one to wherever it&amp;rsquo;s working, so you can have general instructions at the root and more specific ones in subpackages.&lt;/p&gt;
&lt;p&gt;Your instructions in conversation always take precedence, so you can override the file when you need to. If you&amp;rsquo;ve also set up &lt;a href="https://www.pulumi.com/docs/ai/settings/#custom-instructions"&gt;Custom Instructions&lt;/a&gt; at the organization level, Neo applies those first, then AGENTS.md on top.&lt;/p&gt;
&lt;h2 id="works-with-the-tools-youre-already-using"&gt;Works with the tools you&amp;rsquo;re already using&lt;/h2&gt;
&lt;p&gt;AGENTS.md is an open format supported by most AI coding tools: Cursor, Windsurf, GitHub Copilot, Zed, and now Neo. If your team uses different tools for different tasks, they&amp;rsquo;ll all follow the same project conventions without any extra configuration.&lt;/p&gt;
&lt;p&gt;The format is managed by the Agentic AI Foundation under the Linux Foundation, and it&amp;rsquo;s already in use in over 60,000 open source projects. See &lt;a href="https://agents.md/"&gt;agents.md&lt;/a&gt; for the full specification.&lt;/p&gt;
&lt;h2 id="get-started"&gt;Get started&lt;/h2&gt;
&lt;p&gt;Add an AGENTS.md file to your repository and Neo will start using it on your next task. For more on configuring Neo, including organization-wide Custom Instructions and Slash Commands, see the &lt;a href="https://www.pulumi.com/docs/ai/settings/"&gt;Settings documentation&lt;/a&gt;.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>pulumi-neo</category><category>ai</category><category>features</category></item><item><title>Neo: Share Tasks for Collaborative AI Infrastructure Operations</title><link>https://www.pulumi.com/blog/neo-task-sharing/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/neo-task-sharing/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-task-sharing/index.png" /&gt;
&lt;p&gt;Neo shows its work, but until now that context was only viewable by the user that initiated the conversation. When you wanted a teammate&amp;rsquo;s input on a decision Neo made, you had to describe it in Slack or screenshot fragments of the conversation. Today we&amp;rsquo;re introducing task sharing: share a read-only view of any Neo task with anyone in your organization, full context preserved.&lt;/p&gt;
&lt;p&gt;To share a Neo task, click the share button to generate a read-only link, then send it to a teammate. They see the complete picture: the original prompt, Neo&amp;rsquo;s reasoning process, the actions it took, and the outcome. Instead of writing up what happened and losing detail in the retelling, you share the task itself.&lt;/p&gt;
&lt;div class="my-4"&gt;
&lt;video class="flex outline-none rounded-lg w-full" title="Sharing a Neo task"
autoplay muted playsinline
loop &gt;
&lt;source src="neo-task-share.mp4" /&gt;
&lt;/video&gt;
&lt;/div&gt;
&lt;p&gt;We built this with security as a core constraint. The original task system enforced strict RBAC, ensuring users could only see and act on resources they had permission to access. Task sharing preserves these guarantees. Viewers can see the conversation with Neo, but they cannot trigger any actions, and links within the shared task to stacks or resources still enforce the viewer&amp;rsquo;s existing permissions.&lt;/p&gt;
&lt;p&gt;The feature is available now. The next time you want a second opinion or need to show a colleague how you solved something, share the task. You&amp;rsquo;re no longer working alone.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>pulumi-neo</category><category>ai</category><category>features</category></item><item><title>Pulumi Agent Skills: Best practices and more for AI coding assistants</title><link>https://www.pulumi.com/blog/pulumi-agent-skills/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/pulumi-agent-skills/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/pulumi-agent-skills/index.png" /&gt;
&lt;p&gt;AI coding assistants have transformed how developers write software, including infrastructure code. Tools like Claude Code, Cursor, and GitHub Copilot can generate code, explain complex systems, and automate tedious tasks. But when it comes to infrastructure, these tools often produce code that works but misses the mark on patterns that matter: proper secret handling, correct resource dependencies, idiomatic component structure, and the dozens of other details that separate working infrastructure from production-ready infrastructure.&lt;/p&gt;
&lt;p&gt;We built &lt;a href="https://www.pulumi.com/product/neo/"&gt;Neo&lt;/a&gt; for teams that want deep Pulumi expertise combined with organizational context and deployment governance. But developers have preferred tools, and we want people to succeed with Pulumi wherever they work. Some teams live in Claude Code. Others use Cursor, Copilot, Codex, Gemini CLI, or other platforms. That is why we are releasing Pulumi Agent Skills, a collection of packaged expertise that teaches any AI coding assistant how to work with Pulumi the way an experienced practitioner would.&lt;/p&gt;
&lt;h2 id="what-are-agent-skills"&gt;What are agent skills?&lt;/h2&gt;
&lt;p&gt;Skills are structured knowledge packages that follow the open &lt;a href="https://agentskills.io"&gt;Agent Skills&lt;/a&gt; specification. They work across multiple AI coding platforms including Claude Code, GitHub Copilot, Cursor, VS Code, Codex, and Gemini CLI. When you install Pulumi skills, your AI assistant gains access to detailed workflows, code patterns, and decision trees for common infrastructure tasks.&lt;/p&gt;
&lt;h2 id="available-pulumi-skills"&gt;Available Pulumi skills&lt;/h2&gt;
&lt;p&gt;We are launching a set of skills organized into two plugin groups: authoring and migration. You can install all skills at once or choose specific plugin groups based on your needs.&lt;/p&gt;
&lt;h3 id="authoring-skills"&gt;Authoring skills&lt;/h3&gt;
&lt;p&gt;This plugin includes four skills focused on code quality, reusability, and configuration.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pulumi best practices&lt;/strong&gt; encodes the patterns that prevent common mistakes. It covers output handling, component structure, secrets management, safe refactoring with aliases, and deployment workflows. The skill flags anti-patterns that can cause issues with preview, dependencies, and production deployments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pulumi Component&lt;/strong&gt; provides a complete guide for authoring ComponentResource classes. The skill covers designing component interfaces, multi-language support, and distribution. It teaches assistants how to build reusable infrastructure abstractions that work across TypeScript, Python, Go, C#, Java, and YAML.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pulumi Automation API&lt;/strong&gt; covers programmatic orchestration of Pulumi operations. The skill explains when to use Automation API versus the CLI, the tradeoffs between local source and inline programs, and patterns for multi-stack deployments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pulumi ESC&lt;/strong&gt; covers centralized secrets and configuration management. The skill guides assistants through setting up dynamic OIDC credentials, composing environments, and integrating secrets into Pulumi programs and other applications.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="migration-skills"&gt;Migration skills&lt;/h3&gt;
&lt;p&gt;Convert and import infrastructure from other tools to Pulumi. This plugin includes four skills covering complete migration workflows, not just syntax translation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Terraform to Pulumi&lt;/strong&gt; walks through the full migration workflow. It handles state translation, provider version alignment, and the iterative process of achieving a clean &lt;code&gt;pulumi preview&lt;/code&gt; with no unexpected changes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CloudFormation to Pulumi&lt;/strong&gt; covers the complete AWS CloudFormation migration workflow, from template conversion and stack import to handling CloudFormation-specific constructs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CDK to Pulumi&lt;/strong&gt; covers the complete AWS CDK migration workflow end to end, from conversion and import to handling CDK-specific constructs like Lambda-backed custom resources and cross-stack references.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Azure to Pulumi&lt;/strong&gt; covers the complete Azure Resource Manager and Bicep migration workflow, handling template conversion and resource import with guidance on achieving zero-diff validation.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-install"&gt;How to install&lt;/h2&gt;
&lt;h3 id="claude-code-plugin-marketplace"&gt;Claude Code plugin marketplace&lt;/h3&gt;
&lt;p&gt;For Claude Code users, the plugin system provides the simplest installation experience:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude plugin marketplace add pulumi/agent-skills
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude plugin install pulumi-authoring &lt;span class="c1"&gt;# Install authoring skills&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude plugin install pulumi-migration &lt;span class="c1"&gt;# Install migration skills&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can install both plugin groups or choose only the ones you need.&lt;/p&gt;
&lt;h3 id="universal-installation"&gt;Universal installation&lt;/h3&gt;
&lt;p&gt;For Cursor, GitHub Copilot, VS Code, Codex, Gemini and other platforms, use the universal &lt;a href="https://agentskills.io"&gt;Agent Skills&lt;/a&gt; CLI:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npx skills add pulumi/agent-skills --skill &lt;span class="s1"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This works across all platforms that support the Agent Skills specification.&lt;/p&gt;
&lt;h2 id="using-skills"&gt;Using skills&lt;/h2&gt;
&lt;p&gt;Once installed, skills activate automatically based on context. When you ask your assistant to help migrate a Terraform project, it draws on the Terraform skill&amp;rsquo;s workflow. When you are debugging why resources are being recreated unexpectedly, the best practices skill helps the assistant check for missing aliases.&lt;/p&gt;
&lt;p&gt;In Codex and Claude Code, you can invoke skills directly via slash commands.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/pulumi-terraform-to-pulumi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Or describe what you need in natural language:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Help me migrate this CDK application to Pulumi&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Review this Pulumi code for best practices issues&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Create a reusable component for a web service with load balancer&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The assistant will follow the skill&amp;rsquo;s procedures, ask clarifying questions when needed, and produce output that reflects Pulumi best practices rather than generic code generation.&lt;/p&gt;
&lt;h2 id="get-started"&gt;Get started&lt;/h2&gt;
&lt;p&gt;We expect this collection to grow. If you have Pulumi expertise worth packaging, whether provider-specific patterns, debugging workflows, or operational practices, we welcome contributions. See the &lt;a href="https://github.com/pulumi/agent-skills/blob/main/CONTRIBUTING.md"&gt;contributing guide&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;The skills are available now in the &lt;a href="https://github.com/pulumi/agent-skills"&gt;agent-skills repository&lt;/a&gt;. Install them in your preferred AI coding environment and let us know what you build.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>platform-engineering</category><category>features</category><category>claude-code</category><category>codex</category><category>ai-agents</category></item><item><title>Neo: Zero-downtime migration from CDK, Terraform &amp; Azure ARM</title><link>https://www.pulumi.com/blog/neo-migration/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/neo-migration/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-migration/index.png" /&gt;
&lt;p&gt;The barrier to migrating to Pulumi has always been the infrastructure you already have. Your existing resources can&amp;rsquo;t be disrupted, and manually importing them into a new tool is risky and time-consuming. Today, we&amp;rsquo;re excited to share how Neo removes this barrier entirely with automated, zero-downtime migration to Pulumi from AWS CDK, AWS CloudFormation, Terraform, CDKTF, and Azure ARM templates.&lt;/p&gt;
&lt;h2 id="why-iac-migrations-are-hard"&gt;Why IaC migrations are hard&lt;/h2&gt;
&lt;p&gt;The promise of Infrastructure as Code is that your code perfectly describes your running infrastructure. But switching IaC tools breaks this promise in dangerous ways.&lt;/p&gt;
&lt;p&gt;When you rewrite your infrastructure code in a new tool, you have two choices, both problematic. You can destroy and recreate all your resources to match the new code, accepting downtime and risk. Or you can try to import existing resources, which requires perfect knowledge of how every resource maps between the old and new systems. Many teams get stuck here, wanting Pulumi&amp;rsquo;s modern platform but unable to safely make the switch.&lt;/p&gt;
&lt;h2 id="neos-insight-state-knowledge-enables-perfect-migrations"&gt;Neo&amp;rsquo;s insight: State knowledge enables perfect migrations&lt;/h2&gt;
&lt;p&gt;The key to safe migration isn&amp;rsquo;t just converting code - it&amp;rsquo;s understanding the complete relationship between your existing IaC tool&amp;rsquo;s state and your actual cloud resources. Each IaC tool maintains this relationship differently: CDK through CloudFormation stacks, Terraform/CDKTF through state files, and ARM through Azure deployments. But they all have complete knowledge of what they manage.&lt;/p&gt;
&lt;p&gt;Neo leverages this existing state knowledge to orchestrate perfect resource transitions. Instead of asking you to manually find resource IDs and construct migration commands, Neo reads your current tool&amp;rsquo;s state, discovers every resource&amp;rsquo;s physical identity, and brings them under Pulumi management. This isn&amp;rsquo;t just automation - it&amp;rsquo;s using the source tool&amp;rsquo;s own knowledge against the migration problem.&lt;/p&gt;
&lt;p&gt;In practice, this means Neo can bridge the gap between how tools name resources and where they actually live. A Lambda function that CDK knows as &lt;code&gt;OrderHandler9I0J1K2L&lt;/code&gt; actually exists in AWS as &lt;code&gt;my-app-OrderHandler-9I0J1K2L&lt;/code&gt;, while a Terraform resource at address &lt;code&gt;aws_instance.web[2]&lt;/code&gt; maps to EC2 instance &lt;code&gt;i-0abc123def456&lt;/code&gt;. Neo understands these mappings and handles the complex cases like composite IDs (&lt;code&gt;FunctionName|StatementId&lt;/code&gt;), resource references, and dependency chains that must be migrated in order.&lt;/p&gt;
&lt;p&gt;Because Neo uses the source tool&amp;rsquo;s own state knowledge, your infrastructure doesn&amp;rsquo;t change at all during migration. Not a single resource is modified, recreated, or even touched. We&amp;rsquo;re simply transferring ownership from one IaC tool to another.&lt;/p&gt;
&lt;p&gt;This approach delivers three critical guarantees:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Zero downtime&lt;/strong&gt;: Resources are never deleted or recreated&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zero risk&lt;/strong&gt;: Since nothing changes, you can abandon the migration at any point without consequence&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zero surprises&lt;/strong&gt;: Preview confirms no infrastructure changes before you commit&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="migration-in-action-four-tools-one-approach"&gt;Migration in action: Four tools, one approach&lt;/h2&gt;
&lt;p&gt;Neo adapts its migration strategy to each tool&amp;rsquo;s unique characteristics while maintaining the same zero-downtime guarantee. Let&amp;rsquo;s explore how Neo handles migrations from each major IaC tool.&lt;/p&gt;
&lt;h2 id="aws-cdk-to-pulumi"&gt;AWS CDK to Pulumi&lt;/h2&gt;
&lt;p&gt;For teams using AWS CDK, Neo leverages the CloudFormation layer that underpins CDK deployments. CDK&amp;rsquo;s architecture actually makes migration straightforward: since CDK synthesizes to CloudFormation templates, Neo can read the deployed stacks directly to understand every resource and its configuration. For detailed migration steps, see our &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-cdk/"&gt;CDK migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The challenge with CDK migrations isn&amp;rsquo;t the CloudFormation layer - it&amp;rsquo;s the cryptic resource naming. CDK generates logical IDs like &lt;code&gt;OrdersTableA7B2C3D4&lt;/code&gt; that map to physical resources with completely different names. These mappings are buried in CloudFormation metadata, and getting them wrong means either orphaning resources or accidentally creating duplicates. Neo navigates this complexity by reading CloudFormation&amp;rsquo;s own stack outputs and resource metadata, discovering the exact physical ID for every logical resource.&lt;/p&gt;
&lt;p&gt;CDK also introduces complexity through its construct hierarchy. A single high-level construct might expand into dozens of CloudFormation resources, each with dependencies and references to others. Neo preserves these relationships during migration, ensuring that IAM roles still reference the right Lambda functions, API Gateway deployments still point to the correct stages, and security groups maintain their exact rules. The migration completes with your infrastructure unchanged and Pulumi&amp;rsquo;s preview confirming zero modifications.&lt;/p&gt;
&lt;a href="https://app.pulumi.com/neo?prompt=Leverage&amp;#43;the&amp;#43;cdk-to-pulumi&amp;#43;skill&amp;#43;to&amp;#43;migrate&amp;#43;my&amp;#43;CDK&amp;#43;application&amp;#43;to&amp;#43;a&amp;#43;Pulumi&amp;#43;application" class="neo-card"&gt;
&lt;div class="neo-card-content"&gt;
&lt;div class="neo-card-icon"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--regular" fill="currentColor" role="img" aria-label="Pulumi Neo AI icon"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#c-pulumi-neo-regular"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;div class="neo-card-text"&gt;
&lt;span class="neo-card-subtitle"&gt;Start a Neo task&lt;/span&gt;
&lt;span class="neo-card-title"&gt;Migrate your CDK application&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="neo-card-arrow"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--bold" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#p-caret-right-bold"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;h2 id="aws-cloudformation-to-pulumi"&gt;AWS CloudFormation to Pulumi&lt;/h2&gt;
&lt;p&gt;For teams using CloudFormation directly (rather than through CDK), Neo provides a streamlined migration path. CloudFormation stacks contain complete resource metadata - every resource&amp;rsquo;s logical ID maps to a physical resource in AWS, and CloudFormation tracks these relationships in its stack state. Neo reads this state directly to build a complete picture of your infrastructure. For detailed migration steps, see our &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-cloudformation/"&gt;CloudFormation migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main challenge with CloudFormation migrations is the template language itself. CloudFormation templates use intrinsic functions like &lt;code&gt;!Ref&lt;/code&gt;, &lt;code&gt;!GetAtt&lt;/code&gt;, and &lt;code&gt;!Sub&lt;/code&gt; that create implicit dependencies between resources. A security group might reference a VPC using &lt;code&gt;!Ref MyVpc&lt;/code&gt;, while a Lambda function&amp;rsquo;s role uses &lt;code&gt;!GetAtt LambdaRole.Arn&lt;/code&gt;. Neo evaluates these expressions against the actual deployed stack to resolve every reference to its concrete value.&lt;/p&gt;
&lt;p&gt;CloudFormation also supports features like conditionals, mappings, and nested stacks that add layers of indirection. Neo handles these by examining what actually got deployed rather than trying to interpret every possible template path. The result is Pulumi code that manages your exact infrastructure configuration - not a theoretical interpretation of your template. The migration completes with &lt;code&gt;pulumi preview&lt;/code&gt; confirming zero changes to your running resources.&lt;/p&gt;
&lt;a href="https://app.pulumi.com/neo?prompt=Leverage&amp;#43;the&amp;#43;cloudformation-to-pulumi&amp;#43;skill&amp;#43;to&amp;#43;migrate&amp;#43;my&amp;#43;CloudFormation&amp;#43;stack&amp;#43;to&amp;#43;a&amp;#43;Pulumi&amp;#43;application" class="neo-card"&gt;
&lt;div class="neo-card-content"&gt;
&lt;div class="neo-card-icon"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--regular" fill="currentColor" role="img" aria-label="Pulumi Neo AI icon"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#c-pulumi-neo-regular"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;div class="neo-card-text"&gt;
&lt;span class="neo-card-subtitle"&gt;Start a Neo task&lt;/span&gt;
&lt;span class="neo-card-title"&gt;Migrate your CloudFormation stack&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="neo-card-arrow"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--bold" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#p-caret-right-bold"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;h2 id="terraform-to-pulumi"&gt;Terraform to Pulumi&lt;/h2&gt;
&lt;p&gt;Terraform and CDKTF migrations require two transformations: converting state to establish Pulumi&amp;rsquo;s connection to your resources, and transforming HCL configuration into Pulumi code. The state conversion is direct - Neo reads your Terraform state and converts it into Pulumi state, preserving the mappings between resource names and cloud IDs. This ensures Pulumi knows that &lt;code&gt;aws_instance.web[2]&lt;/code&gt; corresponds to EC2 instance &lt;code&gt;i-0abc123def456&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The code transformation analyzes your HCL to generate equivalent Pulumi code. Neo handles Terraform patterns like &lt;code&gt;count&lt;/code&gt; and &lt;code&gt;for_each&lt;/code&gt; loops, module structures, and resource dependencies, recreating them idiomatically in Pulumi. The generated code manages your existing infrastructure without modifications - &lt;code&gt;pulumi preview&lt;/code&gt; confirms zero changes. For complete migration instructions, see our &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-terraform/"&gt;Terraform migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;a href="https://app.pulumi.com/neo?prompt=Leverage&amp;#43;the&amp;#43;terraform-migration&amp;#43;skill&amp;#43;to&amp;#43;migrate&amp;#43;my&amp;#43;Terraform&amp;#43;application&amp;#43;to&amp;#43;a&amp;#43;Pulumi&amp;#43;application" class="neo-card"&gt;
&lt;div class="neo-card-content"&gt;
&lt;div class="neo-card-icon"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--regular" fill="currentColor" role="img" aria-label="Pulumi Neo AI icon"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#c-pulumi-neo-regular"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;div class="neo-card-text"&gt;
&lt;span class="neo-card-subtitle"&gt;Start a Neo task&lt;/span&gt;
&lt;span class="neo-card-title"&gt;Migrate your Terraform application&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="neo-card-arrow"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--bold" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#p-caret-right-bold"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;h2 id="azure-arm-to-pulumi"&gt;Azure ARM to Pulumi&lt;/h2&gt;
&lt;p&gt;ARM templates present unique migration challenges. Unlike CDK and Terraform, which maintain clear separation between code and state, ARM templates blur this line. The template is both the definition and, through deployment history, part of the state tracking. ARM&amp;rsquo;s template expression language, with its concat functions and resource ID constructors, makes it difficult to determine what resources actually exist until deployment time. For step-by-step migration guidance, see our &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-arm/"&gt;ARM migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Neo orchestrates ARM migrations through intelligent AI-driven conversion. When an ARM template uses functions like &lt;code&gt;concat(parameters('appName'), '-plan')&lt;/code&gt;, the conversion process evaluates these expressions using the actual parameter values to generate the correct resource names. Azure resource IDs follow predictable patterns - subscription IDs, resource groups, providers, and resource names - and Neo ensures these are correctly brought under Pulumi management using inline resource specifications directly in the generated code.&lt;/p&gt;
&lt;p&gt;The biggest challenge with ARM migrations is handling the implicit dependencies and resource provider quirks. An App Service might implicitly create a service plan, a SQL database requires a server that might be defined in a linked template, and child resources like application settings need separate migration steps. Neo understands these Azure-specific patterns and generates the appropriate Pulumi code to manage every resource. The migration completes with a zero-diff preview, confirming your exact Azure configuration is preserved while giving you a more maintainable, type-safe way to manage it going forward.&lt;/p&gt;
&lt;a href="https://app.pulumi.com/neo?prompt=Leverage&amp;#43;the&amp;#43;arm-to-pulumi&amp;#43;skill&amp;#43;to&amp;#43;migrate&amp;#43;my&amp;#43;ARM&amp;#43;application&amp;#43;to&amp;#43;a&amp;#43;Pulumi&amp;#43;application" class="neo-card"&gt;
&lt;div class="neo-card-content"&gt;
&lt;div class="neo-card-icon"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--regular" fill="currentColor" role="img" aria-label="Pulumi Neo AI icon"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#c-pulumi-neo-regular"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;div class="neo-card-text"&gt;
&lt;span class="neo-card-subtitle"&gt;Start a Neo task&lt;/span&gt;
&lt;span class="neo-card-title"&gt;Migrate your ARM template&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="neo-card-arrow"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--bold" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#p-caret-right-bold"/&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;h2 id="the-architecture-powering-it-all"&gt;The architecture powering it all&lt;/h2&gt;
&lt;p&gt;While each tool requires specific handling, Neo&amp;rsquo;s core architecture remains consistent:&lt;/p&gt;
&lt;h3 id="universal-orchestration-layer"&gt;Universal orchestration layer&lt;/h3&gt;
&lt;p&gt;Neo acts as the intelligent migration coordinator, regardless of source tool:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Credential verification&lt;/strong&gt;: Ensures proper cloud credentials are configured in Pulumi ESC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resource inventory&lt;/strong&gt;: Builds a complete catalog of existing resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Conversion orchestration&lt;/strong&gt;: Manages the code transformation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;State migration&lt;/strong&gt;: Brings existing resources under Pulumi management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit trail generation&lt;/strong&gt;: Creates comprehensive migration reports&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="unified-state-management-engine"&gt;Unified state management engine&lt;/h3&gt;
&lt;p&gt;The state management engine works consistently across all tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maps source resource IDs to Pulumi&amp;rsquo;s state management&lt;/li&gt;
&lt;li&gt;Handles complex and composite resource identifiers&lt;/li&gt;
&lt;li&gt;Provides fallback strategies for edge cases&lt;/li&gt;
&lt;li&gt;Ensures idempotent operations&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="human-oversight"&gt;Human oversight&lt;/h3&gt;
&lt;p&gt;While Neo automates the heavy lifting, we maintain human checkpoints:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Review generated code before migrating resources&lt;/li&gt;
&lt;li&gt;Verify preview shows zero changes&lt;/li&gt;
&lt;li&gt;Approve the resulting pull request&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-this-means-for-your-team"&gt;What this means for your team&lt;/h2&gt;
&lt;p&gt;Migration friction no longer locks you into your current IaC tool. If you want Pulumi&amp;rsquo;s programming model, policy engine, and multi-cloud support, Neo gets you there without disrupting your infrastructure.&lt;/p&gt;
&lt;p&gt;Ready to migrate? Check out our migration guides for &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-cdk/"&gt;CDK&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-cloudformation/"&gt;CloudFormation&lt;/a&gt;, &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-terraform/"&gt;Terraform&lt;/a&gt;, or &lt;a href="https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-arm/"&gt;Azure ARM&lt;/a&gt;. Join us in the &lt;a href="https://slack.pulumi.com/"&gt;Pulumi Community Slack&lt;/a&gt; or reach out to your account team for a guided migration session.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>pulumi-neo</category><category>aws</category><category>cdk</category><category>cloudformation</category><category>terraform</category><category>azure</category><category>arm</category><category>migration</category><category>ai</category><category>features</category></item><item><title>Encode What You Know With Neo: Custom Instructions and Slash Commands</title><link>https://www.pulumi.com/blog/slash-commands-custom-instructions/</link><pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/slash-commands-custom-instructions/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/slash-commands-custom-instructions/index.png" /&gt;
&lt;p&gt;Every organization builds up knowledge over time: naming standards, compliance requirements, patterns your team has settled on, and proven approaches to common tasks. Until now, bringing this knowledge into Neo meant repeating it manually each time - specifying preferences, describing how your team works, and recreating prompts that someone already perfected.&lt;/p&gt;
&lt;p&gt;Two new features change this. Custom Instructions teach Neo your standards so it applies them automatically. Slash Commands capture proven prompts so anyone on your team can use them with a keystroke.&lt;/p&gt;
&lt;h2 id="custom-instructions-standards-applied-automatically"&gt;Custom Instructions: Standards Applied Automatically&lt;/h2&gt;
&lt;p&gt;Custom Instructions let you define what Neo should know about your organization and how it should behave. This includes naming conventions, required tags and compliance requirements, technology preferences, and cost guidelines - but also actions Neo should take automatically, like including a rough cost estimate whenever it proposes new infrastructure. You configure them once in your organization settings, and Neo applies them to every task from that point forward.&lt;/p&gt;
&lt;p&gt;Consider the difference. Before Custom Instructions, a simple request required loading context:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Neo, update our Lambda functions to Node 20. Remember, we use TypeScript exclusively, our naming convention is service-region-env, we always deploy to us-east-1 first for testing, and all resources need our standard compliance tags including CostCenter and DataClassification.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With those details captured in Custom Instructions, the same request becomes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Neo, update our Lambda functions to Node 20.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Neo already knows how your team works, so you can focus on what you&amp;rsquo;re trying to accomplish.&lt;/p&gt;
&lt;h2 id="slash-commands-capture-what-works"&gt;Slash Commands: Capture What Works&lt;/h2&gt;
&lt;p&gt;Over time, your team figures out the right way to ask Neo for certain tasks. Maybe someone wrote the perfect prompt for checking policy violations, or discovered an approach to drift detection that catches issues others miss. That knowledge tends to live in someone&amp;rsquo;s head or buried in a Slack thread.&lt;/p&gt;
&lt;p&gt;Slash Commands turn these prompts into shortcuts anyone can use. When you type &lt;code&gt;/&lt;/code&gt; in Neo, you&amp;rsquo;ll see available commands, select one, and Neo receives the full prompt behind it.&lt;/p&gt;
&lt;p&gt;&lt;img src="slash-commands.gif" alt="Slash Commands in action"&gt;&lt;/p&gt;
&lt;p&gt;Neo ships with built-in commands for common tasks:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/get-started&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Learn what Neo can do and how to structure effective requests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/policy-issues-report&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists your most severe policy violations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/component-version-report&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists components that are outdated in your private registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/provider-version-report&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists providers that are outdated&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You can also create your own. In Pulumi Cloud, you define the prompt - no coding required. Once saved, your team can start using it immediately. If a command needs more information than what&amp;rsquo;s provided, Neo will ask follow-up questions to fill in the gaps.&lt;/p&gt;
&lt;h2 id="get-started"&gt;Get Started&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.pulumi.com/docs/ai/settings/#custom-instructions"&gt;Custom Instructions&lt;/a&gt; and &lt;a href="https://www.pulumi.com/docs/ai/settings/#slash-commands"&gt;Slash Commands&lt;/a&gt; are available now. You can configure Custom Instructions in Neo Settings. Slash Commands come with several built-in options, and you can create custom ones tailored to your workflow.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>platform-engineering</category><category>pulumi-neo</category></item><item><title>Neo Gets Smarter: New Modes, CLI Access &amp; Sonnet 4.5</title><link>https://www.pulumi.com/blog/neo-levels-up/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/neo-levels-up/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/neo-levels-up/index.png" /&gt;
&lt;p&gt;Neo just got significantly more capable. We&amp;rsquo;ve shipped three major updates: Operating Modes for flexible control, full ecosystem tool access, and Claude Sonnet 4.5 for better performance on complex infrastructure tasks.&lt;/p&gt;
&lt;h2 id="you-decide-how-much-control-you-keep"&gt;You decide how much control you keep&lt;/h2&gt;
&lt;p&gt;The same action has different risks in different contexts. Building a new dev environment is low risk. Opening a PR that changes shared infrastructure requires more scrutiny.&lt;/p&gt;
&lt;p&gt;Operating Modes let you adjust autonomy based on context:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Review Mode&lt;/strong&gt;: You approve the task plan, preview, and PR. You see everything before it happens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Balanced Mode&lt;/strong&gt;: Neo handles planning and previews. You approve mutating operations, such as updates or destroys. Less friction, control where it matters.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto Mode&lt;/strong&gt;: Neo runs without stopping. For when you need speed and trust the outcome.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can use Review Mode when Neo is updating production infrastructure. Use Balanced Mode when deploying application updates where you want to verify destructive changes but trust routine operations. Switch to Auto Mode when spinning up temporary dev environments for testing. You pick the mode that matches your situation. The same agent, flexible levels of autonomy.&lt;/p&gt;
&lt;h2 id="neo-can-do-more"&gt;Neo can do more&lt;/h2&gt;
&lt;p&gt;Neo now has access to more tools and information. This means it can handle more complex scenarios and work with the broader ecosystem your infrastructure depends on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Full Pulumi CLI access&lt;/strong&gt;: Neo can now run all Pulumi CLI operations, including stack imports, state management, and plugin operations that previously required manual intervention.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ecosystem tooling built in&lt;/strong&gt;: Neo now includes kubectl, Helm, AWS CLI, GCP, and Oracle Cloud CLI. This means Neo can verify Kubernetes deployments, install Helm charts, and run cloud-specific operations without leaving your workflow.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Private registry search&lt;/strong&gt;: Your team builds reusable components to accelerate development and codify standards. Neo can now search your organization&amp;rsquo;s private registry, including READMEs, to find and use them. You get the benefit of your team&amp;rsquo;s existing work.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sonnet-45"&gt;Sonnet 4.5&lt;/h2&gt;
&lt;p&gt;Neo now runs on Anthropic&amp;rsquo;s Sonnet 4.5 by default. Sonnet 4.5 delivers better performance on complex, multi-step infrastructure tasks that require sustained reasoning across multiple files and services.&lt;/p&gt;
&lt;h2 id="try-neo"&gt;Try Neo&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ready to try these features?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://app.pulumi.com/signin"&gt;Sign in to Pulumi Cloud&lt;/a&gt; and start a Neo task&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pulumi.com/docs/ai/"&gt;Read the Neo documentation&lt;/a&gt; for detailed guides&lt;/li&gt;
&lt;li&gt;&lt;a href="https://slack.pulumi.com/"&gt;Join the Community Slack&lt;/a&gt; to share feedback on the new features&lt;/li&gt;
&lt;/ul&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>platform-engineering</category><category>pulumi-neo</category></item><item><title>Meet Neo, Your Newest Platform Engineer</title><link>https://www.pulumi.com/blog/pulumi-neo/</link><pubDate>Tue, 16 Sep 2025 07:00:00 -0600</pubDate><guid>https://www.pulumi.com/blog/pulumi-neo/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/pulumi-neo/index.png" /&gt;
&lt;p&gt;AI coding assistants have transformed the speed at which developers can write and deploy code. Pull request velocity has increased significantly. Feature delivery has accelerated beyond what we thought possible just two years ago. This should be a victory for everyone in the software organization.&lt;/p&gt;
&lt;p&gt;Instead, it&amp;rsquo;s created significant challenges for infrastructure and platform teams.&lt;/p&gt;
&lt;p&gt;Every line of code that ships faster creates new platform needs: monitoring, secrets management, deployment pipelines, and compliance checks. The rapid pace also increases the risk of insecure or non-compliant code reaching production. Developer velocity has increased dramatically, but platform teams haven&amp;rsquo;t scaled to match.&lt;/p&gt;
&lt;p&gt;Platform teams are struggling because they lack the proper tools for their unique challenges. They&amp;rsquo;re caught in a velocity trap where generic AI accelerates developers while leaving platform teams behind. We&amp;rsquo;re optimizing software development speed while creating global infrastructure debt.&lt;/p&gt;
&lt;p&gt;The very success of developer AI has become a challenge for the platform team.&lt;/p&gt;
&lt;h2 id="introducing-pulumi-neo"&gt;Introducing Pulumi Neo&lt;/h2&gt;
&lt;p&gt;Neo is a purpose-built infrastructure automation agent that amplifies your platform engineering capabilities. Built on Pulumi&amp;rsquo;s platform, Neo has a deep understanding of cloud context, IaC, secrets and configuration, internal developer platforms, and more. It automatically respects your security and policy guardrails and works in tandem with human-in-the-loop approvals and controls.&lt;/p&gt;
&lt;p&gt;&lt;img src="introducing-pulumi-neo.png" alt="Pulumi Neo automating AWS Lambda Node.js runtime upgrades with policy validation and pull request creation"&gt;&lt;/p&gt;
&lt;p&gt;For years, we&amp;rsquo;ve worked closely with platform and infrastructure teams. We&amp;rsquo;ve observed how the demands on these teams have intensified as development velocity has increased. We understand the challenges they face in keeping pace with rapidly evolving infrastructure needs.&lt;/p&gt;
&lt;p&gt;The pattern became clear. Generic AI tools excel at generating code but lack the context to understand the unique challenges of infrastructure, including state management, tracking dependencies across services, scaling across tens to hundreds of repositories, and anticipating the effects of changes across an organization.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve heard countless stories from platform engineers about spending hours tracking down dependencies, credential locations, and configuration relationships across their systems. When they try to use generic AI tools for these tasks, the tools often suggest changes without understanding the broader organizational context and dependencies.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s when we realized: Platform engineers don&amp;rsquo;t need faster AI tools. They need their own dedicated AI tool, one that understands infrastructure context, speaks their language, and works within their constraints.&lt;/p&gt;
&lt;p&gt;These insights led us to develop Neo, an AI agent specifically designed for platform and infrastructure engineering teams. Unlike generic coding assistants, Neo understands the full context of infrastructure: it knows that changes span multiple repositories, that every modification has downstream effects, and that compliance and security policies matter as much as the code itself.&lt;/p&gt;
&lt;h2 id="built-for-enterprise-trust"&gt;Built for Enterprise Trust&lt;/h2&gt;
&lt;p&gt;Neo represents a fundamentally different approach to AI in infrastructure. We view the Pulumi platform&amp;rsquo;s existing features, like IaC, ESC, and policies, as the foundation for trustworthy AI automation. These aren&amp;rsquo;t additional guardrails we&amp;rsquo;ve added; they&amp;rsquo;re the very platform capabilities you&amp;rsquo;re already using. Understanding the impact scope through your infrastructure graph gives you confidence to move faster. Knowing compliance implications through your existing policies before making changes is what actually accelerates platform teams.&lt;/p&gt;
&lt;p&gt;While other solutions retrofit generic AI models with infrastructure plugins, Neo is built from the ground up on proven enterprise foundations. It operates within your existing Pulumi governance frameworks, respects your policies, and maintains the audit trails and compliance controls your organization requires. Your investment in Pulumi&amp;rsquo;s platform features—the same ones that govern your infrastructure today—becomes Neo&amp;rsquo;s operational guardrails.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t experimental AI, it&amp;rsquo;s enterprise-ready automation that amplifies your expertise while working within the same platform controls that keep your infrastructure secure and compliant. The Pulumi features you rely on for governance become the accelerants that enable confident, rapid automation.&lt;/p&gt;
&lt;h2 id="the-reinforcement-cycle"&gt;The Reinforcement Cycle&lt;/h2&gt;
&lt;p&gt;Neo becomes more capable the more you invest in infrastructure as code. Every Pulumi component you write, every policy you define, every environment configuration you establish becomes Neo&amp;rsquo;s operational context that guides its decisions.&lt;/p&gt;
&lt;p&gt;This is the key shift. We&amp;rsquo;re talking about AI amplifying platform expertise. The engineers who understand the why behind infrastructure decisions become even more valuable when they have tools that can execute the how at scale.&lt;/p&gt;
&lt;p&gt;The teams that lean into this cycle will find themselves accelerating while others are still struggling. They&amp;rsquo;ll be writing policies while others are responding to issues. They&amp;rsquo;ll be designing systems while others are updating versions.&lt;/p&gt;
&lt;h2 id="the-platform-engineering-evolution"&gt;The Platform Engineering Evolution&lt;/h2&gt;
&lt;p&gt;The bigger picture extends far beyond task automation. Platform engineering evolves from reactive to proactive. Teams shift from ticket takers to strategic enablers. Infrastructure becomes self-healing and self-documenting. The profession transforms from responding to urgent issues to crafting foundations.&lt;/p&gt;
&lt;p&gt;Imagine infrastructure that evolves as fast as the code it supports. Imagine platform teams that can actually think about next quarter instead of just surviving next sprint. Imagine organizations that can sustain AI-driven development velocity because their infrastructure keeps pace automatically.&lt;/p&gt;
&lt;p&gt;For the industry, this means the end of the &amp;ldquo;platform team bottleneck&amp;rdquo; narrative. No longer will infrastructure be the reason features don&amp;rsquo;t ship. No longer will platform engineers be seen as blockers in the velocity story. Instead, they&amp;rsquo;ll be the enablers who made sustainable speed possible.&lt;/p&gt;
&lt;p&gt;This is the rise of strategic platform engineering. These are professionals who shape how organizations build and operate software, who establish the foundations that make everything else possible, and who finally have tools that match the complexity and importance of their work.&lt;/p&gt;
&lt;h2 id="the-choice-before-us"&gt;The Choice Before Us&lt;/h2&gt;
&lt;p&gt;What we&amp;rsquo;re launching is more than an AI agent. We&amp;rsquo;re introducing your newest platform engineer, who gets smarter as your infrastructure evolves. We&amp;rsquo;re launching a new era for platform engineering, one where the teams that enable everyone else finally have tools built specifically for their reality.&lt;/p&gt;
&lt;p&gt;Neo represents our belief that platform engineers shouldn&amp;rsquo;t have to choose between speed and safety, between automation and control, between serving developers and driving strategy. These are false choices created by tools that lack an understanding of infrastructure.&lt;/p&gt;
&lt;p&gt;The age of generic AI taught us what&amp;rsquo;s possible. The era of specialized AI shows us what&amp;rsquo;s practical. Platform teams have been overloaded by everyone else&amp;rsquo;s velocity long enough.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time for platform engineering to keep pace instead of falling behind.&lt;/p&gt;
&lt;p&gt;Neo is available today in public preview. Ready to meet your newest platform engineer? Join thousands of teams already transforming their infrastructure workflows with the Pulumi platform.&lt;/p&gt;
&lt;p&gt;The future of platform engineering starts now, and it starts with &lt;a href="https://www.pulumi.com/docs/pulumi-cloud/neo/"&gt;Neo&lt;/a&gt;.&lt;/p&gt;</description><author>Pulumi Neo Team</author><category>ai</category><category>ai-agents</category><category>platform-engineering</category><category>pulumi-neo</category></item></channel></rss>