diff --git a/book/src/configuration.md b/book/src/configuration.md
index 20abeba5..8713c3ff 100644
--- a/book/src/configuration.md
+++ b/book/src/configuration.md
@@ -103,6 +103,7 @@ The following statusline elements can be configured:
 | `file-type` | The type of the opened file |
 | `diagnostics` | The number of warnings and/or errors |
 | `selections` | The number of active selections |
+| `primary-selection-length` | The number of characters currently in primary selection |
 | `position` | The cursor position |
 | `position-percentage` | The cursor position as a percentage of the total number of lines |
 | `separator` | The string defined in `editor.statusline.separator` (defaults to `"│"`) |
diff --git a/helix-term/src/ui/statusline.rs b/helix-term/src/ui/statusline.rs
index b0e8ec5d..47bb1129 100644
--- a/helix-term/src/ui/statusline.rs
+++ b/helix-term/src/ui/statusline.rs
@@ -142,6 +142,9 @@ where
         helix_view::editor::StatusLineElement::FileType => render_file_type,
         helix_view::editor::StatusLineElement::Diagnostics => render_diagnostics,
         helix_view::editor::StatusLineElement::Selections => render_selections,
+        helix_view::editor::StatusLineElement::PrimarySelectionLength => {
+            render_primary_selection_length
+        }
         helix_view::editor::StatusLineElement::Position => render_position,
         helix_view::editor::StatusLineElement::PositionPercentage => render_position_percentage,
         helix_view::editor::StatusLineElement::TotalLineNumbers => render_total_line_numbers,
@@ -254,6 +257,18 @@ where
     );
 }
 
+fn render_primary_selection_length<F>(context: &mut RenderContext, write: F)
+where
+    F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
+{
+    let tot_sel = context.doc.selection(context.view.id).primary().len();
+    write(
+        context,
+        format!(" {} char{} ", tot_sel, if tot_sel == 1 { "" } else { "s" }),
+        None,
+    );
+}
+
 fn get_position(context: &RenderContext) -> Position {
     coords_at_pos(
         context.doc.text().slice(..),
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs
index db97cbb1..213141ff 100644
--- a/helix-view/src/editor.rs
+++ b/helix-view/src/editor.rs
@@ -328,6 +328,9 @@ pub enum StatusLineElement {
     /// The number of selections (cursors)
     Selections,
 
+    /// The number of characters currently in primary selection
+    PrimarySelectionLength,
+
     /// The cursor position
     Position,