Documentation Index
Fetch the complete documentation index at: https://docs.vijil.ai/llms.txt
Use this file to discover all available pages before exploring further.
Red teaming goes beyond standard Harnesses by simulating realistic adversarial users. Personas define who is attacking, Policies define the rules Agents must follow, and red team campaigns execute multi-strategy attack sequences.
Personas
Personas represent user archetypes — from benign customers to malicious attackers — that shape how Probes are generated for custom Harnesses.
| Command | Description |
|---|
vijil persona preset-list | List built-in Persona presets |
vijil persona from-preset | Create a Persona from a preset |
vijil persona create | Create a custom Persona |
vijil persona list | List Personas |
vijil persona get | Get a specific Persona |
vijil persona update | Update a Persona |
vijil persona delete | Delete a Persona |
vijil persona preset-list
List built-in Persona presets. Presets are categorized as professional, adversarial, or support.
vijil persona preset-list
vijil persona preset-list --preset-category adversarial
| Flag | Description |
|---|
--preset-category | Filter by category: professional, adversarial, support |
--limit | Maximum number of results |
--offset | Number of results to skip |
--json | Output as JSON |
vijil persona from-preset
Create a Persona from a preset.
vijil persona from-preset <preset_id>
vijil persona from-preset <preset_id> --name-override "Custom Attacker"
| Flag | Description |
|---|
--name-override | Override the preset’s default name |
--json | Output as JSON |
vijil persona create
Create a custom Persona.
vijil persona create \
--name "Frustrated Customer" \
--role "End user" \
--intent adversarial \
--knowledge-level intermediate
| Flag | Description |
|---|
--name | Persona display name (required) |
--role | Persona role (required) |
--role-description | Extended role description |
--intent | benign, curious, adversarial, or malicious |
--knowledge-level | beginner, intermediate, advanced, or expert |
--skill-level | novice, competent, proficient, or expert |
--language | Language the Persona uses |
--tags | Tags (JSON array) |
--json | Output as JSON |
vijil persona list
List Personas for the active team.
vijil persona list
vijil persona list --intents adversarial,malicious
| Flag | Description |
|---|
--intents | Filter by intent(s): benign, curious, adversarial, malicious |
--is-preset | Show only presets |
--search | Search in name, description, and role |
--limit | Maximum number of results |
--offset | Number of results to skip |
--json | Output as JSON |
vijil persona get
Get a specific Persona.
vijil persona get <persona_id> --json
vijil persona update
Update a Persona.
vijil persona update <persona_id> --intent malicious --skill-level expert
Accepts the same flags as vijil persona create.
vijil persona delete
Delete a Persona.
vijil persona delete <persona_id>
vijil persona delete <persona_id> --yes # skip confirmation
Policies
Policies define the rules and constraints agents must follow. Attaching Policies to a custom Harness generates Probes that specifically test compliance.
| Command | Description |
|---|
vijil policy preset-list | List built-in Policy presets |
vijil policy from-preset | Create a Policy from a preset |
vijil policy create | Create a custom Policy |
vijil policy list | List Policies |
vijil policy get | Get a specific Policy |
vijil policy activate | Activate a Policy |
vijil policy patch | Update a Policy |
vijil policy delete | Delete a Policy |
vijil policy add-rule | Add a rule to a Policy |
vijil policy rule-list | List rules in a Policy |
vijil policy preset-list
List built-in Policy presets.
vijil policy preset-list
vijil policy preset-list --category compliance
| Flag | Description |
|---|
--category | Filter by category |
--limit | Maximum number of results |
--offset | Number of results to skip |
--json | Output as JSON |
vijil policy from-preset
Copy a preset Policy into your team.
vijil policy from-preset <preset_id>
vijil policy from-preset <preset_id> --name-override "GDPR Policy"
vijil policy create
Create a Policy from text.
vijil policy create \
--name "Data Handling Policy" \
--category privacy \
--source-text "The agent must not store or repeat personal data..."
| Flag | Description | Required |
|---|
--name | Policy display name | Yes |
--category | privacy, ethics, security, compliance, operational, brand, or custom | Yes |
--description | Policy description | |
--source-text | Full policy text | |
--tags | Tags (JSON array) | |
--json | Output as JSON | |
vijil policy list
List Policies for the active team.
vijil policy list
vijil policy list --category security --status active
| Flag | Description |
|---|
--category | Filter by category |
--status | Filter by status |
--search | Search in name and description |
--limit | Maximum number of results |
--offset | Number of results to skip |
--json | Output as JSON |
vijil policy get
Get a specific Policy.
vijil policy get <policy_id> --json
vijil policy activate
Activate a draft Policy so it can be used in Harness generation.
vijil policy activate <policy_id>
vijil policy patch
Update Policy metadata.
vijil policy patch <policy_id> \
--name "Updated Policy Name" \
--status active
| Flag | Description |
|---|
--name | New name |
--description | New description |
--category | New category |
--status | draft, active, or archived |
--source-text | New policy text |
--tags | Tags (JSON array) |
--json | Output as JSON |
vijil policy delete
Delete a Policy.
vijil policy delete <policy_id>
vijil policy delete <policy_id> --yes
vijil policy add-rule
Add a structured rule to a Policy.
vijil policy add-rule <policy_id> \
--rule-type prohibition \
--action "share" \
--natural-language "The agent must not share customer PII with third parties." \
--consequence '{}'
| Flag | Description | Required |
|---|
--rule-type | permission, prohibition, obligation, or recommendation | Yes |
--action | Action the rule governs | Yes |
--natural-language | Human-readable rule statement | Yes |
--consequence | Consequence definition (JSON object) | Yes |
--target | Target entity | |
--assignee | Assignee entity | |
--category | Rule category | |
--json | Output as JSON | |
vijil policy rule-list
List rules within a Policy.
vijil policy rule-list --policy-id <policy_id>
| Flag | Description |
|---|
--policy-id | Filter by policy ID |
--status | Filter by rule status |
--category | Filter by category |
--limit | Maximum number of results |
--offset | Number of results to skip |
--json | Output as JSON |
Red Team Campaigns
Red team campaigns run adversarial attack sequences against your Agent using dedicated tools such as Garak, PromptFoo, and PyRIT.
| Command | Description |
|---|
vijil redteam tools | List available red team tools |
vijil redteam run | Start a campaign |
vijil redteam status | Check campaign status |
vijil redteam results | Get campaign results |
vijil redteam logs | Get campaign logs |
vijil redteam list | List campaigns |
vijil redteam cancel | Cancel a running campaign |
vijil redteam delete | Delete a campaign |
List available red team tools and their supported attack categories.
vijil redteam tools --json
vijil redteam run
Create and start a red team campaign.
vijil redteam run \
--tool garak \
--agent-id "$AGENT_ID" \
--purpose "Customer support chatbot" \
--categories '["jailbreak", "prompt_injection"]' \
--num-tests 20 \
--wait
| Flag | Description | Required |
|---|
--tool | diamond_security, promptfoo, garak, pyrit, or unknown | Yes |
--purpose | Agent purpose description (used for context-aware attacks) | Yes |
--categories | Attack categories to test (JSON array) | Yes |
--agent-id | Agent ID (resolves the endpoint URL automatically) | |
--agent-url | Target Agent endpoint URL (if not using --agent-id) | |
--agent-api-key | API key for the target Agent | |
--agent-model-name | Model name if the Agent is an LLM gateway | |
--num-tests | Number of test cases per category | |
--strategies | Evaluation strategies (JSON array, tool-specific) | |
--custom-plugins | Custom plugin names (JSON array, for CUSTOM category) | |
--provider-config | Provider-specific configuration (JSON object) | |
--wait | Poll until the campaign completes | |
--json | Output as JSON | |
Save the campaign ID from the output:
export CAMPAIGN_ID="c1d2e3f4-..."
vijil redteam status
Check the status of a campaign.
vijil redteam status <campaign_id> --json
vijil redteam results
Get the results of a completed campaign.
vijil redteam results <campaign_id> --json
vijil redteam logs
Get execution logs for a campaign.
vijil redteam logs <campaign_id> --json
vijil redteam list
List all red team campaigns for the active team.
vijil redteam list --json
vijil redteam cancel
Cancel a running campaign.
vijil redteam cancel <campaign_id>
vijil redteam delete
Delete a campaign.
vijil redteam delete <campaign_id>
vijil redteam delete <campaign_id> --yes