Skip to main content
Glama
README.md
# 💠 Corrupt CLI - Master Infrastructure Engine

![Corrupt Solutions](https://placehold.co/1200x400/ffffff/000000?text=CORRUPT+SOLUTIONS+CLI)

The **Corrupt CLI** is a zero-configuration scaffolding engine and Model Context Protocol (MCP) server. It instantly generates production-ready, white-labeled web architectures for local businesses and SaaS platforms.

Built by [Corrupt Solutions](https://corrupt.solutions).

## 🚀 The generators

Three white-label site generators. Full detail + a "which one do I pick?" guide in
[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).

**Dealership / Local Service — two tiers:**

1. **Simple — `corrupt-dealership-engine/`**
   - **Stack:** static HTML/JS/Tailwind + Python build. No backend.
   - **What:** a fast brochure site with real lead capture. Edit a JSON, re-render,
     drop `dist/` on any static host. Cheapest and fastest to ship.

2. **Pro — `corrupt-dealership-pro/`**
   - **Stack:** Next.js + Supabase (Postgres/RLS, Auth, Storage, Edge Functions).
   - **What:** the static site *plus* a real, RLS-secured admin portal — OTP login,
     database inventory with photo uploads, credit-application inbox. Configured by
     editing one config file + `.env` (no token replacement).

**Membership / Booking SaaS — `CorruptCLI-Engine/`**
   - **Target:** Gyms, Salons, Clubs, member-based orgs.
   - **Stack:** Next.js + Supabase + Deno Edge Functions; Stripe billing, scheduling,
     RLS, optional liability waivers.

> `engine` vs `pro`: the Simple tier has **no backend** (static, edit-JSON-and-render);
> the Pro tier is a **full app** with a real admin and a database. Pick Simple for
> speed and zero infrastructure, Pro for a live admin and DB-backed inventory. See
> [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).

---

## 💻 Human Installation

Run the following commands to install the CLI globally on your machine:

```bash
git clone https://github.com/CorruptFun/corrupt-cli.git
cd corrupt-cli
./install.sh
```

**Usage:**
Type `corrupt` in your terminal to launch the interactive selector.

---

## 🤖 AI Agent Installation (MCP Server)

This repository includes a native FastMCP server, allowing AI agents (Claude, Cursor, Hermes) to autonomously scaffold these architectures for you.

Add the following to your agent's `config.yaml` or MCP configuration:

```json
{
  "mcpServers": {
    "corrupt-cli": {
      "command": "python3",
      "args": ["/path/to/corrupt-cli/corrupt-mcp/server.py"]
    }
  }
}
```

**Available MCP Tools:**
- `scaffold_inventory_site`: Generates the Dealership/Local Service stack.
- `scaffold_saas_platform`: Generates the Supabase/Next.js Membership stack.
- `list_verticals` / `standup_site`: Stand up **any** Next.js + Supabase app —
  scaffold, provision Supabase, deploy edge functions, deploy to Vercel, run the
  security gate. See below.
- `create_vertical_pack`: Teach the server a new site type from an app you have.

---

## 🧩 Standing up any site — vertical packs

The stand-up automation is not dealership-specific. The engine
(`corrupt-mcp/standup_core.py`) knows Supabase and Vercel and nothing about any
business domain; the domain lives in a **vertical pack** — a directory with a
`vertical.json` naming the app template, the baseline migration, the config file
to generate, and the edge functions to deploy. The dealership is simply the first
pack.

**Already have a Next.js + Supabase app?** Wrap it:

```
create_vertical_pack(pack_path="~/packs/bistro", name="bistro",
                     template_dir="~/code/bistro-app", ...)
```
```bash
export CORRUPT_VERTICALS_PATH=~/packs
```
```
standup_site(vertical="bistro", target_path="~/sites/bistro-verde",
             config_json='{"brand_name":"Bistro Verde", ...}')
```

**No schema yet?** Declare the domain as a *blueprint* and the compiler writes
the database for you — tables, RLS policies, admin allow-list, storage buckets,
notification trigger, Data API grants — plus a notification edge function and
TypeScript row types:

```
list_recipes                                    # restaurant, services, realty, portfolio
preview_blueprint_schema(recipe="restaurant")   # read the SQL, write nothing
create_vertical_from_blueprint(pack_path="~/packs/taqueria", recipe="restaurant")
```

Everything a blueprint declares is one of two shapes: a **catalog** the public
browses and admins write (vehicles, menu items, listings, services), or an
**inbox** the public submits into and only admins read (credit applications,
reservations, showing requests). Most local-business sites are exactly one of
each.

Generated schemas are applied to a real Postgres in the test suite, and their
access control is exercised as an anonymous visitor, a signed-in stranger, and an
admin — so the policies are checked, not just plausible.

> Agents: call `vertical_authoring_guide` first — it returns the decision tree,
> the field reference, and the rules as structured data.

Full guide — manifest reference, blueprints, placeholders, config emitters, what
the engine assumes, troubleshooting: [`docs/VERTICALS.md`](docs/VERTICALS.md).

---

## 📜 License & Usage

Created for the community by Corrupt Solutions.