Skip to content
Machine Learning
Skill

/mod-actions

Comprehensive moderation toolkit: user actions (ban/mute/DM), strike system, image moderation, report handling, generation moderation, content/training moderation, and NCMEC/CSAM reporting. All via Civitai tRPC API.

BOOST
From plugin
civitai
7.3k48 skills15 agents3 commands
Install
$ npx -y skills add civitai/civitai --skill mod-actions --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/mod-actions

Context preview

The summary Claude sees to decide when to auto-load this skill.

Comprehensive moderation toolkit: user actions (ban/mute/DM), strike system, image moderation, report handling, generation moderation, content/training moderation, and NCMEC/CSAM reporting. All via Civitai tRPC API.

SKILL.md

mod-actions.SKILL.md
name: mod-actions
description: "Comprehensive moderation toolkit: user actions (ban/mute/DM), strike system, image moderation, report handling, generation moderation, content/training moderation, and NCMEC/CSAM reporting. All via Civitai tRPC API."

Moderator Actions

Comprehensive moderation toolkit for Civitai. Covers user actions, strike management, image moderation, report handling, generation moderation, content/training moderation, and NCMEC/CSAM reporting.

All scripts use the Civitai tRPC API with Bearer token authentication, ensuring actions go through the proper service layer with full side effects.

Setup

1. Copy `.env-example` to `.env` in this skill directory 2. Add your Civitai API key (must belong to a moderator account) 3. Optionally set the API URL (defaults to production)

cp .claude/skills/mod-actions/.env.example .claude/skills/mod-actions/.env
# Edit .env and add your API key

**Important:** The API key must belong to a user with moderator privileges.

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | `CIVITAI_API_KEY` | Yes | - | Your Civitai API key | | `CIVITAI_API_URL` | No | `https://civitai.com` | API base URL |

---

Skill Files

| File | Domain | Commands | |------|--------|----------| | `query.mjs` | User moderation | user, ban, mute, leaderboard, remove-content, dm | | `strikes.mjs` | Strike system | get-user, standings, list, create, void | | `images.mjs` | Image moderation | review-queue, review-counts, moderate, tos-violation, rescan, report-csam, poi-tags, user-images, rating-requests, ingestion-errors, resolve-ingestion, downleveled, pending-ingestion, toggle-flag | | `reports.mjs` | Report handling | list, set-status, bulk-status, update, appeals, appeal-details, resolve-appeal | | `generation.mjs` | Generation moderation | flagged-consumers, flagged-reasons, consumer-strikes, review-strikes, user-generations, restrictions, resolve-restriction, allowlist-add, debug-audit, todays-counts, suspicious-matches | | `content.mjs` | Content moderation | models, flagged-models, resolve-flagged, model-versions, rescan-model, restore-model, toggle-cannot-promote, toggle-cannot-publish, articles, mod-rule | | `model3ds.mjs` | 3D Models moderation | list, get, files, unpublish, delete, restore, set-nsfw-level, toggle-tos, toggle-poi, toggle-minor, toggle-nsfw, toggle-unlisted | | `csam.mjs` | NCMEC/CSAM reporting | reports, stats, image-resources, create-report |

---

query.mjs — User Moderation

node .claude/skills/mod-actions/query.mjs <command> [options]

| Command | Description | |---------|-------------| | `user <id\|username>` | Look up user info | | `ban <id\|username>` | Toggle ban status | | `mute <id\|username>` | Toggle mute status | | `leaderboard <id\|username> <true\|false>` | Set leaderboard eligibility | | `remove-content <id\|username>` | Remove all user content (DESTRUCTIVE) | | `dm <id\|username>` | Send a DM (requires `--message`) |

**Options:** `--json`, `--dry-run`, `--reason <code>`, `--message <text>`, `--internal <text>`

**Ban Reason Codes:** SexualMinor, SexualMinorGenerator, SexualMinorTraining, SexualPOI, Bestiality, Scat, Nudify, Harassment, SpamBot, LeaderboardCheating, BuzzCheating, RRDViolation, Other

node .claude/skills/mod-actions/query.mjs user 3879899
node .claude/skills/mod-actions/query.mjs ban 3879899 --reason Other --message "ToS violation" --dry-run
node .claude/skills/mod-actions/query.mjs dm 3879899 --message "Please review our guidelines"

---

strikes.mjs — Strike System

node .claude/skills/mod-actions/strikes.mjs <command> [options]

| Command | R/W | Description | |---------|-----|-------------| | `get-user <userId>` | READ | Strike history for a user | | `standings` | READ | User standings (filter: active/muted/flagged) | | `list` | READ | Paginated strike list with filters | | `create <userId>` | WRITE | Issue a strike (requires `--reason`, `--description`) | | `void <strikeId>` | WRITE | Void a strike (requires `--reason`) |

**Strike Reasons:** BlockedContent, RealisticMinorContent, CSAMContent, TOSViolation, HarassmentContent, ProhibitedContent, ManualModAction

**Options:** `--reason`, `--description`, `--points <1-3>`, `--entity-type`, `--entity-id`, `--report-id`, `--expires-days`, `--status <Active,Expired,Voided>`, `--sort <points|score|lastStrike|created>`, `--sort-order <asc|desc>`, `--flagged-for-review`, `--has-active-strikes`, `--page`, `--limit`, `--json`, `--dry-run`

node .claude/skills/mod-actions/strikes.mjs get-user 3879899
node .claude/skills/mod-actions/strikes.mjs standings --has-active-strikes --limit 10
node .claude/skills/mod-actions/strikes.mjs create 3879899 --reason BlockedContent --description "Uploaded prohibited content" --points 1 --dry-run
node .claude/skills/mod-actions/strikes.mjs void 42 --reason "False positive from scanner"

---

images.mjs — Image Moderation

node .claude/skills/mod-actions/images.mjs <command> [options]

| Command | R/W | Description | |---------|-----|-------------| | `review-queue` | READ | Image review queue | | `review-counts` | READ | Queue tab counts | | `moderate <ids> <action>` | WRITE | Block/unblock images | | `tos-violation <imageId>` | WRITE | Flag as TOS violation | | `rescan <imageId>` | WRITE | Re-ingest/rescan image | | `report-csam <imageIds>` | WRITE | Report images as CSAM | | `poi-tags` | READ | Person-of-interest tags | | `user-images <userId>` | READ | All images for a user | | `rating-requests` | READ | NSFW rating review requests | | `ingestion-errors` | READ | Images with ingestion errors | | `resolve-ingestion <id>` | WRITE | Resolve ingestion error | | `downleveled` | READ | Downleveled images | | `pending-ingestion` | READ | Pending ingestion images | | `toggle-flag <imageId>` | WRITE | Toggle image flag |

**Options:** `--ids`, `--action`, `--review-type`, `--cursor`, `--page`, `--li

Read more
Ships withcivitai

A repository of models, textual inversions, and more

Get the whole plugin

Other skills on civitai.