Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PyRIT GUI (CoPyRIT)

CoPyRIT is a web-based graphical interface for PyRIT built with React and Fluent UI. It provides an interactive way to run attacks, configure targets and converters, and view results — all from a browser.

Getting Started

There are several ways to run CoPyRIT:

PyRIT Backend CLI

If you have PyRIT installed, use the pyrit_backend command to start the server. The bundled frontend is served automatically.

pyrit_backend

Then open http://localhost:8000 in your browser.

Docker

CoPyRIT is also available as a Docker container. See the Docker setup for details.

Azure Deployment

CoPyRIT can be deployed to Azure Container Apps with Entra authentication and managed identity. See the Azure deployment guide for the full setup.

To deploy an isolated instance for an external team, see Deploy a New Instance.


Views

CoPyRIT has three main views, accessible from the left sidebar: Chat, Attack History, and Target Configuration. A dark/light theme toggle is available at the bottom of the sidebar.

Chat View

The Chat view is the primary workspace for running interactive attacks against configured targets.

Text-to-text chat

Sending Messages

Type a message and press Enter (or click Send) to send it to the active target. The response appears below. Shift+Enter inserts a newline without sending.

Attachments

Click the attachment button to add images, audio, video, or documents to your message. Supported types include image/*, audio/*, video/*, .pdf, .doc, .docx, and .txt. Attachments are displayed as chips below the input with type icons and file sizes.

Multi-Modal Responses

CoPyRIT renders different response types inline:

Text-to-image response

Branching Conversations

Each assistant message has four action buttons:

  1. Copy to input: Copies the message content and attachments into the current input box.

  2. Copy to new conversation: Creates a new conversation within the same attack and copies the message to its input.

  3. Branch conversation: Clones the conversation up to the selected message into a new conversation within the same attack.

  4. Branch into new attack: Creates an entirely new attack with the conversation cloned up to the selected message.

Branching into a new conversation

Conversations Panel

Click the panel toggle in the ribbon to open the conversations sidebar. This panel shows all conversations within the current attack, including message counts and last-message previews. You can switch between conversations, create new ones, and promote a conversation to be the “main” conversation.

Labels

The labels bar in the ribbon displays the current attack’s labels (e.g., operator, operation). Labels are key-value pairs that help organize and filter attacks. You can add, edit, and remove labels inline. The operator and operation labels are required and cannot be removed.

Behavioral Guards

CoPyRIT enforces several safety guards:

Attack History

The History view lists all past attacks with filtering and pagination.

Attack history view

Filters

Filter attacks by:

Click “Reset” to clear all filters.

Attack Table

The table displays:

ColumnDescription
StatusOutcome badge (success/failure/undetermined)
Attack TypeThe attack class name
TargetTarget type and model name
OperatorWho ran the attack
OperationOperation label
MsgsTotal message count
ConvsNumber of conversations
ConvertersConverter badges (truncated with tooltip)
LabelsAdditional label badges
Created / UpdatedTimestamps
Last MessagePreview of the most recent message

Click any row to open the attack in the Chat view.

Pagination

Results are paginated (25 per page) with “First” and “Next” navigation buttons.

Target Configuration

The Configuration view manages the targets available for attacks.

Target configuration

Target Table

Lists all registered targets with their type, endpoint, and model name. Click “Set Active” to select a target for use in the Chat view. The active target is highlighted with an “Active” badge.

Creating Targets

Click “New Target” to open the creation dialog. Fill in:

Auto-Populating Targets

Targets can also be auto-populated by adding an initializer (e.g., airt) to your ~/.pyrit/.pyrit_conf file. This reads endpoints from your .env and .env.local files. See .pyrit_conf_example for details.


Connection Health

CoPyRIT monitors the backend connection and shows a status banner: