Skip to main content
The Send library (libs/tools/send) provides secure, ephemeral sharing functionality for Bitwarden. Send allows users to transmit sensitive information (text or files) to anyone through an encrypted, self-destructing link.

Overview

The Send library is split into two main packages:
  • @bitwarden/send-core - Core types, models, and services for Send functionality
  • @bitwarden/send-ui - Angular UI components for Send management
Send is currently used by:
  • Bitwarden Web Vault
  • Desktop Application
  • Browser Extension
  • CLI

Architecture

The Send library follows a service-oriented architecture with clear separation between core business logic and UI presentation.

Core Services

SendFormService

File: libs/tools/send/send-ui/src/send-form/abstractions/send-form.service.ts Service for creating and modifying Sends, handling encryption and server communication. Methods:

SendItemsService

File: libs/tools/send/send-ui/src/services/send-items.service.ts Manages the list of user’s Sends, providing filtering, sorting, and state management.

SendListFiltersService

File: libs/tools/send/send-ui/src/services/send-list-filters.service.ts Handles filtering logic for Send lists (by type, expiration, deletion date, etc.).

Send Types

Sends support two content types:

Text Send

Shares text content securely. The text is encrypted and can only be accessed through the generated link. Properties:
  • Text content (encrypted)
  • Optional hiding of text (requires manual reveal)
  • Maximum access count
  • Expiration date
  • Deletion date
  • Password protection

File Send

Shares files securely. Files are encrypted before upload and can only be downloaded through the generated link. Properties:
  • Encrypted file (up to 1GB for premium users)
  • File name and size
  • Maximum access count
  • Expiration date
  • Deletion date
  • Password protection

Components

Located in libs/tools/send/send-ui/src/

SendFormComponent

File: send-form/components/send-form.component.ts Main component for creating and editing Sends. Provides a complete form interface with validation. Usage:

SendDetailsComponent

File: send-form/components/send-details/send-details.component.ts Component for displaying and editing Send details (name, notes, etc.).

SendFileDetailsComponent

File: send-form/components/send-details/send-file-details.component.ts Component specifically for file Send details, including file selection and upload.

SendTextDetailsComponent

File: send-form/components/send-details/send-text-details.component.ts Component for text Send details, including text input and hiding options.

SendListComponent

File: send-list/send-list.component.ts Displays a list of user’s Sends with filtering and search capabilities. Usage:

SendTableComponent

File: send-table/send-table.component.ts Table view for displaying Sends with sortable columns.

NewSendDropdownComponent

File: new-send-dropdown/new-send-dropdown.component.ts Dropdown menu for creating new Sends (text or file).

SendSearchComponent

File: send-search/send-search.component.ts Search interface for filtering Sends by name or notes.

SendListFiltersComponent

File: send-list-filters/send-list-filters.component.ts UI component for Send filtering options (type, status, etc.).

Send Configuration

The SendFormConfig interface defines how the Send form behaves:

Send Models

Sends use the following key models from @bitwarden/common:

SendView

Decrypted Send data for display and editing:

Send

Encrypted Send data for storage:

Creating a Send

Example: Creating a Text Send
Example: Creating a File Send

Send Permissions

Send functionality can be restricted by:
  1. User Account Type - Premium features for file Sends
  2. Organization Policies - Admins can disable Send for users
  3. Send Limits - File size limits, access count limits

Security Features

  • End-to-End Encryption - All Send content is encrypted before leaving the client
  • Zero-Knowledge - Bitwarden servers cannot decrypt Send content
  • Access Controls - Maximum access counts, expiration dates, deletion dates
  • Password Protection - Optional password requirement for accessing Sends
  • Email Hiding - Option to hide sender’s email from recipients
  • Audit Trail - Access count tracking

Integration Example

Complete Send Workflow: