Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add fabric-testbed/claude-plugin-marketplace/plugin install fablibWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/fabric-testbed/claude-plugin-marketplace/fabric-containers)<a href="https://agentmods.dev/skills/fabric-testbed/claude-plugin-marketplace/fabric-containers"><img src="https://agentmods.dev/badge/skills/fabric-testbed/claude-plugin-marketplace/fabric-containers/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/fabric-testbed/claude-plugin-marketplace/fabric-containers"><img src="https://agentmods.dev/badge/skills/fabric-testbed/claude-plugin-marketplace/fabric-containers.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00014 | $0.02260 |
| Opus 5.5 | $0.00006 | $0.00904 |
| Sonnet 5.5 | $0.00003 | $0.00452 |
| Haiku 4.5 | $0.00001 | $0.00226 |
Grade D, and why
fabric-containers scanned grade D 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 2mo 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.
n.execute('sudo ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa', quiet=True) Reaches for credential fileshighPrivilege escalation
SSH keys, cloud credentials, git-credentials, .npmrc, /etc/shadow: reading these is how a config file becomes a credential leak.
n.execute('ssh-keygen -t rsa -N "" -f /home/ubuntu/.ssh/id_rsa', quiet=True) How it starts
The opening of the file, as written. The whole thing — 323 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Instructions
When invoked, generate code for container-based workloads on FABRIC. Two main capabilities:
- Docker — Container deployment using post-boot scripts or runtime commands
- Kubernetes — Multi-node K8s cluster with Flannel CNI across FABRIC sites
Help the user choose the right approach and generate complete setup code.
API Reference
Docker Images
FABRIC provides Docker-ready OS images:
docker_rocky_8— Rocky Linux 8 with Docker pre-configureddocker_ubuntu_20— Ubuntu 20.04 with Docker pre-configured
Post-Boot Docker Setup
node.add_post_boot_upload_directory('node_tools', '.')
node.add_post_boot_execute('node_tools/enable_docker.sh {{ _self_.image }}')
Post-Boot Docker Compose
node.add_post_boot_upload_directory('docker_containers', '.')
node.add_post_boot_execute('cd docker_containers/my_app ; docker compose up -d')
Patterns
Docker Container Deployment
from fabrictestbed_extensions.fablib.fablib import FablibManager
fablib = FablibManager()
slice = fablib.new_slice(name="docker-experiment")
node = slice.add_node(
name="docker-node",
site=fablib.get_random_site(),
cores=4,
ram=16,
disk=100,
image="docker_rocky_8",
)
node.add_fabnet()
# Enable Docker via post-boot
node.add_post_boot_upload_directory('node_tools', '.')
node.add_post_boot_execute('node_tools/enable_docker.sh {{ _self_.image }}')
slice.submit()
# Run a container
node = slice.get_node(name="docker-node")
stdout, stderr = node.execute(
"docker run -d -it "
"--name my_container "
"fabrictestbed/slice-vm-rocky8-multitool:0.0.1"
)
# View containers
stdout, stderr = node.execute("docker ps -a")
print(stdout)
# Execute commands in container
stdout, stderr = node.execute("docker exec my_container ip addr list")
print(stdout)
Docker Compose via Post-Boot
slice = fablib.new_slice(name="compose-experiment")
node = slice.add_node(
name="app-node",
site=fablib.get_random_site(),
cores=4,
ram=16,
disk=100,
image="docker_rocky_8",
)
# Upload and start Docker + application
node.add_post_boot_upload_directory('node_tools', '.')
node.add_post_boot_execute('node_tools/enable_docker.sh {{ _self_.image }}')
node.add_post_boot_upload_directory('docker_containers', '.')
node.add_post_boot_execute('cd docker_containers/my_app ; docker compose up -d')
slice.submit()
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.
- 2mo ago First seen · 323 lines · 14 tokens per session scan D 61686d7161a1
fabric-containers is a skill published in the GitHub repository fabric-testbed/claude-plugin-marketplace (2 stars, last pushed 8mo ago), licensed Apache-2.0. It adds 14 tokens to every session and 2,260 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it D with 2 findings (asks for root, reaches for credential files). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
fabric-containers compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| fabric-containersfabric-testbed/claude-plugin-marketplace | Skill | 2 | 8mo ago | Apache-2.0 | D | 14 | Claude Code |
| deploy-docker-composeomnigent-ai/omnigent | Skill | 11k | yesterday | Apache-2.0 | A | 84 | Claude Code, Codex |
| bdd-container-updateNVIDIA-AI-Blueprints/video-search-and-summarization | Skill | 2.0k | yesterday | Apache-2.0 | A | 117 | Cursor |
| securing-kubernetes-on-cloudxalgorix/xalgorix | Skill | 1.3k | 2d ago | Apache-2.0 | A | 80 | Claude Code, Codex |
| detecting-privilege-escalation-in-kubernetes-podsxalgorix/xalgorix | Skill | 1.3k | 2d ago | Apache-2.0 | A | 40 | Claude Code, Codex |
| docker-socket-mountPurpleAILAB/Decepticon | Skill | 6.5k | 8d ago | Apache-2.0 | B | 67 | Claude Code |
| k8s-networkingrohitg00/kubectl-mcp-server | Skill | 968 | 15d ago | MIT | A | 34 | Claude Code, Codex |