For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
      • AstroFully-managed data operations, powered by Apache Airflow.
      • Astro Private CloudRun Airflow-as-a-service in your environment.
      • Professional ServicesExpert Airflow services for your enterprise's success.
    • Tools
      • Cosmos
      • Orbiter
      • CLI
      • AI SDK
      • Agents
      • Blueprint
      • UpdatesThe State of Airflow 2026See the insights from over 5,800 data practitioners in the full report. Download Now ➔
  • Customers
  • Docs
    • Insights
      • Blog
      • Webinars
      • Resource Library
      • Events
    • Education
      • Academy
      • What is Airflow?
  • Pricing
Get Started Free
    • Overview
        • Overview
        • Quickstart
        • Customize Otto
        • Upgrade Airflow with Otto
      • MCP servers
      • Toggle AI features
    • Book Office Hours

Product

  • Platform Overview
  • Astro
  • Astro Observe
  • Astro Private Cloud
  • Security & Trust
  • Pricing

Tools & Services

  • Cosmos
  • Docs
  • Professional Services
  • Product Updates

Use Cases

  • AI Ops
  • Data Observability
  • ETL/ELT
  • ML Ops
  • Operational Analytics
  • All Use Cases

Industries

  • Financial Services
  • Gaming
  • Retail
  • Manufacturing
  • Healthcare
  • All Industries

Resources

  • Academy
  • eBooks & Guides
  • Blog
  • Webinars
  • Events
  • The Data Flowcast Podcast
  • All Resources

Airflow

  • What is Airflow
  • Airflow on Astro
  • Airflow 3.0
  • Airflow Upgrades
  • Airflow Use Cases
  • Airflow 2.x End of Life

Company

  • Our Story
  • Customers
  • Newsroom
  • Careers
  • Contact

Support

  • Knowledge Base
  • Status
  • Contact Support
GitHubYouTubeLinkedInx
  • Legal
  • Privacy
  • Terms of Service
  • Consent Preferences

  • Do Not Sell or Share My Personal information
  • Limit the Use Of My Sensitive Personal Information

Apache Airflow®, Airflow, and the Airflow logo are trademarks of the Apache Software Foundation. Copyright © Astronomer 2026. All rights reserved.

LogoLogo
On this page
  • What you can customize
  • Recommended project layout
  • Get started
  • Seed memory from an established project
  • Add memory from existing standards
  • Capture learnings with /remember
  • Ask Otto to write skills and permission rules
  • Commit and roll out
  • Choose a model
  • Next steps
AI featuresOtto

Customize Otto

Edit this page
Built with
Labs
This feature is in Labs.

Otto becomes more useful the more it knows about how your team works. This page describes the ways you can customize Otto so that every engineer on the team benefits from shared conventions, reusable workflows, and team-wide permission rules.

When Otto is customized, new engineers get your conventions from day one, corrections one engineer makes compound across the team, and operational knowledge stops living only in senior engineers’ heads.

What you can customize

Otto draws on four categories of team-specific customization. Each lives in files you commit to your repository, so updates propagate through your standard Git workflow.

  • Memory — team conventions, naming patterns, connection configs, retry policies, approved operators, and other knowledge you want Otto to apply automatically. Memory files live in .astro/memory/. See Memory.
  • Skills — reusable, structured workflows the team runs often, such as deploy patterns, testing patterns, and migration playbooks. Skills live in .astro/otto/skills/. See Skills.
  • Permissions — allow, ask, and deny rules that control what Otto can do, including file rules, command patterns, and permission modes. Rules live in .astro/otto/permissions.json. See Permissions.
  • Extensions — toggles for bundled Otto features such as Dag validation, memory commands, and hosted skills. Extension settings live in .astro/otto/extensions.json. See Extensions.

In addition to the files in .astro/, Otto reads AGENTS.md and CLAUDE.md files for context. Otto loads them from ~/.astro/otto/AGENTS.md or ~/.astro/otto/CLAUDE.md, then walks up from the current working directory to /. When both files exist in the same folder, Otto prioritizes AGENTS.md over CLAUDE.md.

Recommended project layout

A customized Astro project typically looks like:

my-astro-project/
dags/
.astro/
memory/
MEMORY.md
conventions.md
connections.md
operators.md
otto/
skills/
deploy-to-staging/
SKILL.md
permissions.json
extensions.json

Commit these files to your repository. When team members pull the latest main branch, their next Otto session loads the updated customizations automatically.

Get started

Customize Otto by working through the agent. Describe what you want Otto to remember, write, or enforce, and Otto produces the corresponding files in .astro/. Each file is plain Markdown or JSON, so you can review, edit, and commit changes in your Git diff like any other code change.

Seed memory from an established project

Best for teams whose conventions live in code and conversations but aren’t documented yet.

Run Otto in your project folder:

$astro otto

Then run /bootstrap in the Otto interface. Otto reviews your git history and available GitHub context to extract durable learnings, then writes memory files for the durable patterns it finds. Every read and write happens as a visible tool call, so you can see what Otto pulls from history and what it persists.

For /bootstrap to include GitHub PR history, install and authenticate the GitHub CLI. Without it, Otto bootstraps from local git history alone.

Add memory from existing standards

Best for teams that already have conventions documented elsewhere, such as a wiki page, a STANDARDS.md file, or an onboarding guide.

Paste the content into an Otto session and ask Otto to extract memory files from it. For example:

> Here is our team's convention doc. Read it and propose memory files for the parts that should apply to every Dag we write.

Otto produces draft memory files for review, following the same review pattern as /bootstrap.

Capture learnings with /remember

During an active session, run /remember to have Otto review the conversation and generate memory files from durable points. Use /remember to grow your team’s memory organically as you work.

Ask Otto to write skills and permission rules

For workflows you run often, describe the workflow to Otto. For example:

> Write a skill for our staging deploy that runs make test, deploys to the staging Deployment, and tails the scheduler logs.

Otto generates a SKILL.md under .astro/otto/skills/ for you to review. The same pattern applies to permission rules. Describe what Otto should and shouldn’t do, and Otto produces or updates .astro/otto/permissions.json.

Commit and roll out

After Otto writes a customization, the changes appear in your Git diff. Review, edit if needed, and commit them. On the next pull, every engineer’s Otto sessions load the new customizations automatically.

Choose a model

You can pick your own model for an Otto session. Otto supports models from OpenAI, Anthropic, and Google through the Astronomer Gateway. Run /model in an interactive session to browse what’s available to you and switch the active model mid-session. To pin a model at launch, pass --model <id>.

See astro otto model selection for the full reference.

Next steps

  • Memory — Memory tiers, file format, and how Otto loads context.
  • Skills — How to author local skills for reusable workflows.
  • Permissions — Configure allow, ask, and deny rules for tool calls.
  • Settings — Configuration files, environment variables, and settings precedence.