Skip to content

[Feature Request] Implement clipwallet search <query> Command for Clipboard History Search #83

Description

@divyanshim27

Labels: enhancement, feature, help wanted, GSSoC 2026

Title: [Feature]: Add clipboard history search via \clipwallet search CLI command

Body:

Summary

The ClipWallet ROADMAP explicitly lists "Clipboard history search" as a planned feature. Currently, users can only access clipboard slots by their index (Static mode) or cycle through the ring buffer (Dynamic mode) — there is no way to search through history for a specific text snippet. This is a critical missing feature for power users who maintain large clipboard histories.

Problem
In Dynamic mode with up to 50 entries, finding a specific item requires manually cycling with Cmd+Opt+Tab until it appears — which is tedious and error-prone.
There is no CLI command to query stored clipboard content.
Users who copy many items in a session have no efficient retrieval mechanism beyond slot number memory.
Proposed Solution

Add a clipwallet search CLI subcommand that:

Reads the MessagePack store at ~/.clipwallet/store/.
Performs a case-insensitive substring match against all plaintext entries.
Prints matching entries with their slot number / ring position and a truncated preview.
Supports a --copy flag to immediately copy a search result to the system clipboard.

Example output:

$ clipwallet search "api key"

[slot 3] "MY_API_KEY=abc123def456..." (plain text, 48 chars)
[ring:7] "Authorization: Bearer eyJhbGc..." (plain text, 120 chars)

Use clipwallet search "api key" --copy 3 to copy slot 3 to clipboard.
Implementation Notes
Encrypted vault entries (~/.clipwallet/vault/) should be decrypted in-memory using the Keychain key for searching, and the decrypted content must never be written to disk or logs.
Binary/image entries should be excluded from text search and shown as [binary data — not searchable].
The command should be added as a new clap subcommand in the CLI module.

This aligns directly with the project roadmap. I would like to implement this feature — please assign this issue to me.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions