원클릭으로
cleandesktop
Desktop file organizer - auto-archive by week with type classification and CSV logging.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Desktop file organizer - auto-archive by week with type classification and CSV logging.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Open local review artifacts in Xiaoer Omia when users ask to open, preview, inspect, or review a file.
Run a measured improvement loop for a skill by defining a yes/no checklist, capturing a baseline, scoring candidate outputs, and logging each iteration's keep/revert decision. Use when a skill works inconsistently and you want evidence-driven iteration instead of random prompt edits.
Build a static HTML report site from CSV, JSON, Markdown, or HTML inputs. Use when the user wants to turn existing data into a human-readable site, generate a data showcase page, create a static report website, or optionally publish the built site.
Add offline multilingual support to static HTML, small web projects, or reports by extracting text into tokens, maintaining language dictionaries, applying translated outputs, and optionally embedding a local language switcher. Use when the user asks for bilingual support, tokenizing Chinese copy, offline language switching, or i18n for reports and lightweight sites.
Unified entrypoint for Obsidian note operations such as cleanup, merge, lint/fix, meeting archive, daily rollover, and docs sync. Use when the user wants one command surface over an existing notes-tools repo instead of calling many atomic scripts by hand.
Test, tune, and regression-check LLM system prompts with a golden dataset. Use when the user wants to optimize a prompt, run prompt regression tests, manage `cases.yaml`, compare expected vs actual outputs, or follow a TDD workflow for prompts.
| name | cleandesktop |
| description | Desktop file organizer - auto-archive by week with type classification and CSV logging. |
| version | 2.1.0 |
| author | Vivi |
| tags | ["productivity","desktop","archive","cleanup"] |
| platforms | ["macos","linux"] |
| dependencies | ["python3"] |
Auto-archive desktop files into weekly folders with dual-tag classification (category + type) and CSV logging.
list and stats commands)--dry-run preview modecd cleandesktop
cp .env.example .env # Edit paths if needed
# Preview what would happen
python3 main.py archive --dry-run
# Archive with GUI category picker (macOS)
./bin/cleandesktop.sh --gui --yes
# Archive with explicit category
python3 main.py archive --category work --yes
| Command | Description | Example |
|---|---|---|
archive | Move desktop files to archive | archive --category work --yes |
archive --dry-run | Preview without moving | archive --dry-run |
archive --gui | GUI category picker (macOS) | archive --gui --yes |
list | Query archive log | list --category work --limit 10 |
list --type <t> | Filter by file type | list --type images |
list --week <w> | Filter by week folder | list --week 2025.08.21-2025.08.27 |
stats | Show archive statistics | stats |
All via environment variables (or .env file):
| Variable | Description | Default |
|---|---|---|
CLEANDESKTOP_SOURCE | Source directory to clean | ~/Desktop |
CLEANDESKTOP_ARCHIVE | Archive root directory | ~/Desktop/archive |
CLEANDESKTOP_LOG | CSV log file path | <archive>/archive_log.csv |
CLEANDESKTOP_CATEGORY | Default category tag | other |
Legacy variables (DESKTOP_PATH, ARCHIVE_PATH, LOG_PATH, DEFAULT_CATEGORY) are also supported as fallback.
~/Desktop/archive/
by-week/
2025.08.18-2025.08.24/
2025.08.20 meeting-notes.pdf
2025.08.21 screenshot.png
images-archive/ # Image copies
docs-archive/ # Document copies
sheets-archive/ # Spreadsheet copies
archive_log.csv # Operation log
| Field | Description |
|---|---|
archived_at | Timestamp (ISO format) |
original_name | Original filename |
new_name | Archived filename (with date prefix) |
category_tag | Category tag |
type_tag | File type tag |
week_folder | Week folder name |
src_path | Original path |
dest_path | Archived path |
| Type | Extensions |
|---|---|
| images | png, jpg, jpeg, gif, bmp, tiff, webp, heic, svg |
| docs | txt, md, pdf, doc, docx, rtf, pages |
| sheets | xlsx, xls, csv, numbers |
| videos | mp4, mov, avi, mkv, wmv |
| audio | mp3, wav, aac, flac, m4a |
| archives | zip, rar, 7z, tar, gz |
| code | py, js, ts, html, css, java, swift, go, rs, sh |
Log not updating? Check that the archive directory exists and is writable. Run manually and look for error output.
Can't find archived file?
Query the log: python3 main.py list --limit 10 and check the dest_path field in the CSV.
GUI dialog not appearing?
--gui requires macOS. On other platforms it falls back to terminal selection.