{K} K-Tech Studio
K-Tech Studio v1.2.0 確認してから削除 Review, then delete ☕ Buy Me a Coffee

増えた競合コピーを、確認してから片づける Sync clutter, reviewed before you delete it

CopyGuard は、iCloud・Dropbox・Remotely Save・Syncthing など、Obsidian Sync 以外の方法で同期しているときに増える「競合コピー」「空ファイル」「一時・破損ファイル」を見つける整理プラグインです。見つけた項目は、選んだものだけ隔離フォルダへ移すだけ。削除は別の確認ステップで、既定は「削除ミスをおこさない」です。無料(MIT)。

CopyGuard is a tidy-up plugin for vaults synced with iCloud, Dropbox, Remotely Save, or Syncthing — the setups without Obsidian Sync's built-in conflict merging. It finds sync-conflict copies, empty files, and leftover temp files, then moves only what you approve into a quarantine folder. Deleting is a separate, confirmed step built to avoid delete mistakes. Free & MIT.

こんな悩み、ありませんか

Sound familiar?

Obsidian Sync ではない同期方法だからこそ起きる、地味に困る話です。

The quiet, everyday friction of syncing a vault without Obsidian Sync.

🌀

「(競合コピー)」が同期のたびに増える

“(conflicted copy)” keeps showing up

iCloud や Remotely Save は、タイミングが悪いと同じ内容の別ファイルを隣に作ります。

iCloud and Remotely Save can create a duplicate file right next to the original when timing is off.

🤷

何を消していいか分からない

Not sure what's safe to delete

大事な版をうっかり消すのが怖くて、結局そのまま溜め込んでしまう。

Afraid of losing the wrong version, so the clutter just piles up instead.

💥

クラッシュ後の一時ファイルが残る

Leftover files after a crash

アプリやOSが落ちたあとの .tmp~ 付きファイルが Vault に散らばる。

.tmp files and stray ~ files scatter across the vault after an app or OS crash.

🔀

Obsidian Sync は使っていない

Not on Obsidian Sync

公式 Sync のマージ機能がないぶん、他の同期方法では自分で片づける仕組みが必要になります。

Without official Sync's built-in merge handling, other sync setups need a manual way to clean things up.

使い方は4ステップ

Four steps

全部まとめて消したりしません。見て、選んで、それから動かします。

Nothing is deleted in bulk. You look, you choose, then it moves.

1

スキャン

Scan

リボンの ⧉ アイコン、またはコマンド「Open CopyGuard」。

Click the ribbon icon, or run the Open CopyGuard command.

2

グループで確認

Review by group

競合コピー・空ファイル・一時ファイルに分けて一覧表示します。

Conflict copies, empty files, and temp files are listed separately with badges.

3

選んだものだけ移動

Move only what you choose

チェックした項目だけ K-Tech Trash Box へ(名前は変更可能)。

Only ticked items move into K-Tech Trash Box (the name is configurable).

4

確認してから削除

Confirm, then delete

起動時、箱に中身があるときだけ確認します。既定は「削除ミスをおこさない」。

On startup, if the box has files, you're asked. The default is built to avoid delete mistakes.

できること

Features

「自動でまとめて消す」道具ではなく、「見てから自分で決める」ための道具です。

Not an auto-cleaner. A tool built for you to review, then decide.

🔍

同じフォルダで名前を見る

Looks at names in the same folder

同じフォルダに原本があれば、それと対にして出します。iCloud などの型は、原本がなくても候補に出します(「同じフォルダに元ファイルなし」と表示)。番号付きの名前は、下の別設定です。

If an original sits in the same folder, it is paired with that file. Usual sync-name patterns are still listed when the original is missing (labeled “no original in the same folder”). Numbered names are a separate setting below.

🔢

番号違いの重複は既定オフ

Numbered duplicates stay off by default

「Note 2.md」のような名前は本人の題と区別しづらいため、初期設定では対象外です。

Names like “Note 2.md” are easy to confuse with a title you chose, so this is off unless you turn it on.

🗂

日数と拡張子を自分で決める

You set the age and extensions

空ファイルは一定日数を過ぎたものだけ。対象の拡張子も指定できます。

Empty files only count once they're past a minimum age, and you choose which extensions matter.

開いているファイルは除外

Skips files you're using

今開いているファイルや .icloud のプレースホルダは対象から外れます。

Files you currently have open and .icloud placeholders are skipped.

📦

隔離フォルダは名前も範囲も変更可能

Quarantine folder, your name and scope

既定は「K-Tech Trash Box」。スキャン対象・除外フォルダも指定できます。

Default is “K-Tech Trash Box.” You can also set which folders to scan or skip.

🌍

8言語のUI

8 UI languages

日本語・英語・ドイツ語・韓国語・簡体字・繁体字(台湾)・スペイン語・ポルトガル語。アプリの言語設定に追随します。

Japanese, English, German, Korean, Simplified Chinese, Traditional Chinese (Taiwan), Spanish, and Portuguese — the plugin follows the app's language.

機能対象事項・非機能対象事項

In scope — and out of scope

役割をはっきりさせた、小さくて正直なツールです。

A small, honest tool with a clearly defined job.

機能対象事項 ✓ Does

  • 競合コピー・空ファイル・一時ファイルの検出(名前、大きさ、同じフォルダなら中身の一致)
  • 同じ内容のコピーだけをまとめて選ぶ(確認してから隔離)
  • 選んだ項目だけを隔離フォルダへ移動
  • 隔離フォルダの最終削除は、必ず確認してから(既定は削除ミスをおこさない)
  • 削除先はアプリの「削除したファイル」設定に従う
  • Detect conflict copies, empty files, and temp files (by name, size, and same-folder byte match)
  • Select only copies that match the original, then you review and move
  • Move only the items you select into a quarantine folder
  • Ask for confirmation before any final delete (default is built to avoid delete mistakes)
  • Follow the app's own “Deleted files” destination setting

非機能対象事項 △ Out of scope

  • 競合コピーの中身を自動でマージ(結合)する
  • iCloud / Dropbox / Syncthing などがコピーを作るのを止める
  • 確認なしでの自動削除
  • 判定の完全な正確性の保証(誤検出の可能性があります)
  • Automatically merge the contents of conflict copies
  • Stop iCloud / Dropbox / Syncthing from creating more copies
  • Delete anything without asking first
  • Guarantee perfectly accurate detection (false positives are possible)

⚠️ ご利用前に必ずお読みください ⚠️ Please read before you use it

  • 本ソフトウェアは現状有姿・無保証で提供されます。作者は、本ツールの利用によって生じたいかなる損害についても責任を負いません。
  • 検出はファイル名と大きさだけで判定します。誤って検出・除外する場合があります。移動・削除の前に、必ず内容をご自身で確認してください。
  • 移動・削除の操作は同期を通じて他の端末にも反映される場合があります。複数端末で同期している場合はご注意ください。
  • 最終的な判断と操作の実行はご自身の責任です。大事な Vault は、操作前にバックアップを取ることを強く推奨します。
  • CopyGuard は内容のマージはしません。競合コピーのどちらを残すかは、開いて比較してから決めてください。
  • This software is provided “as is,” with no warranty. The author is not liable for any damage arising from its use.
  • Detection relies only on file names and sizes. False positives and false negatives are possible. Always review the actual contents before you move or delete anything.
  • Moving or deleting files can propagate to other devices through sync. Take extra care if your vault syncs across multiple devices.
  • The final decision and every action are your own responsibility. We strongly recommend backing up an important vault before you start.
  • CopyGuard does not merge content. Open and compare conflict copies yourself before deciding which one to keep.

詳細は MIT ライセンス をご確認ください。

See the MIT License for the full terms.

設定

Settings

初期値のままでも使えます。必要なところだけ、あとから調整してください。

Works with the defaults. Adjust only what you need, whenever you need it.

設定Setting 初期値Default 説明Description
隔離フォルダ(Trash Box)Quarantine folder K-Tech Trash Box 競合コピー・空ファイル・一時ファイルの移動先Where approved items are moved
スキャン / 除外フォルダScan / excluded folders 空欄(Vault 全体)Empty (whole vault) カンマ区切りで範囲を絞れます。隔離フォルダは常に除外Comma-separated. The quarantine folder is always excluded
競合コピーを検出するDetect conflict copies ON iCloud / Dropbox / Remotely Save / Sync / Syncthing の名前の型に対応Matches iCloud / Dropbox / Remotely Save / Sync / Syncthing name patterns
番号付きの重複も含めるInclude numbered duplicates OFF 「Note 2.md」なども対象にする、より広い(=リスクのある)検出Also treat “Note 2.md”-style names as copies — broader, and riskier
空ファイルを検出するDetect empty files ON・7日・mdON, 7 days, md 開いているファイルは対象外。日数・拡張子は変更可能Open files are skipped. Age and extensions are configurable
一時・破損ファイルを検出するDetect temp / corrupt files ON・7日ON, 7 days .tmp / 末尾 ~ / Office ロックファイルなど。.icloud プレースホルダは除外.tmp, trailing ~, Office lock files, and similar. .icloud placeholders are skipped
起動時に確認するAsk on startup ON 隔離フォルダに中身があるときだけ確認。既定は「削除ミスをおこさない」Only asks if the quarantine folder has files. Default is built to avoid delete mistakes

インストール方法

How to install

Obsidian の Community plugins から検索して入れられます。GitHub Releases から3ファイルを置く方法もあります。

Search and install from Obsidian Community plugins. You can also place three files from GitHub Releases.

1

Community plugins を有効化

Enable Community plugins

Obsidian → 設定 → Community plugins →「Turn on community plugins」

Obsidian → Settings → Community plugins → Turn on community plugins

2

CopyGuard を検索してインストール

Browse and install CopyGuard

Browse →「CopyGuard」で検索 → Install → Enable。ID は copy-guard

Browse → search CopyGuard → Install → Enable. ID: copy-guard.

3

スキャンする

Scan

リボンの ⧉ アイコン、またはコマンド「Open CopyGuard」。

Click the ⧉ ribbon icon, or run Open CopyGuard.

手動で置く場合は、GitHub の Releases から main.jsmanifest.jsonstyles.css.obsidian/plugins/copy-guard/ へ入れてください。

To install by hand, download main.js, manifest.json, and styles.css from GitHub Releases into .obsidian/plugins/copy-guard/.

Community plugins を開く Open Community plugins 最新リリースを開く Open latest release

アップデート履歴

Release history

新しいバージョンは GitHub Releases とここに追記していきます。

New versions are published on GitHub Releases and added here.

v1.2.0
2026.09.20

同じ内容だけ選んで隔離 Select identical copies, then quarantine

スキャン後、「同じ内容だけ選ぶ」で、同じフォルダの元ファイルと中身が一致する競合コピーだけにチェックが付きます。確認してから隔離フォルダへ移します。マージはしません。

After a scan, Select identical copies checks only conflict copies whose bytes match the original in the same folder. You still review before moving them to the quarantine folder. Still does not merge.

v1.1.1
2026.09.09

Proton Drive・公式 Sync の -conflict-・同じ内容の表示 Proton Drive, Sync -conflict- names, same-content badge

Proton Drive の (# Edit conflict) / (# Name clash)、公式 Sync の Note-conflict-YYYY-MM-DD を検出。同じフォルダに元があるとき、中身が同じなら一覧に出す。マージはしません。

Detects Proton Drive (# Edit conflict) / (# Name clash) names and official Sync Note-conflict-YYYY-MM-DD files. When the original is in the same folder, a badge shows if the copy has the same bytes. Still does not merge.

v1.1.0
2026.08.31

検出強化・コミュニティ審査対応 Better detection, community review fixes

Dropbox の実ファイル名(ユーザー名+競合コピー)、公式 Sync、韓国語・中国語・スペイン語・ポルトガル語、Nextcloud を検出。元ファイルがなくても候補に出す。Buy Me a Coffee ボタンから !important を外した。

Detects real Dropbox names (account plus conflicted copy), official Sync leftovers, Korean / Chinese / Spanish / Portuguese, and Nextcloud. Lists name matches even without the original. Buy Me a Coffee button no longer uses !important.

v1.0.4
2026.08.30

8言語・設定タブ・Issues 案内 8 languages, settings tabs, Issues guidance

UI を日本語・英語・ドイツ語・韓国語・簡体字・繁体字(台湾)・スペイン語・ポルトガル語に対応。設定画面をタグ式タブ(基本 / スキャン / 削除 / 情報)に変更。不具合は GitHub Issues へ案内。起動時の削除確認をオンにするときに警告を表示。

UI in Japanese, English, German, Korean, Simplified Chinese, Traditional Chinese (Taiwan), Spanish, and Portuguese. Settings use tag-style tabs (General / Scan / Delete / Info). GitHub Issues banner for reports. Warning modal when enabling startup delete confirmation.

v1.0.3
2026.08.29

コミュニティ審査対応・最初の安定版 Community review fixes, first stable release

builtin-modules の置き換え、getLanguage() への切り替え、設定の型付き読み込み、createDiv/createSpan の利用、FileManager.trashFile() への変更、getSettingDefinitions() による設定検索対応、確認クリックの Promise 処理を修正。最終削除はアプリの「削除したファイル」設定に従います(独自のOSゴミ箱トグルは廃止)。

Addressed community review notes: dropped builtin-modules, switched to getLanguage(), typed settings loading, createDiv/createSpan helpers, FileManager.trashFile(), settings search via getSettingDefinitions(), and fixed a floating Promise on the confirm click. Final delete now follows the app's own “Deleted files” setting (the separate OS-trash toggle was removed).

v1.0.2
2026.08.29

設定画面の見出し調整 Settings heading fix

設定画面でプラグイン名をそのまま見出しに使わないよう修正。

Settings no longer use the plugin's own name as a heading.

v1.0.1
2026.08.29

設定見出しの整理 Settings heading cleanup

設定内の見出しに Setting.setHeading() を使用。

Settings headings now use Setting.setHeading().

v1.0.0
2026.08.29

初回公開 Initial release

競合コピー(英語・日本語・ドイツ語の名前、Syncthing)、空ファイル、一時ファイルの確認。選んだものだけ K-Tech Trash Box へ移動。削除前の確認(既定は削除ミスをおこさない)。UI は日本語・英語・ドイツ語。免責とプライバシー表示。Buy Me a Coffee(任意)。

Review conflict copies (English / Japanese / German names, Syncthing), empty files, and leftover temp files. Move only what you select into K-Tech Trash Box. Ask before deleting (default is built to avoid delete mistakes). UI in Japanese, English, or German. Disclaimer and privacy notice in the plugin. Buy Me a Coffee (optional).

☕ 開発を応援する ☕ Support development

CopyGuard は無料・オープンソースです。役に立ったら、コーヒー1杯分の応援が今後の更新の励みになります(任意です)。

CopyGuard is free and open source. If it helps, a coffee keeps the updates coming (optional).

Buy Me A Coffee