Skip to content

Worth-Doing/dropvault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DropVault Icon

DropVault

Capture Everything. Lose Nothing.
The Visual Memory Layer for macOS.

Download macOS 14+ Swift 5.9 SwiftUI Swift Package Manager Apple Notarized MIT License Repo Size No Xcode Required Local-First


Download DMG


What's New in 2.0

DropVault 2.0 is a major upgrade across architecture, UI/UX, features, and polish.

New Features

Feature Description
Menu Bar Extra Quick-access menu bar icon with recent items, monitoring toggle, and drop zone control
Sorting 6 sort modes — newest, oldest, title A–Z / Z–A, largest first, by category
Grid & List Views Toggle between the visual card grid and a compact list with alternating rows
Clipboard Monitoring Toggle Pause/resume clipboard monitoring from toolbar, menu bar, or settings
Open in Browser One-click open for link items directly in your default browser
Reveal in Finder Show file items in their Finder location
Tag Removal Tags now have a remove button — add and remove freely
Copy Confirmation Toast Animated toast notification when content is copied to clipboard
Export & Import Export your full vault to JSON, import with automatic deduplication
Shelf Management Rename shelves, change icons (13 options), delete — all via context menu
Storage Info Settings shows total storage size on disk

New Keyboard Shortcuts

Shortcut Action
Cmd+Shift+D Toggle floating drop zone
Cmd+Shift+M Toggle clipboard monitoring
Cmd+Shift+N New shelf
Cmd+E Export data
Cmd+Shift+Delete Clear non-pinned history

Improvements

  • Fixed crash-risk force unwrap in drop handler
  • Settings respect max history limit — was previously hard-coded to 5,000
  • Eliminated duplicated code — shared design tokens for colors, date formatting, hex parsing
  • Cached DateFormatters — static instances instead of per-call allocation
  • Reduced JSON output size — removed prettyPrinted formatting for storage efficiency
  • Selection highlight — selected cards show an accent-colored border
  • Smoother hover animations — refined easing and subtler scale effects
  • Context-aware empty states — different icons, titles, and subtitles per filter
  • Search result count — badge in search bar showing filtered count
  • Search focus indicator — accent border when search is active
  • Toolbar — sort menu, view mode toggle, monitoring status
  • Sidebar footer — live monitoring status and total item count
  • Detail view shows shelf assignment, open-in-browser, reveal-in-Finder
  • Expanded settings — 4 tabs (General, Storage, Shortcuts, About)
  • Version bumped to 2.0.0

What is DropVault?

DropVault is a next-generation macOS clipboard and drag-and-drop command center built entirely in Swift + SwiftUI — without Xcode.

It transforms the primitive system clipboard into a persistent, visual, organized workflow system.

DropVault is not just a clipboard manager. It is a visual memory layer for the desktop that:

  • Remembers everything you copy
  • Accepts anything you drag into it
  • Organizes content automatically
  • Turns temporary fragments into reusable assets

Think of it as a mix between:

Concept What it does
Premium Clipboard Manager Persistent visual history of everything you copy
Lightweight Local Asset Vault Store and retrieve text, code, images, files, colors
Drag-and-Drop Inbox Floating drop zone that catches anything you drag
Visual Staging Area Cards, previews, shelves for active work

"The clipboard macOS should have had if it were redesigned from scratch for 2026."


Screenshots

Main Window — Grid View

Three-column layout: sidebar filters, card grid with hover actions, and inspector panel.

Main Window — Grid View

Card Hover Actions & Selection

Hovering a card reveals quick actions (copy, pin, favorite, delete). Selected cards show a blue border.

Card Selection Highlight

Floating Drop Zone

Always-on-top panel — drag files, images, text, or URLs from any app to capture instantly.

Floating Drop Zone

Settings

Four-tab settings: General, Storage, Shortcuts, and About.

Settings — General

Settings — Storage

Settings — Shortcuts


Features

Clipboard History Engine

Feature Description
Automatic Capture Monitors NSPasteboard every 0.5s — every copy is captured
Smart Deduplication FNV-1a content hashing prevents duplicate entries
Source Awareness Records which app you copied from (Safari, VS Code, Terminal...)
Persistent History Survives app restart — stored in ~/Library/Application Support/DropVault/
Configurable Limit 500 to 10,000 items with automatic oldest-item pruning
Rich Previews Images rendered inline, code in monospace, links with domain badges, colors with swatches
Pause/Resume Toggle monitoring from toolbar, menu bar, or settings

Menu Bar Extra

Feature Description
Quick Access Clipboard icon in the macOS menu bar
Recent Items Last 10 items — click to copy instantly
Monitoring Toggle Pause/resume clipboard monitoring
Drop Zone Toggle Show/hide floating drop zone
App Access Open main window or quit DropVault

Floating Drop Zone

Feature Description
Always-On-Top Panel NSPanel floating above all windows, movable anywhere
Drag Anything Files, images, text, URLs from any app — all accepted
Visual Feedback Expands and glows when a drag enters, shows success checkmark
Instant Capture Dropped items appear immediately in history
Toggle Cmd+Shift+D to show/hide

Automatic Classification Engine

Content is automatically categorized using deterministic, rule-based classification — no AI, no cloud:

Category Detection Rules
Code Language keywords (func, def, class, const...), syntax patterns (braces, semicolons, indentation), markdown code fences
Links http://, https://, www. URL patterns
Colors Hex (#FF5733), rgb(), rgba(), hsl(), hsla()
Images Image data on clipboard, image file extensions (PNG, JPG, GIF, WebP, HEIC...)
Files File URL references from Finder or other apps
Notes Plain text that doesn't match other categories

Visual Card System

Every clipboard item is displayed as a premium glass card:

  • Translucent material background (.ultraThinMaterial)
  • Hover lift animation with smooth easing
  • Category-colored icon badge (green=code, blue=links, purple=images...)
  • Source app label (Safari, VS Code, Terminal...)
  • Relative timestamps ("just now", "5m ago", "2h ago")
  • Pin / Favorite indicators
  • Selection highlight with accent-colored border
  • Quick actions on hover: Copy, Pin, Favorite, Open in Browser, Delete
  • Context menu: Full actions + Move to Shelf + Reveal in Finder

Grid & List Views

View Best for
Grid Visual browsing — card layout with previews, hover effects, and images
List Power users — compact rows with alternating backgrounds, source app, and timestamps

Toggle between views with the segmented control in the toolbar.

Organization & Retrieval

Feature Description
Sidebar Filters All, Recent, Pinned, Favorites + every category
Full-Text Search Instant search across title, content, source app, tags, URLs — with result count
Sorting 6 modes: newest, oldest, title A–Z / Z–A, largest first, by category
Shelves Create named collections with custom icons (13 options)
Shelf Management Rename, change icon, or delete shelves via context menu
Tags Add and remove custom tags on any item
Pin & Favorite Keep important items always accessible
Rename Double-click title in inspector to rename

Inspector Panel

When you select an item, the right panel shows:

  • Full-size preview (code with monospace, images scaled, colors as swatches)
  • Metadata: Created date, updated date, source app, file size, category, shelf
  • Tags: View, add, and remove tags with flow layout
  • Actions: Copy to Clipboard, Pin/Unpin, Favorite, Open in Browser, Reveal in Finder, Move to Shelf, Delete

Export & Import

Feature Description
Export Save your entire vault (items + shelves) as a portable JSON file
Import Load items from a JSON export — duplicates are automatically skipped
Backup Use export as a manual backup strategy

Keyboard Shortcuts

Shortcut Action
Cmd+Shift+D Toggle floating drop zone
Cmd+Shift+M Toggle clipboard monitoring
Cmd+Shift+N New shelf
Cmd+E Export data
Cmd+C Copy selected item
Cmd+Shift+Delete Clear all non-pinned history

Architecture

Project Structure

dropvault/
├── Package.swift                          # SPM manifest — macOS 14+
├── Sources/DropVault/
│   ├── DropVaultApp.swift                 # @main entry, scenes, MenuBarExtra, commands
│   ├── Models/
│   │   ├── VaultItem.swift                # Core data model (Codable, Hashable)
│   │   ├── VaultCategory.swift            # 9 categories with icons & colors
│   │   └── Shelf.swift                    # Named collections
│   ├── Services/
│   │   ├── ClipboardObserver.swift        # NSPasteboard polling engine
│   │   ├── ClassificationEngine.swift     # Rule-based content classifier
│   │   └── PersistenceManager.swift       # JSON persistence + export/import
│   ├── ViewModels/
│   │   └── VaultStore.swift               # Central ObservableObject store
│   ├── Utilities/
│   │   └── DesignTokens.swift             # Shared colors, formatting, sort/view enums
│   └── Views/
│       ├── ContentView.swift              # 3-column NavigationSplitView + toolbar
│       ├── SidebarView.swift              # Category/shelf navigation + management
│       ├── HistoryView.swift              # Grid + list views with sorting
│       ├── ItemCardView.swift             # Glass card with selection + hover
│       ├── ItemDetailView.swift           # Inspector panel + FlowLayout
│       ├── SearchBarView.swift            # Live search with result count
│       ├── SettingsView.swift             # 4-tab settings (General, Storage, Shortcuts, About)
│       ├── DropZoneView.swift             # Drop target SwiftUI view
│       └── FloatingDropZoneWindow.swift   # NSPanel controller
├── Resources/
│   ├── AppIcon.svg                        # Vector logo source
│   ├── AppIcon.icns                       # macOS icon (all sizes)
│   ├── Info.plist                         # App bundle metadata
│   └── DropVault.entitlements             # Code signing entitlements
└── scripts/
    ├── build-sign-notarize.sh             # Full pipeline: build → sign → DMG → notarize
    └── make-icns.sh                       # SVG → iconset → icns converter

Technology Stack

Layer Technology
Language Swift 5.9
UI Framework SwiftUI
AppKit Interop NSPanel (floating drop zone), NSPasteboard (clipboard), NSWorkspace (source app, open URL, reveal in Finder)
Build System Swift Package Manager (no Xcode required)
Persistence JSON files in ~/Library/Application Support/DropVault/
Image Storage PNG files in app support assets/ directory
Hashing FNV-1a 64-bit (fast, deterministic deduplication)
Signing codesign with Developer ID + hardened runtime
Notarization xcrun notarytool (Apple notary service)
Distribution DMG with stapled notarization ticket

Data Flow

                    ┌──────────────┐
                    │  NSPasteboard │ ← User copies something
                    └──────┬───────┘
                           │ poll every 0.5s
                    ┌──────▼───────┐
                    │  Clipboard   │
                    │  Observer    │ → detects changeCount delta
                    └──────┬───────┘
                           │ extract text / image / file URL
                    ┌──────▼───────┐
                    │ Classification│
                    │   Engine     │ → code? link? color? image? note?
                    └──────┬───────┘
                           │ create VaultItem
                    ┌──────▼───────┐
                    │  VaultStore  │ → dedup → insert → persist
                    └──────┬───────┘
                           │ @Published update
         ┌─────────────────┼─────────────────┐
         ▼                 ▼                 ▼
    MenuBarExtra     SidebarView        HistoryView
    (quick access)   (filters)     (grid/list + toolbar)
                                         │
                                    ItemDetailView
                                    (inspector)

Data Model

struct VaultItem: Identifiable, Codable, Hashable {
    let id: UUID
    var createdAt: Date
    var updatedAt: Date
    var category: VaultCategory       // .code, .images, .links, .files, .notes, .colors...
    var sourceApp: String?            // "Safari", "VS Code", "Terminal"...
    var title: String
    var previewText: String?          // First 300 chars for display
    var rawText: String?              // Full original text
    var fileURL: URL?                 // For file/folder references
    var imageAssetPath: String?       // Filename in assets directory
    var linkURL: URL?                 // Parsed URL for link items
    var isPinned: Bool
    var isFavorite: Bool
    var tags: [String]
    var shelfID: UUID?                // Optional shelf assignment
    var contentHash: String           // FNV-1a hash for dedup
    var sizeBytes: Int?
}

Installation

Download (Recommended)

  1. Download the latest DMG from Releases
  2. Open the DMG
  3. Drag DropVault.app into Applications
  4. Launch DropVault
  5. The floating drop zone appears at the right edge of your screen

The app is signed and notarized by Apple — no Gatekeeper warnings.

Build from Source

Requirements: macOS 14+, Swift 5.9+ (included with Xcode Command Line Tools)

# Clone
git clone https://github.com/Worth-Doing/dropvault.git
cd dropvault

# Build (debug)
swift build

# Build (release) and create .app bundle
swift build -c release
bash build.sh

# Run
open DropVault.app

Build + Sign + Notarize

If you have an Apple Developer ID certificate:

# Edit signing credentials in scripts/build-sign-notarize.sh, then:
bash scripts/build-sign-notarize.sh

This produces a signed, notarized DMG ready for distribution.


Usage

Basic Workflow

  1. Copy anything — text, code, URLs, images — DropVault captures it automatically
  2. Browse history — visual card grid or compact list, sorted your way
  3. Search — type to instantly filter across all content, see result count
  4. Re-copy — click any card's copy button, use the inspector, or click in the menu bar
  5. Pin important items — they persist even when history is cleared

Menu Bar Workflow

  1. Click the clipboard icon in the macOS menu bar
  2. See your 10 most recent items — click any to copy it instantly
  3. Toggle Clipboard Monitoring on/off
  4. Toggle the Drop Zone on/off
  5. Open the full DropVault window or quit the app

Drop Zone Workflow

  1. Press Cmd+Shift+D or use the menu to toggle the floating drop zone
  2. Drag files, images, text, or links from any app onto the drop zone
  3. Content is captured, classified, and added to your vault instantly
  4. The drop zone glows and animates to confirm receipt

Organization

  • Sidebar filters: Click any category to filter (Code, Images, Links, Files, Notes, Colors)
  • Sort items: Use the toolbar sort menu (newest, oldest, title, size, category)
  • Switch views: Toggle between Grid and List in the toolbar
  • Create shelves: Click "New Shelf" — choose a name and icon
  • Manage shelves: Right-click a shelf to rename, change icon, or delete
  • Tag items: Open the inspector, type a tag name, press Enter
  • Remove tags: Click the × button on any tag
  • Pin items: Right-click → Pin, or hover and click the pin button
  • Open links: Click "Open in Browser" on link items
  • Reveal files: Click "Reveal in Finder" on file items
  • Export data: Cmd+E or Settings → Storage → Export Data
  • Import data: Settings → Storage → Import Data (duplicates auto-skipped)

Privacy & Trust

DropVault is built with a local-first philosophy:

Principle Implementation
No cloud All data stored locally in ~/Library/Application Support/DropVault/
No analytics Zero telemetry, zero tracking, zero network calls
No AI Classification is purely rule-based, runs locally
Transparent storage JSON files you can inspect, backup, or delete
User control Clear history, delete items, configure limits, export/import, pause monitoring

Configuration

Settings (via menu bar → DropVault → Settings)

Tab Settings
General Show drop zone on launch, auto-start clipboard monitoring, monitoring status
Storage Max history items (500–10,000), current item count, storage size, export/import, clear history
Shortcuts Reference list of all keyboard shortcuts
About App version and info

Storage Location

~/Library/Application Support/DropVault/
├── items.json          # Clipboard history (metadata + text content)
├── shelves.json        # Shelf definitions
└── assets/             # Image files (PNG)
    ├── <uuid>.png
    └── ...

Roadmap

v1.0 — Foundation (Done)

  • App structure with SPM (no Xcode)
  • Core data models (VaultItem, VaultCategory, Shelf)
  • Clipboard observation engine (NSPasteboard polling)
  • Content normalization (text, URLs, images, files)
  • JSON persistence in Application Support
  • FNV-1a deduplication
  • Three-column NavigationSplitView layout
  • LazyVGrid card view with adaptive columns
  • Glass material card design with hover animations
  • Full-text search with instant filtering
  • Inspector panel with preview, metadata, tags, actions
  • NSPanel floating drop zone
  • Rule-based classification engine
  • Tags and shelves
  • Pin & Favorite system
  • Context menu actions and keyboard shortcuts

v2.0 — Major Upgrade (Done)

  • Menu bar extra with recent items and quick actions
  • Sorting (6 modes)
  • Grid and list view toggle
  • Clipboard monitoring toggle (pause/resume)
  • Open links in browser
  • Reveal files in Finder
  • Tag removal
  • Copy confirmation toast
  • Export/import to JSON
  • Shelf management (rename, change icon, delete)
  • Selection highlight on cards
  • Context-aware empty states
  • Toolbar with sort, view mode, monitoring status
  • Shared design tokens (colors, formatters)
  • Expanded settings (4 tabs)
  • Bug fixes (force unwrap, history limit, hash consistency)
  • Search result count and focus indicator

Future

  • Smart duplicate collapsing with usage counts
  • Batch actions (multi-select tag, move, delete)
  • Quick collections (Today's Links, Coding Session...)
  • Mini overlay near cursor
  • Clipboard privacy mode (exclude sensitive apps)
  • Temporary self-expiring items
  • macOS Shortcuts integration
  • Syntax highlighting for code previews
  • Rich text (RTFD) support
  • iCloud sync (optional)

Technical Details

Clipboard Observation

// Polls NSPasteboard.general.changeCount every 0.5 seconds
// Extracts content in priority order:
//   1. File URLs (NSURL with fileURLsOnly option)
//   2. Image data (TIFF or PNG representation)
//   3. String content (plain text, URLs, code)
// Records frontmost application as source via NSWorkspace

Content Hash (FNV-1a 64-bit)

// Deterministic, fast hash for deduplication
var hash: UInt64 = 14695981039346656037   // FNV offset basis
for byte in data {
    hash ^= UInt64(byte)
    hash &*= 1099511628211               // FNV prime
}

Classification Rules (Summary)

Input text
  ├── matches #hex / rgb() / hsl()  → Colors
  ├── matches http:// / www.        → Links
  ├── ≥2 code keywords OR ≥2 syntax patterns OR ``` → Code
  └── else                          → Notes

File input
  ├── image extension (png, jpg, gif, webp, heic...) → Images
  └── else                          → Files

Drop Zone Window

// NSPanel with:
//   styleMask: [.borderless, .nonactivatingPanel, .fullSizeContentView]
//   level: .floating
//   collectionBehavior: [.canJoinAllSpaces, .transient]
//   isMovableByWindowBackground: true
//   backgroundColor: .clear

Requirements

Requirement Minimum
macOS 14.0 (Sonoma)
Swift 5.9
Xcode CLI Tools Required for swift build
Xcode.app Not required
Architecture Apple Silicon + Intel (universal via SPM)

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License — see the LICENSE file for details.


DropVault — Drag, Store, Reuse. Instantly.
Built with Swift + SwiftUI. No Xcode. No cloud. No compromise.

About

DropVault — Capture Everything. Lose Nothing. A next-generation macOS clipboard and drag-and-drop command center built in Swift + SwiftUI.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors