Airflow and Astro in your editor: chat with Otto,
Astronomer's Airflow agent, triage your Deployments and your local Airflow, and search the Airflow docs — without
leaving the editor.
Requires an Astronomer account and the Astro CLI.
Otto runs on its own models through your Astronomer account, so no Copilot subscription is needed. Works in
VS Code 1.95 or later.
Install this extension, then sign in with Astro: Sign In from the command palette or the Profile view.
If you have already run astro login in a terminal, you are signed in already.
Open the chat with the Otto icon in the editor toolbar, or Otto: Open Chat from the command palette.
The first chat downloads Otto through the Astro CLI.
If the extension reports it cannot find astro, set astroOtto.astroPath to the binary's full path — an editor
launched from the Dock or Finder does not inherit your shell's PATH. which astro in a terminal tells you
where it is.
Diagnostics go to the Astro output channel.
Features
Profile — who's signed in, and which environment, organization and workspace you're pointed at.
Click the organization or workspace row to switch.
Deployments — the Deployments in that workspace. Each one expands into its own Dag import errors
and recently failed runs, so triage starts on the row you're already looking at. Hover a row to deploy
or open its Airflow UI; click a failure to read its task logs without leaving the editor.
Local — the Astro project open in this window and its local Airflow: its own import errors, failed
runs and logs — the project's own log in standalone mode, each container's in Docker mode — plus a
one-click way to point the Python extension at its interpreter. A stopped project
carries a Start button per mode, standalone or Docker; a running one carries Stop and its Airflow UI.
Docs — search Airflow, Astronomer and provider documentation from the sidebar, and read a match
rendered in an editor tab. A result from the provider registry — an operator, hook or sensor — opens
with its own actions: add the provider to requirements.txt, insert the import and a call at your cursor,
or ask Otto about it. The dependency is added as an undoable edit, and a version you have already pinned is
left alone.
Otto chat — an editor panel, not a sidebar view. Markdown answers, inline tool calls and
approvals, and slash commands from Otto's own skill set. Open as many conversations as you like, each
with its own transcript, model and permission settings.