mod-actions
A moderation management toolkit for Civitai, enabling user actions and content reporting through the Civitai tRPC API.
Install
mkdir -p .claude/skills/mod-actions && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5871" && unzip -o skill.zip -d .claude/skills/mod-actions && rm skill.zipInstalls to .claude/skills/mod-actions
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
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.Key capabilities
- →Manage user states like ban and mute
- →Process reports and appeals
- →Moderate images and generation content
- →Issue and void strikes
- →Report NCMEC/CSAM content
- →Toggle content flags and model status
How it works
It interfaces with the Civitai tRPC API using authenticated requests to perform administrative actions on users, content, and reports.
Inputs & outputs
When to use mod-actions
- →Banning violating users
- →Removing inappropriate content
- →Managing content review queues
- →Handling NCMEC reporting
About this skill
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
- Copy
.env-exampleto.envin this skill directory - Add your Civitai API key (must belong to a moderator account)
- 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 & training | models, flagged-models, resolve-flagged, model-versions, rescan-model, restore-model, toggle-cannot-promote, toggle-cannot-publish, articles, training-models, approve-training, deny-training, 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, 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, --limit, --json, --dry-run
node .claude/skills/mod-actions/images.mjs review-counts
node .claude/skills/mod-actions/images.mjs review-queue --limit 20
node .claude/skills/mod-actions/images.mjs moderate 12345,67890 block --dry-run
node .claude/skills/mod-actions/images.mjs user-images 3879899 --json
node .claude/skills/mod-actions/images.mjs rescan 12345
reports.mjs — Report Handling
node .claude/skills/mod-actions/reports.mjs <command> [options]
| Command | R/W | Description |
|---|---|---|
list | READ | Reports by entity type (requires --type) |
set-status <reportId> <status> | WRITE | Set report status |
bulk-status <status> | WRITE | Bulk update statuses (requires --ids) |
update <reportId> | WRITE | Update report with status/notes |
appeals | READ | Recent appeals |
appeal-details <id> | READ | Appeal details |
resolve-appeal | WRITE | Resolve appeal (requires --ids, --entity-type, --status) |
Report Entity Types: model, comment, commentV2, image, resourceReview, article, post, reportedUser, collection, bounty, bountyEntry, chat, comicProject
Report Statuses: Pending, Processing, Actioned, Unactioned
Appeal Statuses: Pending, Approved, Rejected
Options: --type, --status, --ids, --entity-type, --internal, --message, --user-id, --start-date, --page, --limit, --query, --json, --dry-run
node .claude/skills/mod-actions/reports.mjs list --type image --limit 20
node .claude/skills/mod-actions/reports.mjs set-status 456 Actioned --dry-run
node .claude/skills/mod-actions/reports.mjs bulk-status Actioned --ids 1,2,3
node .claude/skills/mod-actions/reports.mjs appeals --user-id 3879899
node .claude/skills/mod-actions/reports.mjs resolve-appeal --ids 10,11 --entity-type Image --status Approved
generation.mjs — Generation Moderation
node .claude/skills/mod-actions/generation.mjs <command> [options]
| Command | R/W | Description |
|---|---|---|
flagged-consumers | READ | Flagged generation consumers |
flagged-reasons | READ | Flagging reasons |
consumer-strikes <userId> | READ | Consumer's generation strikes |
review-strikes <userId> | WRITE | Mark strikes as reviewed |
user-generations <userId> | READ | User's generated images |
restrictions | READ | All generation restrictions |
resolve-restriction <id> | WRITE | Resolve restriction (Upheld/Overturned) |
allowlist-add | WRITE | Add prompt trigger to allowlist |
debug-audit <prompt> | READ | Test prompt auditing |
todays-counts | READ | Today's prohibited request counts |
suspicious-matches | READ | Saved suspicious audit matches |
Options: --status <Pending|Upheld|Overturned>, --reason, --start-date, --message, --trigger, --category, --negative-prompt, --user-id, --username, --restriction-id, --page, --limit, --json, --dry-run
node .claude/skills/mod-actions/generation.mjs flagged-consumers
node .claude/skills/mod-actions/generation.mjs consumer-strikes 3879899
node .claude/skills/mod-actions/generation.mjs restrictions --status Pending
node .claude/skills/mod-actions/generation.mjs resolve-restriction 42 --status Upheld --message "Confirmed violation" --dry-run
node .claude/skills/mod-actions/generation.mjs debug-audit "some prompt text"
node .claude/skills/mod-actions/generation.mjs allowlist-add --trigger "girl" --category "age" --reason "False positive"
content.mjs — Content & Training Moderation
node .claude/skills/mod-actions/content.mjs <command> [options]
| Command | R/W | Description |
|---|---|---|
models | READ | Models for mod review |
flagged-models | READ | Flagged models |
resolve-flagged | WRITE | Resolve flagged models (requires --ids) |
model-versions | READ | Model versions for mod |
rescan-model <id> | WRITE | Re-ingest a model |
restore-model <id> | WRITE | Restore deleted model |
toggle-cannot-promote <id> | WRITE | Toggle promotion eligibility |
toggle-cannot-publish <id> | WRITE | Toggle publish ability |
articles | R |
Content truncated.
When not to use it
- →Non-moderator accounts
- →Production environments without dry-run testing
Prerequisites
Limitations
- →Destructive actions like content removal are permanent
- →Requires moderator-level API permissions
How it compares
It provides a command-line interface for complex moderation workflows that would otherwise require manual API calls or dashboard interaction.
Compared to similar skills
mod-actions side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| mod-actions (this skill) | 1 | 4mo | Review | Advanced |
| pptx | 393 | 6mo | Review | Advanced |
| nano-pdf | 63 | 2mo | Review | Beginner |
| video-downloader | 101 | 7mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by civitai
View all by civitai →You might also like
pptx
anthropics
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
nano-pdf
openclaw
Edit PDFs with natural-language instructions using the nano-pdf CLI.
video-downloader
ComposioHQ
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
youtube-transcript
michalparkola
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube. Also use when user wants to transcribe or get captions/subtitles from a YouTube video.
using-superpowers
obra
Use when starting any conversation - establishes mandatory workflows for finding and using skills, including using Skill tool before announcing usage, following brainstorming before coding, and creating TodoWrite todos for checklists
browser-automation
browserbase
Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications. Triggers include "browse", "navigate to", "go to website", "extract data from webpage", "screenshot", "web scraping", "fill out form", "click on", "search for on the web". When taking actions be as specific as possible.