以下の内容はhttps://thinkami.hatenablog.com/entry/2025/03/26/225952より取得しました。


Clineとともに、開いているWebページのURLをmarkdown形式でコピーするChrome拡張を作ってみた

前回、今までのChrome拡張の代替として、ClineとともにChrome拡張を作ってみました。
Clineとともに、AmazonのURLをシンプル化するChrome拡張を作ってみた - メモ的な思考的な

今回も「ショートカットキーを押すと、開いているWebページのURLをmarkdown形式でコピーする」Chrome拡張機能の代替がほしくなったことから、Clineと作ってみたときのメモを残します。

 
目次

 

環境

Clineのバージョンが少し上がった程度で、前回と変わりません。

  • Windows11
    • Dev Containerで開発
  • VS Code
  • Cline 3.8.3
  • AIモデル
    • Claude 3.7 sonnet 20250219
  • Google NotebookLM
    • 主にClineの公式ドキュメントを読むのに使用

 

事前準備

前回同様、 .clinerulesmemory-bank ディレクトリのファイルを用意しました。

一方、「動くものができればよい」程度の意識でいたため、Chrome拡張の仕様については調べたりしませんでした。

 

Clineとの協業

initialize memory bank を入力した後、実装を進めてもらいました。

途中エラーになるところがいくつかあったため、Clineへエラーメッセージを添えて修正の依頼をしました。具体的には

Windowsで ctrl + C を押した時に次のエラーになりました。その原因を教えて下さい。

Error handling response: ReferenceError: document is not defined at copyToClipboard (chrome-extension://fmjakpepfonbeijohmjcfddhhgladefg/background.js:35:19) at chrome-extension://fmjakpepfonbeijohmjcfddhhgladefg/background.js:18:7

実行したところ別のエラーが出ました。何が考えられるか教えて下さい

Error handling response: TypeError: Cannot read properties of undefined (reading 'writeText') at copyToClipboard (chrome-extension://fmjakpepfonbeijohmjcfddhhgladefg/background.js:36:4) at chrome-extension://fmjakpepfonbeijohmjcfddhhgladefg/background.js:18:7

です。

この対応をしてもらったところ、 Ctrl + C というショートカットキーを押すことで、URLをmarkdown形式で保存するところまでできました。

 
ここで完成としたら良かったのですが、「 Ctrl +C だと他のショートカットキーと重複するので、別のショートカットキーにする」という対応をさらに進めました。しかし、自分がChrome拡張の仕様に詳しくないことから、Clineとのやり取りがそこそこ発生してしまいました。

最終的にはショートカットキーを Ctrl + I にすることで、最低限動くようになりました。細かいところの作り込みはまだまだ必要と感じていますが、いったん完成としました。

タスクの費用感はこんな感じです。

 

感想

Clineとの往復を知っておけばよかった仕様としては次のあたりです。

  • Chromeでは、連続キー入力のショートカットができない
    • 例: Ctrl + C の後に C
  • Chromeで空いているショートカットキー
  • Notificationを使って画面通知する仕様
    • 通知する手段
    • アイコンが必須なこと

 
一方、自分がChrome拡張に詳しくないことで、「ClineのコードはChrome拡張的に本当に適切なコードなのか」というようなレビューモードにはならなかったことから、コードはさっと見る程度で済、頭の疲れがそこまでではなかった気がしました。

技術的な背景を知っているとレビューモードになってしまって頭が疲れてしまうので、Chrome拡張はちょうどよい題材だった気がします。

 

ソースコード

GitHubに上げました。
https://github.com/thinkAmi-sandbox/url_copy_chrome_extension_with_ai

今回のプルリクはこちら。
https://github.com/thinkAmi-sandbox/url_copy_chrome_extension_with_ai/pull/1




以上の内容はhttps://thinkami.hatenablog.com/entry/2025/03/26/225952より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14