Your Offline Clipboard Manager
Features • Installation • Usage • Shortcuts • Tech Stack • License
Boxy is a powerful, offline-first clipboard manager built for power users. It helps you organize text snippets, code templates, and canned responses in a hierarchical structure that's always available—even without an internet connection.
- 🔒 100% Offline - Your data never leaves your device. Complete privacy guaranteed.
- ⚡ Lightning Fast - Zero network latency. Everything runs locally in your browser.
- 📝 Markdown Ready - Full Markdown support for rich text formatting.
- 🎨 Chrome-like UI - Familiar tab-based interface that feels native.
- ⌨️ Keyboard First - Complete keyboard navigation for power users.
- 📱 PWA Support - Install as a standalone app on any device.
Boxy uses a three-level hierarchy to organize your content:
📦 Box (Workspace)
└── 📁 Tab (Category)
└── 📄 Card (Content)
- Boxes: Top-level containers like "Work", "Personal", or "Projects"
- Tabs: Categories within a box, like folders
- Cards: Individual snippets with Markdown content
| Feature | Description |
|---|---|
| One-Click Copy | Copy card content instantly with a single click |
| Template Variables | Use {{name}}, {{date}}, {{time}} for dynamic content |
| Custom Variables | Define your own variables that prompt for input when copying |
| Search & Filter | Find cards by text or filter by tags |
| Tag System | Organize cards with tags for easy discovery |
| Pin Cards/Tabs | Keep important items at the top |
| Undo/Redo | 7-step undo history for all actions |
| Export/Import | Backup and restore your data as JSON |
| Dark/Light Theme | System-aware theme with manual override |
| Multi-Box View | View multiple boxes simultaneously |
Cards can include tables with two modes:
- History Table: Auto-records when a card was created, edited, or copied
- Custom Table: Create your own tables with formula support
Custom tables support powerful formulas:
| Category | Formulas |
|---|---|
| Numeric | sum//all, avg//3, max//all, min//all, cnt//all, diff//1 |
| Time | mnt//all, hrs//all, dur//all (smart duration) |
| Date | days//all, weeks//all |
| Special | last//1, first//1, pct//2, inc//1, streak//all |
Use variables in your card content for dynamic replacement:
Built-in Variables:
{{date}}- Current date (YYYY-MM-DD){{time}}- Current time (HH:mm){{datetime}}- Date and time combined{{weekday}}- Day name (Monday, Tuesday, etc.){{month}}- Month name{{year}}- Current year{{timestamp}}- Unix timestamp{{random}}- Random 6-digit number{{uuid}}- Random UUID v4
Custom Variables:
Any other {{variableName}} will prompt for input when copying.
Visit the hosted version and install as a PWA:
- Open Boxy in your browser
- Click the install icon in the address bar (or use browser menu)
- Click "Install" to add Boxy to your device
# Clone the repository
git clone https://github.com/yourusername/boxy.git
cd boxy
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview# Build and run with Docker
docker build -t boxy .
docker run -p 8080:80 boxy- Create a Box: Click "Create First Box" or press
Ctrl+B - Add a Tab: Click the
+button in the tab bar or pressCtrl+T - Create Cards: Click "New Card" or press
Ctrl+N - Copy Content: Click the copy button or press
Con a selected card
- Edit: Click the edit button or press
Eon a selected card - Delete: Click the trash icon or press
Delete - Pin: Click the pin icon or press
Pto pin cards/tabs - Search: Press
Ctrl+Kto focus search, type to filter - Tags: Add tags to cards for organization, filter with
tag:tagname
- Minimize: Click
—to collapse a box to a bar - Maximize: Click
□to expand a box to full screen - Switch: Click on any box header to make it active
| Shortcut | Action |
|---|---|
Ctrl+K |
Focus search |
Ctrl+N |
New card |
Ctrl+T |
New tab |
Ctrl+B |
New box |
Ctrl+Z |
Undo |
Ctrl+Shift+Z |
Redo |
Ctrl+, |
Settings |
Escape |
Close modal / Clear search |
? |
Show shortcuts |
| Shortcut | Action |
|---|---|
Ctrl+1-9 |
Switch to tab 1-9 |
Ctrl+Tab |
Next tab |
Ctrl+Shift+Tab |
Previous tab |
↑↓←→ |
Navigate cards |
Tab |
Cycle through cards |
Enter |
Copy selected card |
| Shortcut | Action |
|---|---|
C |
Copy card |
E |
Edit card |
P |
Toggle pin |
Delete |
Delete card |
- Frontend: React 18 + TypeScript
- Styling: Tailwind CSS + CSS Variables
- Build: Vite
- Storage: localStorage (IndexedDB planned)
- Icons: Custom SVG (Lucide-style)
| Browser | Support |
|---|---|
| Chrome | ✅ Full |
| Edge | ✅ Full |
| Firefox | ✅ Full |
| Safari | ✅ Full |
| Mobile Chrome | ✅ Responsive |
| Mobile Safari | ✅ Responsive |
boxy/
├── public/
│ ├── logo.svg # App logo
│ ├── manifest.json # PWA manifest
│ └── sw.js # Service worker
├── src/
│ ├── components/
│ │ ├── cards/ # Card components
│ │ ├── icons/ # SVG icons
│ │ ├── layout/ # Layout components
│ │ └── modals/ # Modal dialogs
│ ├── config/ # App configuration
│ ├── store/ # State management
│ ├── types/ # TypeScript types
│ ├── utils/ # Utility functions
│ ├── App.tsx # Main app component
│ └── main.tsx # Entry point
├── index.html
├── package.json
├── tailwind.config.js
├── tsconfig.json
└── vite.config.ts
Boxy is designed with privacy as a core principle:
- ✅ No tracking - Zero analytics or telemetry
- ✅ No network requests - Works 100% offline
- ✅ Local storage only - Data stays on your device
- ✅ No accounts - No sign-up required
- ✅ Open source - Audit the code yourself
Contributions are welcome! Please read our contributing guidelines before submitting a PR.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Icons inspired by Lucide Icons
- UI patterns inspired by Google Chrome
- Built with ❤️ for the developer community
Boxy - Your offline clipboard manager
Made with ❤️ by the community