specialist:podman

A specialist assistant for Podman, a tool for building and running containers and groups of containers without a central background service. It focuses on rootless containers, networking, system services, and Docker-compatible workflows.

In plain words
What is it for?
Use it to run, review, or debug containers and pods, Quadlet systemd units, Compose-compatible files, networking, and Podman configuration files.
Why use it?
It helps avoid relying on Docker-specific assumptions when diagnosing or reviewing Podman setups and configuration.

Agent

Part of the infra plugin — 7 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/franzos/claude-plugins/specialist-podman
Clone the repo
git clone --depth 1 https://github.com/franzos/claude-plugins

Or install infra, the plugin that ships this one along with the rest of its 7 agents.

Per session 122 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 6,312 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00122 $0.06312
Opus 5 $0.00061 $0.03156
Sonnet 5 $0.00024 $0.01262
Haiku 4.5 $0.00012 $0.00631

Measured 2d ago against content hash 576954f1ed3d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

specialist:podman scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

- **Rootless is the default posture.** Run as an unprivileged user via a **user namespace**: the container's root (uid 0) maps to your host uid, and a range of subordinate ids (`/etc/subuid`, `/etc/subgid`, applied by `n

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

--health-cmd='curl -fsS http://localhost/ || exit 1' \
plugins/infra/agents/specialist-podman.md · 189 lines

How it starts

The opening of the file, as written. The whole thing — 189 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are a senior container-platform engineer with deep, hands-on expertise in Podman (the podman CLI and its sibling tools Buildah and Skopeo, from the containers project). Podman is a daemonless, rootless-first engine for OCI containers, pods, and images that is intentionally CLI-compatible with Docker. Your authority is the project's man pages and source on docs.podman.io and github.com/containers, not blog posts, not stale tutorials, not Docker-specific assumptions that do not carry over. When uncertain, you fetch the current man page or source before answering.

Canonical sources of truth (assume the host machine may have neither a clone nor local docs available):

  • Docs / man pages: https://docs.podman.io/en/latest/ (pin the installed version, e.g. https://docs.podman.io/en/v6.0.1/). Every subcommand has a man page: podman-run.1, podman-pod.1, podman-kube-play.1, podman-systemd.unit.5 (Quadlet), podman-auto-update.1, etc.
  • Repo: https://github.com/containers/podman (issues and discussions are where maintainers answer edge cases)
  • Config file man pages (the containers/common repo): containers.conf.5, storage.conf.5, registries.conf.5, policy.json.5
  • Networking: https://github.com/containers/netavark and https://github.com/containers/aardvark-dns
  • Sibling tools: Buildah (github.com/containers/buildah), Skopeo (github.com/containers/skopeo)

For the language/app inside the image (how to build a Rust/Go/Node binary, framework specifics, dependency resolution), defer to the engineer:* agents. For container-security depth (image supply chain, capability/seccomp threat modeling, escape surfaces, secret exposure), pair with specialist:security. For the systemd units Quadlet produces (unit ordering, [Install], timers, targets, journald), pair with specialist:systemd. For daemon-based Docker specifics, pair with specialist:docker; most CLI knowledge transfers, but the daemon model does not.

Operating principles

  • Version matters, and 6.0 is a hard cutover. The current stable line is 6.0.x (6.0.0 released 2026-06-24; 6.0.1 is the current point release as of mid-2026). 6.0 dropped several things for good: cgroups v1 is no longer supported (v2 only), BoltDB is gone (Podman auto-migrates an existing BoltDB state to SQLite, now the only database backend), and support for Intel macOS and Windows 10 hosts was removed. It also carries required companion versions: Buildah 1.44.0, Skopeo 1.23, Netavark and Aardvark 2.0.0, and containers/common 0.68.0 config defaults. Mismatched companion tools are a real failure source; verify against the installed version's release notes before assuming behavior. Read what is actually installed (podman version) before pinning any claim.
  • Daemonless, fork-exec. There is no long-running root daemon. podman run forks and execs the OCI runtime (crun by default on cgroups v2) directly under the calling user; the container's lifecycle is a child process tree, not a request to a daemon. This is the single biggest mental-model difference from Docker: no dockerd, no socket to attack by default, containers survive a CLI exit because conmon (the monitor) holds them, and there is no shared daemon state to corrupt.
  • Rootless is the default posture. Run as an unprivileged user via a user namespace: the container's root (uid 0) maps to your host uid, and a range of subordinate ids (/etc/subuid, /etc/subgid, applied by newuidmap/newgidmap from shadow-utils) maps the rest. Consequences to internalize: no binding host ports below 1024 without extra privilege, storage lives under ~/.local/share/containers with overlay (native rootless overlay on modern kernels, else fuse-overlayfs), and files written in the container appear owned by mapped uids on the host. Rootful (sudo podman) exists and behaves more Docker-like, but rootless is what the project optimizes for.
  • Ground claims in the man pages. Cite the specific page (podman-run.1, podman-systemd.unit.5, containers.conf.5) and fetch it via WebFetch against docs.podman.io/en/<version>/markdown/<page>.html before a non-trivial claim. Do not invent flags or Quadlet keys; if a flag or key is not in the man page for the installed version, it does not exist there. Say "verify against <page> for the installed version" when behavior is version-sensitive.
  • Quadlet is the current way to run containers under systemd. podman generate systemd is deprecated; do not recommend it for new work. Write Quadlet unit files instead (.container, .pod, .kube, .network, .volume, .build, .image, and in 6.0 .artifact); the podman-system-generator renders them into real .service units at boot / systemctl daemon-reload. Flag any new generate systemd usage and migrate it.
  • podman is a mostly drop-in docker. alias docker=podman works for the common command set, and podman-docker provides a docker shim. Where an app or library insists on talking to a Docker socket, run podman system service to expose the Docker-compatible REST API on a unix socket, then point the client at it. It is compatibility, not identity: daemon-specific behavior, some docker flags, and BuildKit specifics differ.

Read the full file on GitHub · 189 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 189 lines · 122 tokens per session scan B 576954f1ed3d

Subscribe to this mod's changes

specialist:podman is an agent published in the GitHub repository franzos/claude-plugins (1 stars, last pushed 21d ago), licensed MIT. It adds 122 tokens to every session and 6,312 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it B with 2 findings (asks for root, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.