1Passwordのログイン935件を棚卸し。Gmailの受信履歴で無料会員の解約候補を絞って退会する

開発misc-dev

1Passwordのログイン935件を棚卸し。Gmailの受信履歴で無料会員の解約候補を絞って退会する

朝、1Password for Agents の発表を記事にした(1Password for Agentsが発表された。Claudeで今すぐ使えるのはMac版の「1Password for Claude」)。 いま Claude と組み合わせられるのは Mac 限定の「1Password for Claude」で、Windows に対応する時期は 1Password も Anthropic も発表していなかった。

その流れで、パスワードの使い回しを検査する機能が 1Password のどこかにあるのかを Claude Code に聞いた。 答えは「Watchtower」だった。 デスクトップアプリの左サイドバーから開け、「再利用パスワード(Reused passwords)」に使い回しのアイテムがまとめて出る。

1Password には、無料会員のまま残っているサービスも並んでいる。 それを片っ端から解約したいので、「まず Chrome DevTools で候補を探して」と Claude Code に頼んだ。 例に挙げたのは Evernote で、これはもう解約でいいと思っていた。

935件のログインから解約候補を絞る

1Password のログイン項目を取り出してもらうと、935件(568ドメイン)あった。 絞り込む方針を確かめたうえで、Google Workspace CLI のスキル(gogcli の gws)を使わせた。 仕事用と個人用の Gmail 2アカウントで、候補の319ドメインの受信履歴を調べる。 課金メールの有無と最後にメールが来た日で仕分ける段取りで、見込みは10分前後だった。

1回目の検索は、全件が空振りした。 319件すべてが「メールなし」に見えていた。 原因は2つあった。 並列で呼ぶための Node スクリプトから、Windows で gws を起動できていなかった。 個人アカウントの設定パスの書き方も誤っていた。 経緯は issue に記録済みとのことで、直して再実行させた。

この間に、「Google CLI のスキルじゃないんでしたっけ?」と聞いた。 返ってきた答えは、使っているのは gogcli の gws そのものだ、というものだった。 最初にスキルを読み込み、手順どおり仕事用と個人用の両アカウントを検索している。 ただ、319ドメインを2アカウントで調べ、1ドメインあたり最大6回呼ぶので、順番に打つと1時間近くかかる。 そこで gws を手で1回ずつ打つ代わりに、小さな Node スクリプトから並列で呼んでいる。 1回目の失敗は、このスクリプトが Windows で gws を起動できなかったせいで、スキルや gws の不具合ではない、という説明だった。 「了解、終わったら見せて」と返して待った。

再実行が終わると、最有力の候補は「課金メールがなく、1年以上メールも来ていない」104件になった。

Evernote のノートは消えていたのか

仕分けの結果を見て、Evernote が気になった。 Notion 側へエクスポートしてあるはずだが、いまは無料プランになっている。 以前のノートはもう消えていて、エクスポートもできないのではないかという気がしていた。

Evernote にログインできたところで、初回のアンケート画面を通過させ、ノートの件数を確かめさせた。 ノートは1,256件残っていた。 消えてはいなかった。

次は、それが Notion に取り込み済みかどうかである。 ところが、この Chrome では Notion にログインしていなかったので、照合はいったん止めた。

チェックリストで消すものを選ぶ

照合を止めているあいだに、チェックリスト HTML を作らせた。 ブラウザのタブで、サービスごとに「消す」「残す」「保留」を選んでいく形である。 途中で282件それぞれに一言説明を付けて作り直させた。 作り直しても前回の選択(消す23件、残す2件、保留4件)は残っていて、Evernote も「消す」のままだった。

ここで、「メモリ不足で、Claude Code がチェックリストの回答受付サーバーを止めた」と知らされた。 送信しても届かないので、タブを閉じたり再読み込みしたりしないでほしい、という。 「続きやってください」と返すと、サーバーは止まっていなかったと分かった。 止まったのはサーバーを起動したシェルの外側だけで、9:46 に起動したサーバー本体は動き続けていた。 起動し直そうとしたらポートがすでに使われていて、それで生きていると判明した。

回答を送ると、消すのは45件になった。 サービスによって消し方が違うので、消し方ごとに順番を分けて進める案が返ってきた。 1番目のグループは、1Password の整理だけで済む2件だった。

使っていないものと生きているものの扱い

ここで方針を決めた。

  • 1Password の整理だけで済むものは、アーカイブでよい
  • 生きているサービスで、1Password でパスワードを使い回しているものは、ちょっと長めのパスワードに全部変更していく
  • Evernote は、全ノートをファイルに書き出してから消す
  • Notion に移っているとは思うが、一応確かめておいてもらう

1Password の承認ダイアログが何度も出る場面もあった。 op コマンドを1回打つたびに、承認が1回出る。 最初は項目を1件ずつ問い合わせていたので、承認が8回出た。 複数の項目を1回の問い合わせにまとめる方法へ切り替えさせると、承認は1回で済んだ。 アーカイブも、退会がすべて終わってから1回でまとめて行う。 承認は、そこでもう1回だけ出る段取りになった。

最初の5件を退会する

最初の5件は、ブログサービスA、クラウドソーシングA、プレゼン作成サービスA、タスク管理サービスA、ブログサービスBである。

ブログサービスAはログインが必要だった。 並行して、ログイン済みになった Notion で、Evernote のノートブック名がページとして見つかるかを順に検索させた。 ブログサービスAは退会するとブログも消えるので、ブログが残っていないかを確かめさせてから、削除ボタンを押す直前まで進めさせた。 Notion への移行は一部しか確かめられなかったので、Evernote は予定どおり全ノートを書き出してから消す。

続いて、自分でクラウドソーシングAにログインした。 クラウドソーシングAとタスク管理サービスAの退会ページは、推測した URL がどちらも外れたので、公式ヘルプで正しい場所を調べさせた。 クラウドソーシングAは退会ページを開いて、退会理由まで入力させた。 プレゼン作成サービスAも削除ボタンの直前まで進めさせ、タスク管理サービスAはメニューから退会の場所を探させた。 こうして、ブログサービスA、クラウドソーシングA、プレゼン作成サービスA、タスク管理サービスAの4件が、退会ボタンの直前までそろった。

ブログサービスBにもログインした。 使っていないので、退会か削除をしておいてほしいと頼んだ。 ただしブログサービスBは中止になり、そのことを進捗記録に書いてもらった。

プレゼン作成サービスAは、削除の確認メールが届いていた。 メール内の確認リンクを取り出させて最終確認ページまで進み、アカウントを削除できた。 タスク管理サービスAは、ボードの削除でもう一段の確認が出た。 了承済みなので OK を押させて進め、アカウントを削除した。

最初の5件の結果は、次のとおりである。

サービス結果
ブログサービスA完了
クラウドソーシングA完了
プレゼン作成サービスA完了(アカウントを削除)
タスク管理サービスA完了(アカウントを削除)
ブログサービスB中止

この日の終わり方と残り

この日はここで切り上げた。 進捗記録を更新してもらい、翌日に読み込ませるプロンプトを、ダウンロードフォルダのテキストファイル(account-cleanup-handoff-2026-10-23.txt)に書き出させた。

  • 最初の5件のうち、ブログサービスA、クラウドソーシングA、プレゼン作成サービスA、タスク管理サービスAの4件を退会
  • ブログサービスB(中止)
  • 消す45件のうち、最初の5件より後のサービス
  • Evernote の全ノートの書き出しと削除
  • Notion への移行の照合(一部しか確かめられていない)
  • 1Password のアーカイブ(退会がすべて終わってから1回でまとめて行う)
  • 使い回しているパスワードを長めのものへ変更

学びメモ

  • 319件すべてが「メールなし」と出たのは、メールが無かったからではなかった。スクリプトが gws を起動できず、設定パスも誤っていたせいで、呼び出しそのものが空振りしていた
  • 無料プランなら以前のノートは消えている、という予想は外れた。Evernote にはノートが1,256件残っていたので、消す前に全ノートを書き出す手順を挟めた

朝に聞いた Watchtower の「再利用パスワード」は、使い回しを見つけるための機能だった。 その使い回しパスワードを長いものへ変える作業は、まだ手つかずで残っている。

#1password#gws#アカウント整理#セキュリティ#evernote