リモートtmuxでコピーできない原因はmoshだった件

先日、リモートサーバのtmux セッションでコピーしたテキストが、Mac側のクリップボードに反映されない問題に遭遇しました。
tmux側の設定は正しいはずなのに、なぜかコピーが効かない。
結論から言うと、原因は mosh でした。
本記事では、mosh経由でOSC 52クリップボード連携が不安定になる理由と、実際に検証した結果、そして実用的な対策をまとめます。

先日、リモートサーバのtmux セッションでコピーしたテキストが、Mac側のクリップボードに反映されない問題に遭遇しました。
tmux側の設定は正しいはずなのに、なぜかコピーが効かない。
結論から言うと、原因は mosh でした。
本記事では、mosh経由でOSC 52クリップボード連携が不安定になる理由と、実際に検証した結果、そして実用的な対策をまとめます。

CLIツールは長年、人間が端末で操作するためのインターフェースとして設計されてきました。しかし、LLM (大規模言語モデル)やAIエージェント (自律的にツールを呼び出してタスクを進めるプログラム)が普及した今、CLIには新しい役割が求められています。それは「エージェントが安全・確実・反復可能に呼び出せるプロトコル/API」としての設計です。
自分も最近、エージェントにCLIを回させる機会が増えました。人間相手なら気にならない「確認プロンプトで止まる」「ログがstdoutに混ざってパースできない」「同じ操作を再実行して事故る」が、エージェント相手だと普通に起きます。
本記事では、私が提唱する「Agentic CLI Design」という設計概論をまとめます。CLIを「人間が操作するUI」から「エージェントが呼び出すプロトコル」へと再定義し、失敗前提・再実行前提・非対話前提で成立させるための7つの設計原則です。

pre-commit を使っていて「Pythonプロジェクトじゃないのに、なぜPythonが必要なんだ」と思ったことはありませんか?
prek
は、pre-commitをRustで再実装したGit hooks管理ツールです。既存の.pre-commit-config.yamlをそのまま使えて、Pythonランタイム不要、シングルバイナリで動作します。本記事では、prekの特徴と移行手順、そして「速さ」より重要な「ポータビリティ」について書きます。

「定期的にバックアップを実行したい」「深夜にログをローテーションしたい」——Linuxでタスクを自動実行する方法として、cron 、anacron 、systemd timer の3つが存在します。しかし、「どれを使えばいいのか」と迷う人は多いのではないでしょうか。
本記事では、これら3つのスケジューラの特性と適材適所を整理し、「結局どれを選ぶべきか」の判断基準を提供します。

Supabase は、PostgreSQLを中心に「欲しい機能がだいたい揃ってる」優れたBaaSです。一方で、プロダクトが伸びる前段の個人開発やMVPだと「まず固定費を抑えたい」「リソース使用量が読めない」といった理由で、コストが気になる場面もあります。関連記事は baas と supabase にまとめています。
自分は なんでも解説動画ジェネレーター で、ジョブキュー管理のために PocketBase を採用しました。理由は単純で、要件がそこまで複雑ではなく、運用コストを最小にしたかったからです。
本記事では、PocketBaseを「Supabaseの代替」として雑に推すのではなく、PocketBaseを選ぶべき条件(そして選ぶべきでない条件)を整理します。どちらも素晴らしいサービスで、勝ち筋は要件次第です。

このブログのサイト内検索を、Google検索(site:)からPagefind
に移行しました。
Hugoで生成したpublic/をビルド後にPagefindでインデックス化し、静的サイト内で検索が完結する構成にします。

「ちょっと試したいことがあるから、新しいディレクトリ作って、tmux起動して…」という作業を毎回やっていませんか?
以前紹介したtry (詳細は「try: 深夜2時のひらめきを翌朝見つけられるか? 」参照)は実験用ディレクトリを日付プレフィックス付きで管理してくれる便利なツールですが、そこからtmux セッションを起動するのは別作業でした。この2つを繋ぐためにtmux-try を作りました。

技術ブログやドキュメントを読むのは好きだけど、動画で見たいときもある。そんなときに「URLを入れるだけで解説動画ができたらいいのに」と思って作りました。
なんでも解説動画ジェネレーター は、URLを入力するとずんだもんや四国めたんといったキャラクターが内容を解説する動画を自動生成するWebアプリです。
この記事では、使い方と技術的な裏側を紹介します。

Every (テック/ビジネス系メディア「Every」を運営)が公開したCompound Engineering Plugin は、Anthropic のClaude Code (ターミナル向けAIコーディングアシスタント)用のプラグインです。
「機能を追加するたびにコードベースが複雑になる」——これは従来のソフトウェア開発における常識でした。しかし、Compound Engineering Pluginはこの常識を逆転させます。「機能が増えるほど開発が楽になる」という、一見矛盾した状態を実現する開発手法です。
本記事では、Compound Engineeringの核心である「Plan/Review 80%、実装 20%」という比率の意味と、技術的負債を資産に変える仕組みを解説します。

Ethereum でdApp(分散型アプリケーション)を作ると、ユーザーに「ウォレットを用意して」「ETHを買って」「ガス代を払って」とお願いすることになります。これが普及の壁です。
Account Abstraction(アカウント抽象化)は、この壁を崩すための仕組みです。EIP-4337 とEIP-7702 という2つの仕様があります。
結論から言うと、EIP-7702の登場で、4337の出番は大幅に減りました。単一ユーザーのバッチ実行や権限管理は7702だけで実現できます。4337が必要なのは「パーミッションレスなガススポンサー」と「複数ユーザー集約」の2つのケースに限られます。
本記事では、まず「なぜAccount Abstractionが必要か」を整理し、その上で7702と4337の使い分けを具体的に示します。