cursor-tools
cursor-tools copied to clipboard
building tools with cursor to make cursor faster so I can ubuild tools to be faster at making cursor fast
🔗 Reddit Discussion | 💬 Discord Community
Cursor Tools
A powerful desktop application for managing and enhancing your Cursor IDE notepads, built with Electron, React, and TypeScript. (Ish. It's a proof of concept that shows you how to hook into Cursor's workspace / global settings and do some cool stuff.)

Quick Start: Finding Your Notepads
Lost your Cursor notepads? Here's where they live:
# Windows
%AppData%/Roaming/Cursor/User/workspaceStorage/{workspace_id}/state.vscdb
# macOS
~/Library/Application Support/Cursor/User/workspaceStorage/{workspace_id}/state.vscdb
Your notepads are stored in a SQLite database under two keys:
notepadDatanotepad.reactiveStorageId
Want to explore? Get DB Browser for SQLite and run:
SELECT * FROM ItemTable WHERE key IN ('notepadData', 'notepad.reactiveStorageId');
⚠️ Important: Close DB Browser before opening Cursor to avoid file permission conflicts.
📚 Read the full technical deep-dive to learn how we discovered this and built tools around it.
Overview
Cursor Tools provides a robust suite of utilities for managing your Cursor IDE notepads, allowing you to backup, sync, and organize your development notes across workspaces. Built with modern technologies and best practices, it offers a seamless integration with your Cursor IDE workflow.
Key Features
1. Notepad Management
- [x] Create & Edit: Create new notepads with rich content and edit existing ones
- [ ] Organization: Group related notepads and manage them efficiently
- [ ] Search & Filter: Quickly find notepads across all workspaces
- [ ] Backup & Sync: Automatically backup your Cursor notepads across workspaces
- [ ] Import/Export: Share notepads between workspaces or with team members
2. Smart Templates
Pre-built notepad templates for common development workflows:
- Git branch and workflow best practices
- Test-Driven Development (TDD) guides
- AI-assisted development patterns
- Documentation templates
- Code review checklists
- Performance optimization guides
- Security best practices
- Accessibility guidelines
- Architecture planning templates
3. Workspace Integration
- Multi-Workspace Support: Manage notepads across multiple Cursor workspaces
- Workspace Migration: Easily copy notepads between workspaces
- Context Awareness: Notepads maintain references to relevant files and folders
- Persistent Storage: Reliable SQLite-based storage for all your notes
4. Advanced Features
- Version History: Track changes to your notepads over time
- Rich Context: Link notepads to files, folders, and git commits
- Smart References: Maintain connections to external resources and documentation
- Customizable Layout: Adjust the UI layout to match your workflow
Installation
# Install dependencies
pnpm install
# Start development
pnpm dev:electron
# Build for your platform
pnpm build:win # Windows
pnpm build:mac # macOS
pnpm build:linux # Linux
Project Structure
This project uses Turborepo and follows modern development practices:
apps/
├── electron-app/ # Main desktop application
│ ├── src/
│ │ ├── main/ # Electron main process
│ │ ├── renderer/ # React-based UI
│ │ └── preload/ # Preload scripts
│ └── ...
packages/
├── eslint-config/ # Shared ESLint configuration
└── typescript-config/ # Shared TypeScript configuration
Technology Stack
- TypeScript: For type-safe code
- Electron: Desktop application framework
- React: UI components and state management
- SQLite: Reliable data persistence
- Tailwind CSS: Modern styling
- ESLint & Prettier: Code quality tools
API Documentation
Notepad Management
// Create a new notepad
const notepad = await notepadManager.createNotepad({
name: "My Notepad",
text: "Initial content"
});
// Get all notepads
const notepads = await notepadManager.getAll();
// Get a specific notepad
const notepad = await notepadManager.getNotepad(id);
// Update notepad content
await notepad.setText("Updated content");
// Delete a notepad
await notepadManager.deleteNotepad(id);
Workspace Operations
// Get all workspaces
const workspaces = await workspaceManager.getWorkspaces();
// Get a specific workspace
const workspace = await workspaceManager.getWorkspace(id);
// Access workspace storage
await workspace.set("key", value);
const value = await workspace.get("key");
Contributing
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Please ensure your code follows our style guidelines and includes appropriate tests.
License
MIT