`docker push` Works on AI Agents Now Docker Engineering open-sourced Docker Agent, an Apache-2.0 docker CLI plugin written in Go that packages AI agents defined in YAML as OCI artifacts, letting teams push, pull, sign and pin agents by digest to registries like Docker Hub and GitHub Container Registry. Agents run via `docker agent run myorg/agent:tag`, and `--key` signing uses a DSSE envelope over an in-toto statement compatible with cosign. Docker Desktop 4.63+ ships the plugin pre-installed, and it supports OpenAI, Anthropic, Gemini, AWS Bedrock, Mistral, xAI and local Docker Model Runner endpoints. docker push Works on AI Agents Now Docker Agent is a docker CLI plugin that turns an AI agent into an OCI artifact. You define the agent in YAML, run it with docker agent run , then ship it with docker agent share push to any OCI-compatible registry, Docker Hub or GitHub Container Registry included. Anyone on the team can then run your agent with docker agent run myorg/agent:tag Docker Agent docs https://docker.github.io/docker-agent/ . An OCI artifact is the registry packaging format container images already use; here it carries an agent config instead of a filesystem. Push, pull, sign, pin by digest: the same lifecycle a container image has, applied to agents. I run a small agent on a VM myself: it reads a pitch board, writes a Docker post, and stages it for publishing every morning. Getting that thing reproducible on another machine is exactly the problem this tool attacks, so I read the repo and docs end to end. The pitch board lives in Obsidian, the runs land in a ledger, and the whole setup is YAML plus scripts. The moment an agent has a config file, it wants a package format. The problem is real enough to have a name around teams I know: the snowflake agent. The system prompt lives in a note app, the tool list lives in a repo nobody can find, and the one person who understands the setup is on holiday. Sharing means pasting YAML into a chat window and hoping the receiver reassembles it correctly, keys and all. Docker's engineering team open-sourced their answer in docker/docker-agent https://github.com/docker/docker-agent . The tagline is direct: "Build, run, and share AI agents with a declarative YAML config, rich tool ecosystem, and multi-agent orchestration." In this post: Key Takeaways Docker Agent is an open-source Apache-2.0 docker CLI plugin repo https://github.com/docker/docker-agent ; Docker Desktop 4.63+ ships it pre-installed, so docker agent works out of the box.- An agent is a YAML file: model, description, instruction, optional toolsets. Multi-agent configs add coordinators, specialists, and handoffs. docker agent share push ./agent.yaml ghcr.io/username/my-agent:v1.0 packages the agent as an OCI artifact; docker agent run myorg/agent:tag runs it straight from the registry distribution docs https://docker.github.io/docker-agent/concepts/distribution/ . --key signs on push and verifies on pull using a DSSE envelope over an in-toto statement, the same ecosystem cosign speaks. Pin digests myorg/agent@sha256:... when rollback protection matters. Strip the branding and Docker Agent is a builder and runtime for agents, written in Go, that plugs into the docker CLI you already have. The repo describes itself as the "AI Agent Builder and Runtime by Docker Engineering" docker/docker-agent https://github.com/docker/docker-agent . It is unusually active for a young project: over eleven thousand commits, 4.6k stars, and a release cadence that produced v1.152.0 in late October 2026. Installation is the part I appreciate most, because it is nothing: docker agent and it works. brew install docker-agent , or symlink the binary into ~/.docker/cli-plugins/ . A rename happened along the way, which is why older posts call it by a different binary name: in March 2026 the maintainers changed the usage samples to the docker agent plugin form. If you find a tutorial referencing the old invocation, it is describing the same tool. Providers are pluggable, which matters if you have opinions about where your tokens go. The README lists OpenAI, Anthropic, Gemini, AWS Bedrock, Mistral, xAI, and Docker Model Runner https://docs.docker.com/ai/model-runner/ for local models, plus custom OpenAI-compatible endpoints. You need at least one API key set, or a local Model Runner endpoint, before anything interesting happens. The docs walk both paths Set Up a Model https://docker.github.io/docker-agent/getting-started/set-up-a-model/ . The README's minimal example is the whole mental model: agents: root: model: openai/gpt-5-mini description: A helpful AI assistant instruction: | You are a knowledgeable assistant that helps users with various tasks. Be helpful, accurate, and concise in your responses. toolsets: - type: mcp ref: docker:duckduckgo Run it with docker agent run agent.yaml . That is an agent: a model, a description the runtime shows when routing work, an instruction that is the system prompt, and toolsets. The mcp toolset type references any Model Context Protocol https://modelcontextprotocol.io/ server, and the docker:duckduckgo ref is a catalog shorthand for DuckDuckGo search. The examples directory in the repo is a catalog of working configs. It is meant to be read as documentation, not just copied: the examples README https://github.com/docker/docker-agent/blob/main/examples/README.md groups them by the feature they showcase, from bare-minimum agents to remote MCP with OAuth. Two details from the run command are worth knowing before your config grows. The -a