A floating, keyboard-driven notepad designed for developers
Download • User Guide • Installation • Security • API Docs • Report Bug
- Global keyboard shortcut for instant access from anywhere in your system
- Floating window that appears instantly without disrupting your workflow
- Auto-focus on text input for immediate typing
- Automatic saving with real-time visual feedback
- Full-text search across all your notes with fuzzy matching
- Multi-tab editing for working with multiple notes simultaneously
- Persistent storage - never lose your thoughts
- Complete keyboard navigation - mouse optional
- Command palette (
Ctrl+P) for quick access to all features - Comprehensive shortcuts for power users
- Cross-platform shortcuts that feel native on each OS
- Plain text and Markdown support with syntax highlighting
- Terminal integration for creating notes from command line
- Monospace font support (SauceCodePro Nerd Font included)
- Code snippet friendly formatting
- Configurable global shortcuts to avoid conflicts
- Font preferences for both UI and editor
- Layout modes (floating, half-screen, full-screen)
- Theme support with clean, distraction-free interface
- Native installers for Windows (MSI), macOS (DMG), and Linux (DEB/AppImage)
- Consistent experience across all platforms
- Platform-appropriate keyboard shortcuts and behaviors
- Enterprise-grade security with comprehensive threat prevention
- Zero critical vulnerabilities - 95.2% security test coverage
- Multi-layered validation at all application entry points
- Desktop-native security patterns optimized for desktop applications
- Capability-based access control with operation source attribution
- Proactive abuse prevention with intelligent frequency controls
- 96.9% test pass rate (223/230 tests) with React 19 compatibility
- Smart test isolation with intelligent mock preservation
- Comprehensive validation infrastructure for reliable testing
- Sub-100ms test performance with optimized reset logic
Windows: Download and run the .msi installer
macOS: Download the .dmg and drag to Applications
Linux: Install the .deb package or use the .AppImage
- Launch Scratch Pad
- Set your global shortcut (default:
Ctrl+Shift+N) - Press the shortcut from anywhere to open the notepad
- Start typing - your notes are automatically saved!
📖 Read the complete User Guide
- Quick thoughts during coding sessions
- Code snippets and temporary notes
- Meeting notes and reminders
- Terminal command documentation
- Debugging notes and observations
- Project ideas and TODO items
| Shortcut | Action |
|---|---|
Ctrl+Shift+N |
Open/Show Scratch Pad (configurable) |
Esc |
Hide window |
Ctrl+P |
Command palette |
Ctrl+Shift+F |
Search/Browse notes |
Ctrl+N |
New note |
Ctrl+Tab |
Switch between tabs |
macOS users: Replace Ctrl with Cmd
- Node.js (v18 or later)
- pnpm package manager
- Rust (latest stable)
- System dependencies for Tauri development
# Run comprehensive security test suite
cd src-tauri && cargo test security_test_suite
# Run validation framework tests
cd src-tauri && cargo test validation
# Security audit with detailed output
cd src-tauri && cargo test --test security_test_suite -- --nocaptureTest Results (v0.4.0):
- ✅ 96.9% frontend test pass rate (223/230 tests)
- ✅ 95.2% security test coverage (20/21 critical tests)
- ✅ Zero critical vulnerabilities in production code
- ✅ Comprehensive attack vector coverage (path traversal, injection, abuse prevention)
- ✅ React 19 compatibility with updated test infrastructure
# Clone the repository
git clone https://github.com/paulb/scratch-pad.git
cd scratch-pad
# Install dependencies
pnpm install
# Start development server
pnpm tauri:devpnpm dev # Start Vite development server
pnpm build # Build the frontend
pnpm tauri:dev # Start Tauri development mode
pnpm tauri:build # Build the Tauri application
pnpm test # Run frontend tests
pnpm lint # Run ESLint
pnpm type-check # Run TypeScript type checking
# Backend/Security testing
cd src-tauri
cargo test # Run all Rust tests
cargo test security_test_suite # Security-specific tests
cargo test validation # Input validation testsscratch-pad/
├── src/ # Frontend React application
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility libraries and store
│ ├── test/ # Test infrastructure and setup
│ └── types/ # TypeScript type definitions
├── src-tauri/ # Rust backend (build output)
├── src/ # Frontend & backend source
│ ├── commands/ # Tauri IPC commands
│ ├── db/ # Database operations
│ ├── search/ # Search functionality
│ └── services/ # Service layer
├── docs/ # User documentation
├── internal-docs/ # Development documentation & plans
├── .claude/ # Claude Code configuration
│ ├── agents/ # Agent definitions
│ ├── reports/ # Test reports
│ └── workflows/ # Development workflows
└── .github/workflows/ # CI/CD workflows
Frontend: React 19 + TypeScript + Tailwind CSS + shadcn/ui Backend: Rust + Tauri framework with comprehensive security validation Database: SQLite with FTS5 for full-text search State Management: Zustand Build System: Vite + Tauri CLI Security: Multi-layered validation framework with capability-based access control
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a 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.
- Built with Tauri framework
- UI components from shadcn/ui
- Icons from Lucide
- Font: SauceCodePro Nerd Font
- 📖 Documentation: User Guide | Installation Guide | API Reference
- 🔒 Security: Security Policy | Security Testing Guide
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 💬 Community: GitHub Discussions
Made with ❤️ for developers who value their flow state
⭐ Star this repo if you find it useful!
