by furkanksl
A useful drawer for MacOS. chatting, clipboard, webscraping, window managing, shotcuts. built with Rust and ai-sdk
# Add to your Claude Code skills
git clone https://github.com/furkanksl/mdMy Drawer is a powerful, local-first personal AI workspace designed to integrate deeply with your macOS workflow. It serves as a central hub for journaling, clipboard management, window organization, and intelligent web research.
This repository follows a monorepo layout that keeps the native drawer experience in desktop/ alongside a small marketing site in landing/.
Frontend
ai), react-markdownBackend (Core - macOS)
cocoa / objc crates for macOS specific window handling.reqwest + html2text for robust, cleaner-friendly content extraction.desktop/ contains the Tauri frontend (desktop/src) and Rust backend (desktop/src-tauri). The existing scripts/ helpers (release automation, version bumps, etc.) live inside this workspace so those commands continue to run from there.landing/ is a standalone Vite + React marketing site that introduces My Drawer, showcases key features, and delivers a CTA in a responsive layout.package.json): Defines the npm workspaces, central scripts for starting/building each workspace, and shared tooling. Run npm install from the root to bootstrap both packages and generate a single package-lock.json.desktop/: The complete desktop experience with the Tauri frontend (src), Rust backend (src-tauri), Tailwind/Vite configs, and release scripts.landing/: The marketing site with its own Vite config, TypeScript entry point, and CSS styles.npm install
# or
bun install
This installs dependencies for both workspaces and produces one lockfile at the repo root.
npm run dev:desktop — Starts the desktop Vite server for Tauri development.npm run tauri:desktop — Runs tauri dev from the desktop workspace (requires Rust).npm run dev:landing — Serves the landing page locally (landing/).npm run build:desktop — tsc && vite build for the desktop frontend.npm run build:landing — Builds the marketing landing page and outputs into landing/dist.The workspace scripts mirror the previous standalone commands:
npm run dev:desktopnpm run preview inside desktop/npm run build:desktopnpm run tauri:desktopnpm run release (run from desktop/) — handles versioning, signing, and notarization via desktop/scripts/release.sh.npm run dev:landingnpm run build:landingThe automated release flow remains under desktop/scripts. Version bumps still update both desktop/package.json and desktop/src-tauri/tauri.conf.json.
cd desktop
bun run release -- --bump patch
Use npm run bump from the desktop workspace to adjust versions (desktop/package.json).
No comments yet. Be the first to share your thoughts!