TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Do less, do it well. 🐝
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Mini Desk is a quiet little desk.
Screenshots, notes, reminders, and quick actions all live here — but it won't push you to become a machine.
Do less, do it well.
It gathers the loose bits of daily work into a local-first browser desktop: screenshots can wait, ideas can be parked, reminders can be finished slowly. Desktop density becomes a breathing reminder — light, fairly full, or overheated — and the animated companion only pops up gently on save, completion, cleanup, and when content grows.README 전문 보기 ↗English | 简体中文
Mini Desk is a quiet little desk.
Screenshots, notes, reminders, and quick actions all live here — but it won't push you to become a machine.
Do less, do it well.
It gathers the loose bits of daily work into a local-first browser desktop: screenshots can wait, ideas can be parked, reminders can be finished slowly. Desktop density becomes a breathing reminder — light, fairly full, or overheated — and the animated companion only pops up gently on save, completion, cleanup, and when content grows.
Mini Desk is built with Vue 3, TypeScript, Vite, and Naive UI. The interface takes cues from Apple's Human Interface Guidelines, aiming for a compact, clear, low-distraction daily experience.
Mini Desk is also an AI coding experiment: the product thinking, interaction trade-offs, and aesthetic judgment come from a human, while 100% of the code — from the UI and state management to the self-hosted relay service — was written by AI (Claude Code) in conversation.
No account or sign-in required — all your data lives in the browser: page state in localStorage, image originals and custom GIF assets in same-site IndexedDB. Apart from the self-hosted relay shared by mobile capture and smart paste, it depends on no backend service, making it a good fit as a personal browser workbench.
npm install # install dependencies
npm run dev # start the local dev server
npm test # run tests
npm run build # build the production bundle
npm run preview builds and serves the production bundle — the only way to verify offline behavior (dev mode never registers the Service Worker). For real-device LAN debugging use npm run preview:lan (self-signed HTTPS; the mobile-inbox API requires a secure context, and devices must accept the certificate warning once).
Ctrl+V paste a screenshot, drop an image file, or pick a local file through the "+" in the title bar; cards can be dragged out to the desktop to export.Ctrl+V inside the preview works the same way, and can replace the target image.Enter edits.Ctrl+wheel anchor zoom, double-click 2x, drag-to-pan, and toolbar actions.Enter edit, 5 / Ctrl+C copy, Delete / Backspace delete, Space / Esc close, arrow keys or W/A/S/D switch images.Tab indent, Shift+Tab outdent; indents inherit the sibling list markers, and unmarked lines get a - added automatically on Tab.Enter continues the indent and marker, Shift+Enter is a plain line break.Ctrl+Z undo (an independent 50-step undo stack inside the editor); Ctrl/⌘ + ←/→ jump to line start/end; Ctrl/⌘ + ↑/↓ move the current line, with numbering and dashes adapting.Ctrl/⌘ + ↑/↓ reorder within a group, Ctrl/⌘ + ←/→ jump to line start/end.Ctrl+S; switching to a paired workspace pulls immediately.Ctrl+S: save immediately and pull the mobile inbox.Ctrl+Z: board undo (text and image editors keep their own undo stacks).Tab / Shift+Tab indent, Ctrl/⌘ + ←/→ jump to line start/end, Ctrl/⌘ + ↑/↓ move the current line.Ctrl/⌘ + ↑/↓ reorder within the group, Ctrl/⌘ + ←/→ jump to line start/end.Ctrl+S saves immediately with a toast, and pulls the mobile inbox at the same time.Board state is kept in the browser's localStorage:
mini-desk-state-v1
Image originals are kept in same-site IndexedDB:
mini-desk-images-v1
The phone's remembered pairing code is kept in mini-desk-inbox-code. Legacy todo-board-state-v1 and todo-board-images-v1 keys migrate automatically on read. Clearing site data wipes board content, images, and custom GIFs; deleting only the localStorage keys clears board state, but IndexedDB may still hold image originals.
The mobile-inbox relay stores only the capture items themselves (self-hosted, authenticated by pairing-code hash); items become unreadable once delivered to the desktop or after 30 days, and are removed from the queue on read. The relay keeps no board data, images, or account information.
The board is designed for desktop workflows: viewports 900px wide or narrower get a guide page pointing to a desktop browser. On workspaces with mobile inbox paired, phones can open the pairing address to capture reminders and notes, which sync to the desktop through the self-hosted relay.
For local real-device debugging use npm run preview:lan; the mobile-inbox API needs a secure context, and devices must accept the self-signed certificate warning once.
The live site runs on Cloudflare Pages (project todolist):
npm run deploy:cloudflare
The mobile-inbox relay is a self-hosted service (server/, Flask + MySQL) deployed on Aliyun at /opt/minidesk-inbox, exposed via nginx at https://relay.minidesk.online:8443:
cd server && ./deploy.sh
Build-related environment variables: VITE_BASE (deployment subpath), VITE_INBOX_WORKER_URL (override the relay URL, for local debugging), MINI_DESK_LAN (enable self-signed HTTPS for real-device preview).
To publish a release, build dist first, then zip the bundle as a release asset:
npm run build
cd dist
zip -qr ../dist-<version>.zip .
src/App.vue: the board entry point — cross-component state orchestration, saving and conflict detection, import/export, toast bubbles, and global shortcuts.src/components/: workbench shell, workspace switcher, image shelf / screenshot editor / preview, reminders, quick actions, note spaces, mobile inbox, settings, and help components.src/state/: default state, message copy, i18n, theme, GIF themes, version & changelog, localStorage/IndexedDB access, import/export normalization, and reminder domain logic.src/sync/: mobile-inbox pairing codes, legacy payload decoding, and relay clients.src/composables/: composable logic such as reminder notifications.src/utils/: text-editing utilities (indent, list markers, line moves) and friends.src/__tests__/: component rendering, state compatibility, interaction contracts, deployment config, and message copy tests.server/: the mobile-inbox relay (Flask + MySQL, production).static/: companion GIFs and image assets; public/: Service Worker, manifest, and icons; samples/: sample import data.How Mini Desk gets built is the project's most interesting experiment: the human only decides "what", and hands everything else to AI.
.claude/skills/) drives the AI through build, full test runs, Cloudflare deployment, GitHub Releases, and changelog upkeep — one person maintaining 100 releases.CLAUDE.md is the project manual written for the AI, and every changelog entry in src/state/changelog.ts was summarized by the AI at release time.Put differently: everything described here — from the four-zone workbench to the mobile inbox — is the product of the loop "state the requirement → AI implements → AI self-reviews → AI releases".
Thanks to my girlfriend for her constant support, and for the many valuable suggestions on product details.