DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
무료 오픈소스 Windows 트레이 도구로 다운로드·바탕화면·스크린샷을 사용자 정의 규칙으로 정리하고, 모든 작업을 기록·취소할 수 있습니다
A free, open-source Windows tray utility that tidies Downloads, Desktop and Screenshots with rules you define. Every action is logged and undoable.
생산성GitHub @KhazP온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Automatic file organisation for Windows — keeps folders like Downloads and Desktop tidy using rules you define.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Automatic file organisation for Windows. Point it at the folders that get messy — Downloads, Desktop, Screenshots — describe what should happen to what, and it keeps them tidy in the background.
2.0 is a full rewrite in Rust
AutoTidy was a Python + PyQt6 app through 1.5.0. Version 2.0 rebuilds it on Rust and Tauri — a 1.8 MB installer instead of 73 MB, with recursive scanning and real-time folder watching that the old architecture couldn't support.
Upgrading is nothing to do. Your rules, settings and history are read in place from
%APPDATA%\AutoTidyexactly as they are. The rewrite was verified against the old engine file-by-file — see Verification.
You define rules per folder. Each rule matches files by age, by name pattern, or both, and then does one thing with them:
| Action | What happens |
|---|---|
| Move | Relocated into a dated archive folder, or anywhere you choose |
| Copy | Duplicated, original left alone |
| Delete to Recycle Bin | Recoverable through Windows |
| Delete permanently | Irreversible — the UI makes sure you know |
Everything it does is written to a log you can browse, filter and undo.
0 makes a rule
name-only._Cleanup/{YYYY}-{MM}-{DD}, with {FILENAME},
{EXT} and {ORIGINAL_FOLDER_NAME} too.Download from autotidy.alpyalay.org or straight from Releases, and run it.
Windows 10 or 11. The installer is per-user — no administrator rights needed. WebView2 is already present on Windows 11 and current Windows 10; if it's missing the installer fetches it.
Upgrading from 1.x? The installer detects the old version and offers to remove it first. Take the offer — the two installers use different systems, so Windows won't replace it automatically, and leaving both installed means two copies of AutoTidy organising the same folders at once.
Code signing. Release binaries are not signed yet. An application to the SignPath Foundation's free programme for open-source projects is pending; the code signing policy below describes the arrangement it will put in place.
Until then SmartScreen will warn. Choose More info → Run anyway, verify the SHA-256 checksum published with the release, or build it yourself from source below.
Measured on the same machine, same workload:
| 1.5.0 | 2.0.0 | ||
|---|---|---|---|
| Installer | 73 MB | 1.8 MB | 41× smaller |
| Executable | 33.5 MB | 4.9 MB | 6.9× smaller |
| Launch | unpacked 33.5 MB to %TEMP% every time | runs directly | — |
| Right-click → Add folder | 74 ms | 21 ms | 3.5× faster |
| Organising 8,000 files | 7.4 s | 0.6 s | 12× faster |
| Scanning 20,000 files recursively | not supported | 1.6 s | — |
Honesty about that speed column: if you're tidying a Downloads folder with a few dozen files once an hour, you will not notice any of it. The old engine took about 13 ms for that. The size, the launch behaviour, and the two new scanning modes are the real differences.
Full numbers, methodology and the workload where the rewrite buys you nothing
are in the 2.0.0 release notes. Reproduce them
yourself with python tools/bench/benchmark.py --markdown.
Bugs found by diffing the new engine against the old one, all of which existed in 1.5.0:
--add-folder could silently discard your other changes. It launched a
second process that wrote config.json while the running app held a stale
copy and overwrote it on quit.{FILENAME}_backup{EXT} filed the file under its original name.config.json.Settings and rules live in %APPDATA%\AutoTidy\config.json; history in
autotidy_history.jsonl beside it. Both are plain text and safe to read.
Archive template — _Cleanup/{YYYY}-{MM}-{DD} by default. Relative paths
resolve inside the monitored folder. Available placeholders: {YYYY} {MM}
{DD} {FILENAME} {EXT} {ORIGINAL_FOLDER_NAME}.
Exclusion patterns are checked before age and name, so an excluded file is never touched no matter what else matches:
| Pattern | Effect |
|---|---|
*.tmp | skip temp files |
build/ | skip a whole subfolder |
~$*.docx | skip Office autosave files |
^backup_\d{4} | regex, when the rule has regex enabled |
On Windows, glob patterns are case-insensitive —
Report.PDF. This matches how 1.5.0 behaved. Regex patterns are case-sensitive.
Needs Rust (stable), Node 20+, and the MSVC build tools.
npm install
npm run tauri dev # run with hot-reloading UI
npm run tauri build # produce target/release/bundle/nsis/
| Path | |
|---|---|
crates/autotidy-core/ | The engine — matching, actions, history, undo, scanning. No GUI dependencies. |
crates/autotidy-cli/ | Headless driver for the engine, used by the parity harness. |
src-tauri/ | Desktop shell: tray, window, IPC, Windows registry integration. |
src/ | React + TypeScript UI. |
tools/parity/ | Differential test harness against the 1.5.0 engine. |
legacy/ | The retired Python 1.5.0 engine. Not built, not shipped — here's why. |
Keeping the engine free of GUI dependencies is deliberate: the same code is driven by the app, by the CLI, and by the test harness.
cargo test # 251 tests — the actual suite
python tools/parity/run_parity.py # decisions, 12 rule variants
python tools/parity/wet_parity.py # resulting files, 11 rule variants
The reference engine has its own 76 tests, which exist to guard the thing the parity harnesses measure against rather than to test shipping code:
cd legacy && pytest -q
Rewriting a program that deletes people's files is not something to do on confidence alone. So the old engine is kept as an executable specification, and both engines are run over a purpose-built corpus and their output compared.
The corpus targets the places a port silently breaks: files straddling every age boundary, unicode and spaces and glob metacharacters in names, mixed-case extensions, pre-seeded collisions in the destination, and files already sitting inside the archive folder.
Two harnesses, because one isn't enough. The dry-run harness compares the
decisions each engine makes. But 1.5.0's collision handling lives inside
if not dry_run:, so a dry run can never reach it — the second harness runs
both engines for real over disposable copies and diffs the resulting file
trees byte-for-byte.
That's how the case-sensitivity and template-rename bugs above were found.
_1, _2), falling back to a timestamp
after 100 attempts.AutoTidy collects nothing. There is no telemetry, no analytics, no crash reporting, and no network access of any kind — the application never makes an outbound connection.
Everything it writes stays on your machine, under %APPDATA%\AutoTidy:
| File | Contents |
|---|---|
config.json | Your rules and settings |
autotidy_history.jsonl | A record of every file action taken, so it can be undone |
autotidy.log | Diagnostic log, rotated at 5 MB |
These necessarily contain paths and filenames from the folders you asked AutoTidy to organise. They are never transmitted anywhere. Deleting the folder removes all of it.
The installer downloads the Microsoft WebView2 runtime from Microsoft if it isn't already present on the system. That is the only network activity associated with the project, it happens once at install time, and it is performed by Microsoft's own bootstrapper.
Status: pending. An application to the SignPath Foundation is in progress. This policy describes the arrangement that will apply once it is approved, and is published here because the Foundation requires a project to have one. No release is signed yet — see Install.
Release binaries are signed by SignPath.io, with a free code signing certificate provided by the SignPath Foundation for open-source projects.
Because the certificate is issued in the SignPath Foundation's name, Windows shows SignPath Foundation as the publisher on signed AutoTidy binaries. That is expected and correct — it identifies who vouches for the signature, not who wrote the software.
AutoTidy is maintained by a single developer, who fills every role:
| Role | Who | Responsibility |
|---|---|---|
| Author | @KhazP | Writes and commits the source |
| Reviewer | @KhazP | Reviews changes before they are merged to main |
| Approver | @KhazP | Approves each signing request before a release is signed |
Every signing request is approved manually. Signing is never automatic.
Only binaries built by GitHub Actions from source in this repository, at a tagged commit. Nothing is signed from a developer machine, and no third-party binary is submitted for signing.
AutoTidy collects no user data — see Privacy above.
git checkout -b feat/my-improvementcargo test, cargo clippy, cargo fmt --check
and npm run typecheck cleanmainAutoTidy moves and deletes files according to rules you write. Try new rules against a folder you don't care about first, and use dry-run mode. The authors aren't liable for data loss.
MPL-2.0. The Rust and Tauri stack is MIT/Apache-2.0 throughout — unlike 1.5.0, which shipped GPL-v3 PyQt6 inside an MPL-2.0 project.
Citation metadata: CITATION.cff.