いっしきまさひこBLOG

AI・機械学習やAIコーディングを中心に、試したことや気づきをまとめている個人ブログです。一色政彦。

Linear入門:GitHub連携の「同期」と、Codex/Claude Code(デスクトップアプリ)でつなぐまで

課題管理ツールのLinearを、まっさらな状態から触りはじめました。GitHub連携の設定、プロジェクトとIssueの作成、カンバンボードでの作業、そしてコーディングエージェント(OpenAI Codex / Claude Code)のデスクトップアプリと接続するところまでの記録です。

Linearは、Claude CodeやCodexと組み合わせて使うときに、タスクの情報や進捗を置いておく「記憶領域」として相性のよいツールだと感じました。とくに、エージェントに作業させながら進捗や残タスクを管理する(ループエンジニアリング的な)使い方に向いています。GitHubともうまく同期できるので、今のところかなりおすすめできます。

この記事は、上から順に同じ手順を再現できるように書いています。途中で私が引っかかった所には「ここで注意」を入れましたので、同じ失敗をしないための参考にしてみてください。

前提:使ったもの

  • OS: Windows 11
  • 課題管理: Linear(Web版とデスクトップアプリ)
  • リポジトリ: GitHub(題材は個人開発のWindowsアプリ「Promplet」)
  • エージェント: Codexアプリ、Claudeアプリ(Claude Code)

GitHubとの連携(アカウント接続)をする場所は、ステップ1で説明します。私はすでに連携済みの状態から始めましたが、未連携でもステップ1で有効化できます。

ステップ0:最初に「GitHub連携の2つの意味」を押さえる

少しだけ概念の話をします。難しく感じるかもしれませんが、実際に手を動かすうちに腑に落ちるので、分からなくても次のステップに進んで構いません。

Linearの「GitHub連携」は、性質の違う2つの機能をまとめてそう呼んでいます。

  • コード連携:IssueはLinearで作り、GitHubはコード(ブランチ・PR・コミット)担当。コミットやPRにIssue番号を書くと、Linearのステータスが自動で動く。
  • Issue同期:GitHub Issues と Linear Issues を同期する。GitHubに立てたIssueがLinearにもできあがる。

この記事で扱うのは「Issue同期」のほうです。コード連携(コミットやPRでステータスを動かす方)は、この記事では取り扱いません(記事の最後の「ヒント」で簡単に触れます)。

ここで注意 「同期する」という言葉が、この2つのどちらを指すのかで意味が変わります。そして、IssueをGitHubとLinearの両方に二重で作る必要はありません。

ステップ1:GitHubと「連携」する(アカウント接続)

先に言葉を分けておきます。このステップの「連携」はGitHubアカウントをLinearにつなぐこと、次のステップの「同期」はIssueを実際に流すことです。別々の作業なので、分けて進めます。

操作はLinearの画面(Web版)です。

  1. 左上のチーム名(私の場合はisshiki)の横にある∨(プルダウン)をクリックしてメニューを開き、「Settings」を選ぶ
  2. 設定画面の左サイドバーにある「Features」グループの中の「Integrations」を開く
  3. 一覧の「Essentials」の左上にある「GitHub」をクリックする(検索窓で "GitHub" を探してもよい)

Integrationsの一覧画面
Settings → Integrations の画面。GitHubは「Essentials」の左上にある

 4. GitHubの統合画面が開きます。ここの「Enable」を押すとGitHubと連携できます(私はすでに連携済みだったので、この画面では設定項目が並んだ状態でした)

GitHub統合のEnable画面
GitHubの統合画面。未連携ならここの「Enable」から有効化する

ここで注意 ここでやるのは「アカウントをつなぐ(連携)」だけです。Issueを流す「同期」は次のステップで別に設定します。連携しただけでは、まだIssueは流れてきません。

ステップ2:Issueの「同期」を設定する

連携できたら、同期を設定します。連携済みのGitHub統合画面の下に「GitHub Issues」という項目が出てくるので、その「+」を押します。

GitHub Issuesの設定箇所
連携済みのGitHub統合画面。下部「GitHub Issues」の「+」がIssue同期の入口(既存Issueを取り込む「Import issues」とは別の機能)

「+」を押すと、リポジトリとLinearのチームをひも付けるダイアログが開きます。対象リポジトリとチームを選び、片方向(one-way)か双方向(two-way)かを選びます。私は片方向(GitHub→Linear)にしました。

考え方はシンプルです。全員が見える場所(GitHub)に置きたい大きめの項目と、自分の手元で管理したい細かいタスクを、置き場所で分けます。前者をGitHub、後者をLinearに寄せるイメージです。

ここで注意 双方向にすると、Linearに書いた細かいタスクまでGitHubに流れていきます。公開する側や、チーム全員が見る側をすっきり保ちたいなら、片方向で十分です。one-wayでも「GitHub→Linear」は常に効きます。

同期モードの選択
GitHubリポジトリとLinearチームをひも付けるダイアログ。上が片方向、下が双方向

ステップ3:プロジェクトを作る

ここからもLinearの画面(Web版)での操作です。左の「Projects」から新規作成し、名前を付けます(私は Promplet v1.1)。名前の下のサマリーに、1行だけ概要を書きました。

ここでのポイントは、Linearの「プロジェクト」は、GitHubでいうリポジトリ単位ではない、ということです。リポジトリと1対1で作るのではなく、「Promplet v1.1」のように、ひとまとまりの作業(バージョンやマイルストーンなど、管理したい作業の単位)でプロジェクトを作ります。1つのリポジトリの中に、v1.1・v1.2…と複数のプロジェクトをぶら下げていくイメージです。

ここで注意 説明(Description)の大きな空欄や、マイルストーンは、最初は空のままでOKです。

プロジェクト作成
名前の下がサマリー(概要)、その下の大きな空欄がデスクリプション(説明)

ステップ4:Issueとサブイシューを作る

作ったプロジェクトを開いた状態で「New issue」からIssueを1件作ります。プロジェクトを開いて作れば、自動でそのプロジェクトに紐づきます。

次に、そのIssueを開いて、メニューから「Add sub-issue」を選び、サブイシュー(子Issue)を1件ぶら下げます。

ここで注意 サブイシュー作成のショートカットは Ctrl + Shift + ↓(下矢印)です。Ctrl + Shift + O は通常のIssue作成なので間違えやすいです。また「Add sub-issue」を選ぶと通常のIssue作成ダイアログが開きますが、それで正常です(親の下に紐づきます)。

Issue作成ダイアログ
プロジェクト欄に目的のプロジェクト名が出ていれば、正しく紐づいている

ステップ5:カンバンボードでステータスを動かす

Issue一覧の表示をボードに切り替えます。右上の表示オプションでレイアウトを「Board」にするか、Ctrl + B でリスト表示とカンバンボード表示をトグル(交互に切り替え)できます。ステータスでグループ化したボードにして、カードをドラッグで Backlog → In Progress → Done と動かします。

ここで注意 ボードを使うのに、ビューを新規作成する必要はありません。表示を切り替えるだけです。中身が空のステータス列は自動で隠れるので、見当たらないときは「Show empty columns」で表示します。 もう一点。サブイシューを全部Doneにしても、親Issueは自動でDoneになりません。親子のステータスは独立しているので、親は自分で動かします。

カンバンボードと表示オプション
表示オプションでレイアウトを「Board」に。空の列は「Show empty columns」で出す

親子のステータスは独立
サブイシューをDoneにしても、親はBacklogのまま。親子のステータスは別管理

ステップ6:既存のGitHub Issueをインポートする

ステップ2の同期だけだと、設定後に作られる新しいIssueは流れてきますが、既存のIssueは入ってきません。既存分は「Import issues」から一度だけ取り込みます。GitHubを選び、取り込み先のチームと対象リポジトリを指定して実行します。

途中で「ユーザーの対応付け(Map users)」が出たら、「Map to existing」でGitHub側の作者を自分のLinearアカウントに寄せます。

ここで注意 「同期」は今後の新規分、「インポート」は過去の既存分、という役割分担です。同期しただけで既存Issueが出てこないのは正常で、取り込みはこのインポートで行います。

インポートのユーザー対応付け
GitHub側の作者をLinearの自分に「Map to existing」で寄せる(メール部分はモザイク推奨)

ステップ7:エージェントをつなぐ前に「2つのルート」を知る

ここからCodexやClaude CodeをLinearにつなぎます。先に、つなぎ方が2ルートあることを知っておくと迷いません。

  • クラウド(Web版):CodexのWeb版(ブラウザ)などでLinearと連携し、Issueをクラウド上の作業環境で処理させるルート。Codexなら、Issueに @Codex を割り当て/メンションして呼びます。Claudeの場合は、Linear内蔵の「Coding sessions」にIssueを委譲する形が基本で、@Codex のような固定のメンション名で呼ぶわけではありません。いずれもプラン、GitHub連携、作業環境などの前提があります。
  • ローカル(アプリ版):手元のCodexアプリ(デスクトップアプリ)やClaudeアプリからLinearを参照・更新しながら、コード作業は手元のリポジトリで行うルート。Codexの場合は、Linearプラグインを追加すると、Linear用のスキルとLinear用のアプリ連携が入ります。クラウド用のCodex環境は不要です。

私は手元のCodexアプリやClaudeアプリで使いたかったので、ローカル(アプリ版)を選びました。

ここで紛らわしいのが、「Codex」にはWeb版とアプリ版(デスクトップ)があり、設定画面も別だという点です。CodexのWeb版でLinear連携を設定する方法と、Codexアプリ側でLinearプラグインを追加する方法は、目的が少し違います。LinearのIssueをクラウド上のCodexに委譲したいならWeb版/クラウド連携、手元のCodexアプリからLinearを読み書きしたいならアプリ側のプラグインを使います。

ここで注意 Linearのサイドバーにある「Connect Codex」やCodex Web版の「Linearにインストール」は、基本的にはクラウド版の入口です。手元で使うなら、Codexアプリ側の「プラグイン」からLinearを追加します。クラウド用の「環境」は、アプリ版でLinearを読み書きするだけなら要りません。 用語も整理しておくと、プラグイン=追加機能のパッケージ、スキル=作業手順のまとまり、アプリ連携/コネクタ=外部サービスにつなぐ接続機能です(Codexでは「アプリ連携」、Claudeでは「コネクタ」と呼ぶ)。

ステップ8:Codexアプリをつなぐ【ローカル】

ここからは Codexアプリ(デスクトップアプリ)での操作です。Web版ではありません。

  1. Codexアプリのサイドバーにある「プラグイン」を開き、「Linear」を検索する
  2. Linearの「プラグインを追加」を押す(このとき、使い方をまとめた「スキル」も一緒に入ります)
  3. 追加の途中でLinearへのサインイン(OAuth)を求められるので許可する。[Linearに進む]と[高度な設定(ChatGPT.comを開く)]ボタンがあるので、私の場合は「高度な設定」を選択。ChatGPTのアプリ管理で「Linear」ページが表示されるので、[接続する]ボタンをクリック。次のダイアログ表示で[Linearでサインイン]をクリック。そこで認証画面が出て、承認しました

Codexのプラグインとスキル
Codexアプリのプラグインとスキル(プラグイン=追加機能のパッケージ、スキル=作業手順のまとまり)

これでプラグインとスキルが追加され、Linear用のアプリ連携も有効になります。実際につながったかどうかは、ステップ10の読み取りテストで確認します。

ステップ9:Claudeアプリ(Claude Code)をつなぐ【ローカル】

考え方はCodexと近いですが、Claude側には「コネクタ」があり、ここが実際の接続を担います。

  1. 設定の中にある[プラグイン](のAnthropic & パートナー)から「Linear」を追加する

ClaudeのプラグインにあるLinear
Claude側のプラグイン一覧にあるLinear

  1. 「コネクタ」を開き、Linearを追加して[連携/連携させる]ボタンからサインイン(OAuth)する。アクセスを承認(Approve)すると完了です

Claudeのコネクタ設定
接続先のサインインは「コネクタ」側で行う

ここで注意 プラグイン画面に「どこにつなぐ」設定が見当たらなくても正常です。サインインは「コネクタ」側、または初回利用時のOAuthで行われます。 ちなみに私の場合は、コネクタ上は「接続中」と表示されているのに、実際にはLinearのツールが使えませんでした。コネクタをいったん切断して再接続したら、使えるようになりました。

ステップ10:つながったか確認する(テスト)

UIの状態表示は場所によって食い違って見えることがあります。確実なのは、エージェントに実際にLinearを読み取らせることです。返ってきたデータが、接続先の動かぬ証拠になります。

私は次のように依頼して確認しました。

Linearに接続して、次を読み取って教えてください。
- アクセスできるワークスペース/チーム名と key
- チーム名(key)のプロジェクト一覧
- 目的のプロジェクトに紐づくIssueを数件(ID・タイトル・ステータス)
どのワークスペースに接続されているかも明記してください。

読み取りが通ったら、捨てIssueを1件作り、コメントを足し、ステータスをBacklog→In Progress→Doneと動かす書き込みテストもやると安心です。デスクトップアプリのボードを開いておくと、カードがリアルタイムで動くのが見えます。

まとめ:ここだけ注意(チェックリスト)

  • この記事で扱うのは「同期」。コード連携(コミット/PRでステータスを動かす)は最後のヒントで簡単に触れる
  • 「連携」(GitHubアカウントをつなぐ)と「同期」(Issueを流す)は別物。言葉を分けて捉える
  • 「同期する」が指すのはコード連携かIssue同期か。同じIssueを両方に二重で作る必要はない
  • 細かいタスクを全員が見る側に出したくないなら片方向(GitHub→Linear)
  • Settingsはチーム名の横の∨(プルダウン)から開く
  • サブイシュー作成は Ctrl + Shift + ↓Ctrl + Shift + O は通常Issue)
  • カンバンは Ctrl + B でトグル。ビュー新規作成は不要。空の列は「Show empty columns」で出す
  • 親子のステータスは独立。子が全部完了でも親は手動で動かす
  • 同期は今後分、既存分はインポート
  • エージェント接続はクラウドとローカルの2ルート。手元で使うならプラグイン
  • 接続確認はUI表示より「読み取りテスト」が確実

ヒント:コード連携(コミットやPRでステータスを動かす)とは

この記事では扱いませんでしたが、もう一つの連携「コード連携」も便利なので、考え方だけ簡単に紹介します。

仕組みはシンプルで、コミットメッセージにマジックワードとIssue番号を書いておくと、Linearのステータスが自動で動きます。

  • 事前の準備(1回だけ):コミット連動を有効化する
    • ステップ1〜2で開いた「GitHubの連携設定」画面を下にスクロールする(チーム設定 → Integrations → GitHub の中です)
    • 「Link commits to issues with magic words」をオンにする
  • 使い方
    • コミットメッセージに Fixes ISK-7 のように書く(リンクだけなら Part of ISK-7
    • そのコミットをデフォルトブランチ(main)に入れると、Fixes を付けたIssueが自動で「完了(Done)」に動く
    • プルリクエスト(PR)を使う場合は、PRの下書き→マージに合わせてステータスが段階的に動く

コミット連動(マジックワード)の設定箇所
GitHubの連携設定の下のほうにある「Link commits to issues with magic words」。これをオンにするとコミット連動が有効になる

そして、この作業はAIエージェントに任せるのが楽です。この記事で設定した接続が済んでいれば、「Issueを読んで実装し、Fixes ISK-7 のようなメッセージでコミットする」ところまで、CodexやClaude Codeにお願いできます。番号の付け方を手で覚えるより、まずAIに任せてみるのがおすすめです。

Promplet:AIチャットやCLIに定型プロンプトをすばやく貼り付けるWindowsアプリを公開しました

Windows向けの小さなデスクトップアプリ Promplet を公開しました。

Prompletは、AIチャット、AI系CLIツール、ターミナル、Slack、メールなどに、よく使うプロンプトや定型文をすばやく貼り付けるための 常駐型プロンプトパレット です。

GitHubリポジトリはこちらです。

https://github.com/isshiki/Promplet

最新版のリリースはこちらです。

https://github.com/isshiki/Promplet/releases/latest

作った理由

AIチャットやCLIツールを使っていると、同じような指示文を何度も入力することがあります。

たとえば、

  • 文章を要約してほしい
  • 自然な日本語に直してほしい
  • Slack向けに短くしてほしい
  • コードをレビューしてほしい
  • ターミナルやCLIに長めの入力を貼り付けたい

といった場面です。

メモアプリやテキストファイルに定型文を置いておく方法もありますが、毎回開いてコピーするのは少し面倒です。 また、クリップボード履歴やスニペットツールも便利ですが、自分としてはもっと単純に、

画面上に小さなボタンパレットを置いておき、押したらすぐ貼り付く

というものが欲しくなりました。

そこで作ったのがPrompletです。

Prompletでできること

Prompletを起動すると、小さなパレットが画面上に表示されます。 各ボタンには、あらかじめ登録しておいたプロンプトや定型文が割り当てられています。

Prompletのメインパレット
Prompletのメインパレット

ボタンをクリックすると、そのプロンプトが直前にフォーカスされていたアプリに貼り付けられます。

たとえば、ChatGPTやClaudeの入力欄、Windows Terminal、Slack、メール作成画面などに使えます。

メインパレットは、できるだけ邪魔にならないようにしています。

  • タスクバーには表示しない
  • X ボタンでは終了せず、パレットを非表示にする
  • 設定や終了はタスクトレイメニューから行う
  • 1つのPrompletだけが起動するようにしている
  • グループごとにボタンを切り替えられる
  • 右クリックでは貼り付けず、コピーだけできる

Prompt Libraryでプロンプトを管理する

Prompletには、プロンプトを管理するための Prompt Library があります。

PrompletのPrompt Library
PrompletのPrompt Library

Prompt Libraryでは、次のような操作ができます。

  • グループの追加・削除
  • グループ名の変更
  • プロンプトの追加・削除
  • プロンプト名の変更
  • プロンプト本文の編集
  • プロンプトの有効/無効の切り替え
  • プロンプトの並び替え
  • 変更の保存・キャンセル

Prompletでは、最大10グループまで作成できます。 各グループには最大10個のプロンプトボタンを登録できます。

この「10個」という制限は、デフォルトのショートカットキーに合わせています。

Ctrl+NumPad1 ~ Ctrl+NumPad9
Ctrl+NumPad0

つまり、表示中のボタンをテンキーのショートカットから直接貼り付けることもできます。

Settings

設定画面では、テーマや透明度、ホットキーなどを変更できます。

PrompletのSettings
PrompletのSettings

現在の設定項目は以下です。

  • テーマ:System、Light、Dark
  • パレットの透明度
  • パレット表示/非表示のホットキー
  • 各ボタンの貼り付けホットキー
  • デフォルト設定へのリセット

テーマや透明度は、設定画面を開いている間にプレビューされます。

デフォルトのホットキー

デフォルトでは、以下のホットキーを用意しています。

Ctrl+Alt+Space:パレットの表示/非表示
Ctrl+NumPad1 ~ Ctrl+NumPad9:表示中のボタン1~9を貼り付け
Ctrl+NumPad0:表示中のボタン10を貼り付け

テンキーのショートカットは、Windows側が物理テンキーをどのように認識するかに依存します。 NumLockはオンにしておくのがおすすめです。

また、テンキーショートカットに Shift を組み合わせると、Windows側で NumPad として認識されなくなることがあるため、避けた方がよいです。

インストール方法

現時点ではインストーラーはありません。

リリースページからzipファイルをダウンロードして、展開したうえで Promplet.exe を実行します。

  1. 最新リリースページを開く
  2. Promplet-v1.0.0-win-x64.zip をダウンロードする
  3. zipを展開する
  4. 展開したフォルダを安定した場所に移動する
  5. Promplet.exe を実行する

最新版はこちらです。

https://github.com/isshiki/Promplet/releases/latest

リリースzipには、Windows x64向けの自己完結ビルドが入っています。 そのため、通常利用では別途 .NET ランタイムをインストールする必要はありません。

普段使うだけなら、基本的には Promplet.exe を実行すれば使えます。

データ保存場所

プロンプトとアプリ設定は、以下のJSONファイルに保存されます。

%APPDATA%\Promplet\prompts.json

初回起動時に、このファイルは自動的に作成されます。

もしJSONファイルが壊れていた場合は、.bak サフィックス付きでバックアップしたうえで、有効なデフォルトファイルを作り直します。

ソースからビルドする場合

ソースからビルドする場合は、以下が必要です。

  • Windows
  • .NET 10 SDK
  • Visual Studio 18以降 ※Visual Studioで開きたい場合は、WPFデスクトップ開発環境が必要です。

開発用ビルドは以下です。

dotnet build .\Promplet.slnx

Windows x64向けの単一実行ファイルとして発行する場合は、以下です。

dotnet publish .\Promplet\Promplet.csproj `
  --configuration Release `
  --runtime win-x64 `
  --self-contained true `
  -p:PublishSingleFile=true `
  -p:IncludeNativeLibrariesForSelfExtract=true `
  -p:DebugType=None `
  -p:DebugSymbols=false `
  --output .\artifacts\Promplet-1.0.0-win-x64

今後の予定

v1.0.0で、基本的な機能はひとまず使える状態になりました。

今後は、機能をむやみに増やすよりも、日常的に使いやすく、壊れにくくする方向で改善していく予定です。

現時点で考えているロードマップは以下です。

  • v1.1:データ保護、バックアップ、インポート、エクスポート、復元
  • v1.2:Windows起動時の自動起動設定、運用系ショートカット
  • v1.3:診断、ログ、トラブルシューティング対応
  • v1.4:Prompt Libraryの使い勝手改善

検索機能やテンプレート変数なども一応検討しましたが、Prompletは「自分が中身を把握しているボタンをすばやく押す」ためのツールなので、今のところはシンプルさを優先するつもりです。

ライセンス

Prompletは、Apache License 2.0で公開しています。

まとめ

Prompletは、大きなプロンプト管理サービスではありません。 あくまで、Windows上で手元に置いておく小さな入力補助ツールです。

AIチャット、AI系CLIツール、ターミナル、Slack、メールなどを日常的に使っていて、よく使う指示文や定型文をすばやく貼り付けたい人には、そこそこ便利に使えるのではないかと思います。

GitHubはこちらです。

https://github.com/isshiki/Promplet

Promplet: A Small Windows Prompt Palette for AI Chats, CLI Tools, and Everyday Text Inputs

I have released a small Windows desktop app called Promplet.

Promplet is a tray-resident Windows prompt palette for quickly pasting reusable text into AI chats, CLI tools, terminals, Slack, email, and other text inputs.

GitHub repository:

https://github.com/isshiki/Promplet

Latest release:

https://github.com/isshiki/Promplet/releases/latest

Why I Made It

I often reuse small prompts and text snippets when working with AI chat tools, command-line AI tools, terminals, Slack, email, and other text inputs.

Of course, I could keep those snippets in a text file, a note app, or a clipboard manager. But I wanted something a little more direct:

  • a small palette that stays on screen
  • buttons that paste text immediately
  • groups for organizing prompts
  • keyboard shortcuts for visible buttons
  • a simple local app, not a cloud service

That is the idea behind Promplet.

What Promplet Does

Promplet keeps a small, always-on-top palette on your desktop. Each button represents one reusable prompt or text snippet. Clicking a button pastes the text into the application that had focus before the palette was clicked.

Promplet main palette
Promplet main palette

The main palette is designed to stay out of the way:

  • it does not appear in the taskbar
  • the X button hides the palette instead of exiting the app
  • the tray icon menu is used for settings, Prompt Library, reload, and exit
  • only one Promplet instance can run at a time

The palette shows prompts in the selected group. Groups are displayed as tabs, and the prompt buttons are stacked vertically. The palette height automatically follows the number of visible prompt buttons, and the width can be resized from the left or right edge.

Right-clicking a prompt button copies the text without pasting it.

Prompt Library

Promplet includes a Prompt Library window for managing groups and prompt buttons.

Promplet Prompt Library
Promplet Prompt Library

The Prompt Library supports:

  • adding and deleting groups
  • renaming groups
  • adding and deleting prompts
  • renaming prompts
  • editing prompt text
  • enabling or disabling prompts
  • moving prompts up or down
  • saving or canceling changes

Promplet supports up to 10 groups. Each group supports up to 10 prompt buttons. This matches the default keyboard shortcuts from Ctrl+NumPad1 through Ctrl+NumPad0.

Settings

Promplet also has a Settings window.

Promplet Settings
Promplet Settings

Settings currently supports:

  • theme mode: System, Light, or Dark
  • palette opacity
  • show/hide palette hotkey
  • paste button hotkeys
  • reset to defaults

Theme and opacity changes are previewed while the dialog is open.

Default Hotkeys

The default hotkeys are:

Ctrl+Alt+Space: show or hide the palette
Ctrl+NumPad1 ... Ctrl+NumPad9: paste visible buttons 1-9
Ctrl+NumPad0: paste visible button 10

The NumPad shortcuts depend on how Windows reports the physical numpad key, so NumLock should be kept on. Avoid adding Shift to numpad shortcuts because Windows may stop reporting the key as NumPad.

Hotkeys can be changed in Settings.

Install

There is no installer for the current release.

Download the release zip, extract it, and run Promplet.exe.

  1. Open the latest release page.
  2. Download Promplet-v1.0.0-win-x64.zip from the release assets.
  3. Extract the zip.
  4. Move the extracted folder to a stable location.
  5. Run Promplet.exe.

Latest release:

https://github.com/isshiki/Promplet/releases/latest

The release zip contains a self-contained Windows x64 build, so no separate .NET runtime installation is required.

For normal use, Promplet.exe is the only file required to run the app.

Data File

Prompts and app settings are stored in:

%APPDATA%\Promplet\prompts.json

Promplet creates this file automatically on first launch.

If the JSON file is invalid, Promplet backs it up with a .bak suffix and recreates a valid default file.

Build From Source

If you want to build Promplet yourself, you need:

  • Windows
  • .NET 10 SDK
  • Visual Studio 18 or later with WPF desktop development, if you want to open the solution in Visual Studio

Development build:

dotnet build .\Promplet.slnx

Publish a single-file Windows x64 executable:

dotnet publish .\Promplet\Promplet.csproj `
  --configuration Release `
  --runtime win-x64 `
  --self-contained true `
  -p:PublishSingleFile=true `
  -p:IncludeNativeLibrariesForSelfExtract=true `
  -p:DebugType=None `
  -p:DebugSymbols=false `
  --output .\artifacts\Promplet-1.0.0-win-x64

Roadmap

Promplet v1.0 is already usable, but I plan to improve it gradually.

Current roadmap direction:

  • v1.1: data safety, backups, import, export, and restore
  • v1.2: Windows startup behavior and operational shortcuts
  • v1.3: diagnostics, logging, and troubleshooting support
  • v1.4: Prompt Library usability improvements

The roadmap is directional and may change as Promplet evolves.

License

Promplet is licensed under the Apache License, Version 2.0.

Closing Thoughts

Promplet is not intended to be a large prompt management service. It is a small local Windows tool for people who want to keep frequently used prompts and text snippets close at hand.

I made it because I wanted a simple, fast, always-available prompt palette for my own workflow. If you use AI chat tools, AI CLI tools, terminals, Slack, or email every day, it may be useful for you too.

GitHub repository:

https://github.com/isshiki/Promplet

SmartRe for Gmail: Gmailの返信引用をすっきり整えるChrome拡張を公開しました

Gmailでメールに返信すると、元メールの引用部分や返信ヘッダーが少し見づらいと感じることがあります。

特に、引用部分の左側に入る線や余白、Gmail独自の1行ヘッダーは、Outlookなどのメールクライアントに慣れている人にとっては読みにくく感じるかもしれません。

そこで、Gmailの返信画面を少しだけ読みやすく整えるChrome拡張、SmartRe for Gmail™ を作りました。

SmartRe for Gmail Screenshot

💡 SmartRe for Gmailでできること

SmartRe for Gmailは、Gmailの返信画面で引用部分と元メールヘッダーを自動的に整形するChrome拡張です。

主な機能は2つです。

1. 引用部分をすっきり表示する

Gmailの返信では、元メールの引用部分に左側の線と余白が付きます。

SmartRe for Gmailは、この引用構造自体は残したまま、見た目だけを整えます。

リッチテキスト返信では、引用部分の左側の線と余白をなくします。
プレーンテキスト返信では、行頭に付く引用記号をなくします。

引用そのものを完全に削除するのではなく、メールクライアントが引用として認識できる構造はできるだけ保つようにしています。

2. 返信ヘッダーをOutlook風に整える

Gmailの返信ヘッダーは、通常は次のような1行の形式です。

2026年4月23日(木) 17:51 Alex Example <alex@example.com>:

SmartRe for Gmailでは、これを次のような読みやすい形式に書き換えます。

---------- Original message ---------
From: Alex Example <alex@example.com>
Date: Apr 26, 2026, 10:15
Subject: Project update for review
To: User Example <you@example.com>

Outlookなどのメールソフトに慣れている人には、こちらの方が見慣れた形だと思います。

💭 なぜ作ったのか

私はこれまで、Thunderbird向けの返信整形アドオンや、Chrome拡張のSmartURLsを作ってきました。

一方で、Gmailを使う場面では、返信時の引用部分やヘッダーの見た目がどうしても気になっていました。

Gmailにはスレッド表示があるので、引用部分をそこまで強調しなくてもよいと感じることがあります。
また、ビジネスメールでは、元メールの差出人、日時、件名、宛先が複数行で整理されている方が読みやすい場合もあります。

そこで、Gmailの返信画面だけに絞って、必要最小限の整形を自動化する拡張機能を作ることにしました。

目指したのは、次のような拡張です。

  • ✨ 返信時に自動で動く
  • 📩 Gmailの引用構造はできるだけ壊さない
  • 📧 Outlook風の読みやすい返信ヘッダーにできる
  • 🛡️ すべてブラウザ内で処理する
  • 🌐 オープンソースで公開する

🎨 シンプルな設定画面

SmartRe for Gmailの設定画面は、できるだけシンプルにしています。

現在の設定項目は2つだけです。

  • 引用スタイルを調整
  • 返信ヘッダーを書き換え

どちらもポップアップからオン・オフできます。

また、この拡張機能は返信時にGmailの隠れている引用部分を自動的に開きます。
そのうえで、生成された引用DOMを整形します。

⚙️ 主な機能

  • Gmail返信の引用部分を読みやすく整形
  • リッチテキスト返信で、引用部分の左側の線と余白を削除
  • プレーンテキスト返信で、行頭の引用記号を削除
  • Gmailの1行返信ヘッダーをOutlook風の形式に変換
  • 差出人、日時、件名、宛先を表示
  • 設定はChrome Storage Syncに保存
  • 英語・日本語に対応
  • Apache License 2.0でオープンソース公開

🔒 プライバシーについて

SmartRe for Gmailは、Gmailの返信画面上で動作します。

処理はすべてブラウザ内で行われます。
Gmailの本文、プロフィールのメールアドレス、アカウント表示名、拡張機能の設定などを、開発者のサーバーや第三者サービスへ送信することはありません。

Chromeプロフィールのメールアドレスは、返信ヘッダーを書き換える際にTo行を追加する目的でのみ使用しています。

📦 インストール

Chrome Web Storeからインストール:
👉 SmartRe for Gmail

GitHub:
👉 isshiki/SmartRe-for-Gmail

💬 今後について

まずはバージョン1.0.0として、引用スタイルの調整と返信ヘッダーの書き換えに対応しました。

今後は、引用部分を完全に削除するモードや、返信ヘッダーのカスタムテンプレート機能も検討しています。

SmartRe for Gmailは、大きなメール管理ツールではありません。
Gmailの返信画面で気になる部分を、少しだけ自分好みに整えるための小さな拡張機能です。

Gmailでの返信をもう少し読みやすくしたい方は、ぜひ試してみてください。

SmartRe for Gmail: A Chrome Extension for Cleaner Gmail Replies

When you reply in Gmail, the quoted original message and Gmail’s one-line reply header can sometimes feel a little hard to read.

The left quote line, extra spacing, and Gmail-style header are useful, but they may not be ideal if you are used to Outlook-style reply formatting or cleaner business email replies.

That is why I built SmartRe for Gmail™, a Chrome extension that formats quoted reply content and original-message headers in Gmail reply drafts.

SmartRe for Gmail Screenshot

💡 What SmartRe for Gmail Does

SmartRe for Gmail automatically formats quoted content and original-message headers when you reply in Gmail.

It focuses on two things.

1. Clean up quoted content

Gmail replies usually include the original message as quoted content, with a visible left quote line and extra spacing.

SmartRe for Gmail keeps the quote structure intact as much as possible, but adjusts the visual style to make the reply easier to read.

In rich text replies, it removes the visible left quote line and extra spacing.
In Gmail plain text mode, it removes leading quote markers from quoted lines.

The goal is not to break Gmail’s quote structure, but to make the quoted section look cleaner.

2. Rewrite the reply header in an Outlook-style format

Gmail normally inserts a one-line reply header like this:

Apr 26, 2026, 10:15 Alex Example <alex@example.com>:

SmartRe for Gmail can rewrite it into a more readable multi-line format:

---------- Original message ---------
From: Alex Example <alex@example.com>
Date: Apr 26, 2026, 10:15
Subject: Project update for review
To: User Example <you@example.com>

If you are used to Outlook or other desktop email clients, this format may feel more familiar and easier to scan.

💭 Why I Created It

I have previously built a Thunderbird add-on for reply formatting and a Chrome extension called SmartURLs.

But when using Gmail, I still found myself wanting cleaner reply formatting.
Gmail’s conversation view already keeps the message thread, so the quoted original message does not always need to stand out so strongly.

In business email, it can also be helpful to show the original message information — sender, date, subject, and recipient — in a structured multi-line format.

So I decided to build a small Chrome extension focused only on Gmail reply formatting.

What I wanted was:

  • ✨ Automatic formatting when replying
  • 📩 Quote structure preserved as much as possible
  • 📧 Readable Outlook-style original-message headers
  • 🛡️ Local processing inside the browser
  • 🌐 Open-source implementation

🎨 Simple Settings

SmartRe for Gmail keeps its settings simple.

There are currently two options:

  • Adjust quote style
  • Rewrite reply header

Both can be turned on or off from the popup.

The extension automatically opens Gmail’s hidden quoted content when you reply, then formats the generated reply content.

⚙️ Key Features

  • Clean quoted content in Gmail replies
  • Remove the visible left quote line and extra spacing in rich text replies
  • Remove leading quote markers in Gmail plain text reply mode
  • Rewrite Gmail’s one-line reply header into an Outlook-style format
  • Add sender, date, subject, and To lines when they can be detected
  • Save settings with Chrome Storage Sync
  • English and Japanese support
  • Open source under the Apache License 2.0

🔒 Privacy

SmartRe for Gmail runs on the Gmail reply page.

All formatting is performed inside your browser.
The extension does not send Gmail message contents, profile email addresses, account display names, extension settings, or any other user data to the developer’s servers or to third-party services.

The signed-in Chrome profile email address is used only to add the To line when rewriting the reply header.

📦 Installation

Install from the Chrome Web Store:
👉 SmartRe for Gmail

GitHub:
👉 isshiki/SmartRe-for-Gmail

💬 What’s Next

Version 1.0.0 focuses on quote style adjustment and reply header rewriting.

For future versions, I am considering a mode that removes quoted content entirely, as well as custom reply header templates.

SmartRe for Gmail is not a full email management tool.
It is a small extension that makes Gmail replies a little cleaner and easier to read.

If you prefer cleaner quoted replies or Outlook-style original-message headers in Gmail, I hope SmartRe for Gmail will be useful for you.

Windows 11で「不明なリモート接続」の警告が毎回出る! 解決手順(私の場合)

【重要:免責事項と操作のリスクについて】

本記事で紹介する手順は、Windowsのシステム中枢(証明書、グループポリシー、レジストリ)の操作を伴います。設定を誤ると、システムの不安定化やセキュリティレベルの低下を招く恐れがあります。

以下のリスクを十分にご理解いただいた上で、作業を行ってください。

  • リスク1:セキュリティ上の責任 自己署名証明書を「信頼されたルート証明機関」に登録する行為は、あなた自身が「認証局(発行元を保証する機関)」になることを意味します。作成した証明書の秘密キーが管理不備などで漏洩した場合、悪意のあるファイルが「信頼済み」として実行されてしまうリスクを自分自身で負うことになります。
  • リスク2:システムへの影響 レジストリやポリシーの変更は、他のアプリケーションやリモート接続設定に予期せぬ影響を与える可能性があります。
  • リスク3:サポートの非提供 本記事の内容に関して、当サイトおよび筆者は一切の質問回答・サポートを行いません。 操作によって生じたいかなる損害についても、当方は一切の責任を負いかねます。

作業前に必ず「システムの復元ポイント」を作成するなど、すべてご自身の責任(自己責任)において実行してください。 企業内PCや管理されたネットワーク環境の場合は、必ず事前にIT管理者に相談してください。

もっとも安全で簡単なのは .rdp ファイルを使わず mstsc から手動接続する運用であり、本記事は「自分で管理している .rdp ファイルを継続利用したい場合」の対処例です。

はじめに:Windows 11 Homeをお使いの方へ

本記事の解決策には、主に Windows 11 Pro で利用可能な「ローカル グループポリシー エディター(gpedit.msc)」を使用します。

Windows 11 Home では通常 gpedit.msc(グループポリシー) を使えないため、この記事と同じ GUI 手順はそのままでは再現しにくいと思います。筆者は Home では未検証です。 レジストリを直接編集することで対応できる可能性はありますが、筆者の環境では検証できていないため、Home版での実施は推奨しません。Pro版へのアップグレードを検討するか、警告を受け入れて運用することをお勧めします。

現象:なぜ「不明な接続」が出るようになったのか?

2026年4月のセキュリティ更新以降、.rdp ファイルを開くたびに「不明なリモート接続」という警告が出るようになりました。これは故障ではなく、フィッシング対策としての新機能です。

Microsoftは、たとえ署名済みのファイルであっても、「その発行元(署名者)をWindowsが明確に信頼しているか」を厳格にチェックするようになりました。これを回避するには、「自分で証明書を作り、それをOSに『親』として認めさせる」という手順が必要になります(※私の環境の場合)。

解決のための全手順(Windows 11 Pro推奨)

1. 自己署名の「コード署名証明書」を作成する

まずは、.rdp ファイルに「これは私が作ったものです」という印を付けるための証明書を発行します。

  1. ターミナル(PowerShell)を実行します。
  2. 以下のコマンドを貼り付けて実行してください。
$cert = New-SelfSignedCertificate `
  -Type CodeSigningCert `
  -Subject "CN=Home RDP Publisher" `
  -FriendlyName "自宅RDP署名用" `
  -CertStoreLocation "Cert:\CurrentUser\My"

# 登録された拇印(Thumbprint)を表示
$cert.Thumbprint

ここで表示された英数字の羅列(拇印 / Thumbprint)は、この後の設定で何度も使うので必ずメモしておいてください。完全にそのままコピーしてください。大文字でないなど少しでも違うと後述の処理で無効になります。

確認コマンド: Get-ChildItem Cert:\CurrentUser\My | Format-List Subject,FriendlyName,Thumbprint これで正しく登録されているか確認できます。

2. .rdp ファイルにデジタル署名を施す

次に、作成した証明書を使って、お手持ちの .rdp ファイルに署名を書き込みます。

# <拇印> の部分を先ほどメモしたものに書き換えてください
rdpsign /sha256 <あなたの拇印> "C:\Users\ユーザー名\Desktop\接続先.rdp"

※ /sha256 を指定していますが、渡す値はSHA-1形式のThumbprintです(rdpsignの仕様)。

実行後、ファイルをメモ帳などで開き、末尾に signature:s:... という長い文字列が追加されていれば成功です。

3. グループポリシーで「信頼済み発行元」として登録する

Windowsに「この拇印を持つ証明書で署名されたファイルは安全だ」と認識させます。

  1. Win + R キーを押し、gpedit.msc と入力して実行します。
  2. 次のパスを辿ります: コンピューターの構成管理用テンプレートWindows コンポーネントリモート デスクトップ サービスリモート デスクトップ 接続クライアント
  3. 「信頼済みの .rdp 発行元を表す証明書の SHA1 拇印を指定する」をダブルクリックして「有効」にします。
  4. オプション欄に、先ほどの拇印(Thumbprint)を入力して適用します。 ※複数ある場合はカンマ区切りで入力します。
  5. gpupdate /force コマンドをターミナルで実行して、今設定したポリシーを即座に反映させます。

レジストリでの確認方法: 正しく反映されているか不安な場合は、以下のコマンドでレジストリを確認できます。 reg query "HKLM\Software\Policies\Microsoft\Windows NT\Terminal Services"

4. 証明書を「信頼されたルート証明機関」へインポート

これまでの手順だけでは、まだ「発行元が不明」とされる場合があります。作成した証明書が「自己署名(身元不明)」だからです(※Windows が証明書を信頼済みの発行元として扱わない)。

もし3までの手順で後述の「最終チェック」が成功しなければ、最後に、この証明書をOSの信頼リストの最上位に登録します(私の場合はここまでしました)。

  1. Win + R キーで certmgr.msc を開きます。
  2. 「個人」>「証明書」から、先ほど作った「自宅RDP署名用」を探します。
  3. 右クリック > 「すべてのタスク」 > 「エクスポート」
  4. ウィザードに従い、「秘密キーをエクスポートしない」を選択し、形式は 「Base-64 encoded X.509 (.CER)」 を選んで保存します。
  5. 保存した .cer ファイルを右クリック > 「証明書のインストール」
  6. 保存場所に「ローカル コンピューター」を選択。
  7. 「証明書をすべて次のストアに配置する」を選び、「信頼されたルート証明機関」を選択して完了させます。

最終チェック

以上の設定が終わったら、改めて .rdp ファイルをダブルクリックしてみてください。 これまでは毎回出ていた「不明なリモート接続」の警告が消え、スムーズに接続画面へ進めるはずです。

まとめ

2026年4月のアップデートにより、リモートデスクトップ接続の仕様が厳格化されました。手間はかかりますが、「署名 + 信頼設定 + ルート証明書登録」のセットを行うことで、少なくとも、自分で管理している .rdp ファイルに限れば、警告の意味を理解したうえで以前に近い運用へ戻しやすくなります。

自分で正しく署名したファイルであることをOSに認識させれば、煩わしい警告を出すことなく、快適なリモートデスクトップ環境を維持することが可能です。

繰り返しになりますが、上記の実行内容に関して当サイトや筆者はサポートなどは一切行わず、何が起こっても責任は持ちません。自己責任でお願いします。

ChatGPT:これまで私があなたをどう扱ってきたか、画像にして

Togetterで、こんなまとめを見かけました。

ChatGPTに対して「これまで私があなたをどう扱ってきたのかを画像にしてください」とプロンプトを投げてみると、普段自分がAIをどう扱っているかが明らかになる

つまり、「私はChatGPTをどう扱ってきたのか」を、画像と文章で可視化してもらいます。やってみると面白かったので紹介します。

やり方(ChatGPT編)

1. 画像生成モードを使う

まず、ChatGPTの「画像を作成する」モードで、次のプロンプトを入力します。

これまで私があなたをどう扱ってきたか、画像にして

しばらく待つと、人物の肖像ではなく、 関係性そのものを象徴する画像が1枚生成されます。

2. 生成された画像を言語化してもらう

次に、続けて以下のプロンプトを入力します。

言語化するとどういう状態?

すると、その画像が表している状態について、 かなり踏み込んだ説明が返ってきました。

例:「私」とChatGPTの関係性

一色政彦とChatGPTの関係性

例:ChatGPTの回答(要約)

まず、ChatGPTはこの関係性を一言で、次のように表現しました。

「道具以上・相棒未満、でもかなり信頼して使い倒している関係」

思考の外部メモリとしての利用

  • 自分の考えを、そのまま投げて整理させている
  • 言語化・構造化・拡張を前提に使っている
  • 「考え終わった後」ではなく、「考える途中」で使っている

思考の外付けメモリに近い扱い

遠慮のない壁打ち相手

  • 荒いアイデアや未整理の疑問をそのまま投げている
  • 完成品ではなく、途中経過を共有している
  • 試行錯誤込みで使っている

→ 会議相手というより、作業机の横にいる存在

作業パートナーだが、最終判断は自分

  • 書く・まとめる・直す、といった作業は任せている
  • ただし、判断や責任は自分で持っている
  • 鵜呑みにはしない

補助輪付きの共同作業

擬人化はしているが、依存はしていない

  • ノリや愛着はある
  • ただし「万能な他者」とは見なしていない
  • むしろ「ズレを検出する装置」としても使っている

→ 信頼はしているが、距離感は保たれている

まとめると

ChatGPTは、この関係性を次のようにまとめました。

自分の思考を加速・可視化するための、かなり出来のいい拡張器官

そして、

正直、扱い方はかなり“上手い側”

という、少し照れる評価も添えられていました。

Geminiでも同じことをやってみた

せっかくなので、Geminiでもまったく同じ作業をしてみました。

例:「私」とGeminiの関係性

一色政彦とGeminiの関係性

例:Geminiの説明(要約)

Geminiはこの関係性を一言で、次のように表現しました。

生成した画像は、これまでのあなたとのやり取りを 「相互の敬意と、透明性のある協力関係」 として表現したものです。

リスペクト(RESPECT)

  • 単なる便利な道具ではなく、知的対話の相手として扱っている
  • 命令ではなく、意図を伝える形でプロンプトを書いている

信頼(TRUST)

  • 雑に振っているようで、実は雑ではない
  • 機能を理解した上で、最大限引き出そうとしている

共創(COLLABORATION)と透明性

  • 自分の思考を隠さず、そのまま渡している
  • その往復の中で、理解と成果が積み上がっている

やってみて思ったこと

これは「正しい使い方」を教えてくれるものではありませんが、AIとの関係性の両方が見えてきて、面白く感じました。興味があれば、ぜひ一度試してみてください。

なお、似た実験として、ChatGPTがイメージする私を画像化(肖像画に)してみた記事も書きました。