Metadata-Version: 2.4
Name: agentic-stacks
Version: 0.1.0
Summary: Installable skill packs that give AI agents deep domain expertise.
Project-URL: Homepage, https://www.agentic-stacks.com
Project-URL: Repository, https://github.com/agentic-stacks/agentic-stacks
Project-URL: Documentation, https://www.agentic-stacks.com/docs/getting-started
Project-URL: Tracker, https://github.com/agentic-stacks/agentic-stacks/issues
Author: Agentic Stacks
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.12
Requires-Dist: click>=8.1
Requires-Dist: fastapi>=0.115
Requires-Dist: httpx>=0.27
Requires-Dist: jinja2>=3.1
Requires-Dist: jsonschema>=4.20
Requires-Dist: pyyaml>=6.0
Requires-Dist: slowapi>=0.1.9
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest-tmp-files>=0.0.2; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: local
Requires-Dist: uvicorn[standard]>=0.32; extra == 'local'
Provides-Extra: mcp
Requires-Dist: mcp[cli]>=1.0; extra == 'mcp'
Description-Content-Type: text/markdown

# Agentic Stacks

[![CI](https://github.com/agentic-stacks/agentic-stacks/actions/workflows/ci.yml/badge.svg)](https://github.com/agentic-stacks/agentic-stacks/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

Installable skill packs that give AI agents deep domain expertise. A stack is a git repo that teaches an agent how to operate in a specific domain — deploying OpenStack, bootstrapping Kubernetes, managing server hardware, and more.

<p align="center">
  <img src="docs/images/i-know-kung-fu.jpg" alt="I know kung fu" width="600">
</p>

Pull a stack into your project and your AI agent instantly knows how to deploy, manage, troubleshoot, and upgrade the target software. Stacks teach agents *and* humans — amplifying what you can accomplish together.

## How It Works

```bash
# Start a project using a stack
agentic-stacks init agentic-stacks/openstack-kolla my-cloud
cd my-cloud

# Now talk to the agent — it knows OpenStack
# "I need an HA OpenStack cloud with OVN networking and Ceph storage
#  on these 10 hosts..."
```

The agent reads the stack's skills, asks the right questions, and creates the deployment configs. Everything it creates goes into your repo — reproducible, version-controlled, yours.

### Compose multiple domains

Need hardware expertise alongside your platform stack? Pull in more skills:

```bash
agentic-stacks pull hardware-dell    # now it knows Dell servers too
agentic-stacks list                  # see what's loaded
```

The agent reads all stacks and combines their expertise — hardware provisioning, platform deployment, and everything in between.

### Capture learnings as you go

Hit an issue? Ask your agent to document it. Stacks get smarter over time — every workaround, gotcha, and fix feeds back into the stack for the next person.

> "That NTP fix we just did — add it to known issues for this version."

## Available Stacks

<!-- STACKS-TABLE-START -->
| Stack | Target | Skills |
|-------|--------|--------|
| [docker](https://www.agentic-stacks.com/stacks/agentic-stacks/docker) | docker | 21 |
| [kubernetes-talos](https://www.agentic-stacks.com/stacks/agentic-stacks/kubernetes-talos) | talos-linux | 20 |
| [openstack-kolla](https://www.agentic-stacks.com/stacks/agentic-stacks/openstack-kolla) | openstack | 8 |
| [ceph](https://www.agentic-stacks.com/stacks/agentic-stacks/ceph) | ceph | 17 |
| [hardware-dell](https://www.agentic-stacks.com/stacks/agentic-stacks/hardware-dell) | Dell PowerEdge | 18 |
| [hardware-hpe](https://www.agentic-stacks.com/stacks/agentic-stacks/hardware-hpe) | hpe-ilo | 16 |
| [hardware-supermicro](https://www.agentic-stacks.com/stacks/agentic-stacks/hardware-supermicro) | Supermicro BMC | 17 |
| [frr](https://www.agentic-stacks.com/stacks/agentic-stacks/frr) | frr | 35 |
| [ipxe](https://www.agentic-stacks.com/stacks/agentic-stacks/ipxe) | ipxe | 20 |
<!-- STACKS-TABLE-END -->

Browse all stacks at [agentic-stacks.com/stacks](https://www.agentic-stacks.com/stacks).

## Install

```bash
pip install agentic-stacks
```

## CLI

```bash
# Start a new project from a stack
agentic-stacks init agentic-stacks/openstack-kolla my-project

# Pull stacks into .stacks/
agentic-stacks pull                    # pulls all from stacks.lock
agentic-stacks pull hardware-dell      # add another stack

# Manage stacks
agentic-stacks list                    # see loaded stacks
agentic-stacks update                  # update all to latest
agentic-stacks update --check          # check without updating
agentic-stacks remove hardware-dell    # remove a stack

# Search for stacks
agentic-stacks search kubernetes

# Create a new stack (for stack authors)
agentic-stacks create my-org/my-stack

# Validate a stack
agentic-stacks doctor --path ./my-stack
```

## What a Stack Looks Like

A stack is a git repo with this structure:

```
openstack-kolla/
├── CLAUDE.md               # Agent entry point — the expertise guide
├── stack.yaml              # Manifest — identity, skills, metadata
├── skills/                 # Markdown knowledge — teaches the agent
│   ├── deploy/
│   ├── health-check/
│   ├── config-build/
│   └── diagnose/
└── ...
```

The `CLAUDE.md` is the product — it's what makes the agent an expert. The skills directory contains detailed knowledge the agent references during operations.

## What a User's Project Looks Like

After `init` and working with the agent:

```
my-cloud/
├── .stacks/                # pulled stack repos (gitignored)
│   ├── openstack-kolla/    # platform expertise
│   └── hardware-dell/      # hardware expertise
├── CLAUDE.md               # points agent to .stacks/*/CLAUDE.md
├── stacks.lock             # pinned stack references
├── globals.yml             # kolla-ansible config (agent created this)
├── inventory/hosts.yml     # ansible inventory (agent helped build this)
└── ...
```

The output is native format for whatever tool the stack wraps. No custom formats — just the configs the tool expects.

## Distribution

Stacks are git repos. Pull clones them. No package managers, no tarballs.

- **Curated stacks** live under the [`agentic-stacks`](https://github.com/agentic-stacks) GitHub org
- **Third-party stacks** live in their own repos — pull by `org/name`

```bash
agentic-stacks pull openstack-kolla           # → github.com/agentic-stacks/openstack-kolla
agentic-stacks pull someuser/their-stack      # → github.com/someuser/their-stack
```

## Author a Stack

See the [authoring guide](https://www.agentic-stacks.com/docs/authoring) for how to create and publish your own stack.

```bash
agentic-stacks create my-org/my-stack
# edit skills, CLAUDE.md, stack.yaml
agentic-stacks doctor --path ./my-stack
agentic-stacks publish --path ./my-stack
```

## Development

```bash
pip install -e ".[dev,local,mcp]"
pytest -v --tb=short
```

## License

MIT — see [LICENSE](LICENSE).
