Beginner 10 min read

Curation & Presets

Why v3 is curated, how presets shape what your AI sees, and how the ask-before-enable policy keeps your context lean and your behavior predictable. This is the most important new concept in v3 to internalize.

In This Tutorial

  1. Why Curation?
  2. The Command Registry
  3. Workflow Presets
  4. The Ask-Before-Enable Policy
  5. Discovery Commands
  6. Common Patterns

1 Why Curation?

CLAUDIUS ships ~230 commands across 26 categories. If every command's full documentation hit Claude's context on every prompt, you'd burn 12,000+ tokens before saying a word. Worse, the AI would have to scan irrelevant commands every time it answered a question.

v3's answer is to track every command in a registry and let you mark each one enabled or disabled per project. The auto-generated Claudius/CLAUDIUS.md only spells out enabled commands in detail; disabled ones appear in a one-line index entry so the AI can still see they exist and offer to enable them.

The trade-off

Curation prioritizes signal density over completeness. Your AI sees less but knows what's possible. When you ask for something it can't currently do, the response includes the exact enable call to surface it.

2 The Command Registry

Every command has four pieces of metadata in the registry:

The same registry tracks user Python commands and skill packs. There's no second-class status: a Python script with # @claudius headers shows up next to a built-in C++ command in the index.

Inspect the live registry:

Discovery payloads
# Category summary with enabled counts
{ "category": "help", "command": "list_categories", "parameters": {} }

# Fuzzy-search the full index
{ "category": "help", "command": "find", "parameters": { "query": "render mrq" } }

# Just the disabled-but-available ones
{ "category": "help", "command": "list_disabled", "parameters": {} }

3 Workflow Presets

A preset is a bundle of enable rules. Loading fps turns on every command tagged core, fps, blueprint, level, animation, debug — about 105 commands.

Available presets:

Built-in presets (v3.1)
minimal          # core meta-commands only — smallest viable surface
fps              # first-person shooter scaffolding
platformer       # 3D platformer / movement-heavy
level_design     # whitebox layout, set dressing
animation        # generic animation asset authoring
animation_studio # shot-based commercial work (NEW)
open_world       # open-world, PCG, large scenes
everything       # enable every command in the registry

Switch preset at any time:

claudius_request.json
{
  "category": "config",
  "command": "load_preset",
  "parameters": { "preset": "animation_studio" }
}

Loading a preset is non-destructive in the sense that nothing is deleted — it just rewrites the enable set. Your skill packs, user commands, and profile stay intact. Claudius/CLAUDIUS.md regenerates immediately.

Mix and match

Load a preset as a baseline, then turn individual commands on or off with config.enable_command / config.disable_command. Your tweaks persist across sessions in Saved/Claudius/config.json.

4 The Ask-Before-Enable Policy

When the AI tries to call a disabled command, the plugin's response depends on your auto_enable_policy:

Policy modes
ask     # default. Returns command_disabled with the suggested enable call.
        # The AI surfaces the suggestion and waits for user confirmation.

always  # Plugin silently runs config.enable_command and processes the call.
        # Trade-off: faster iteration, less visibility into what's getting added.

never   # Plugin returns a hard failure. User must enable manually via UI/JSON.
        # Use when you want strict control over what the AI can reach.

Sample command_disabled response under the default ask policy:

claudius_response.json
{
  "success": false,
  "error_code": "command_disabled",
  "message": "sequencer.create_sequence is currently disabled",
  "suggested_call": {
    "category": "config",
    "command": "enable_command",
    "parameters": { "command": "sequencer.create_sequence" }
  }
}

Change the policy at any time:

claudius_request.json
{
  "category": "config",
  "command": "set_auto_enable_policy",
  "parameters": { "policy": "ask" }
}

5 Discovery Commands

The help.* and config.* categories are always enabled, regardless of preset. They're the discovery primitives the AI leans on:

Always-available discovery
help.ping             # round-trip check
help.find             # fuzzy-search the full index
help.list_categories  # category + enabled count summary
help.list_disabled    # every disabled-but-available command
help.list_packs       # installed skill packs

config.status         # profile + health + enabled counts + paths
config.list_presets   # preset names

The config.status response is the canonical "what's the state" probe — profile, enabled command count, paths, link state, all in one call:

config.status response (abridged)
{
  "output": {
    "profile": { "workflow": "animation_studio", ... },
    "setup_complete": true,
    "auto_enable_policy": "ask",
    "enabled_commands": 112,
    "total_commands": 230,
    "installed_packs": 2,
    "claudius_md_path": ".../Claudius/CLAUDIUS.md",
    "user_claude_md_path": ".../CLAUDE.md",
    "user_claude_md_state": "linked",
    "estimated_tokens": 8120
  }
}

6 Common Patterns

Enable a single command for one task

"I just want to render this one sequence." Enable, do the work, optionally disable again to keep the surface clean.

Enable / use / disable
{ "category": "config", "command": "enable_command",
  "parameters": { "command": "sequencer.render_sequence" } }

Enable an entire category

For sustained work in one area — e.g. you're doing a sequencer-heavy day:

Enable a whole category
{ "category": "config", "command": "enable_category",
  "parameters": { "category": "sequencer" } }

Save and share a profile

Export the current profile + enable set as JSON, hand it to a teammate:

Profile portability
{ "category": "config", "command": "export_profile", "parameters": {} }
{ "category": "config", "command": "import_profile",
  "parameters": { "profile_json": "{...}" } }

"What can CLAUDIUS do for me right now?"

One call gives you a category-by-category snapshot:

help.list_categories response (abridged)
{
  "output": {
    "categories": [
      { "name": "level",    "total": 28, "enabled": 22 },
      { "name": "sequencer", "total": 13, "enabled": 13 },
      { "name": "control_rig", "total": 7, "enabled": 2 },
      ...
    ]
  }
}
Back to
All Tutorials