4時間のClaude CodeセッションでHPのLaser 1008a用のMacブリッジが構築された
Kuber Mehtaによる修正は、CUPSをLinux VMとHPのSPL3 codec経由でルーティングし、その後プリントジョブをUSB経由で直接書き込みます。
By Ryan Merket · Published
Primary source: Kuber Studio
Why it matters
Coding agents can now compress obscure, cross-layer hardware work into one sitting. The result still depends on human testing, root access and heavyweight runtime infrastructure.

Kuber Mehta (@kuberwastaken) は Anthropic の Claude Code を使って Apple Silicon Mac から HP Laser 1008a に印刷させ、8月17日の約4時間のセッションで最初の動作するバージョンを完成させた。
結果の MIT-licensed repository は、HP の Laser 1003、1006、1008 モデル向けの印刷を通常の Cmd-P ワークフローに変える。下層の配管はかなり普通ではない:CUPS キュー、root デーモン、常時稼働する Linux 仮想マシン、HP の専有ラスターエンコーダー、そして直接の USB 書き込みだ。
Mehta は作業を lightly redacted session transcript に記録している。彼の resume によると、BITS Pilani と Guru Gobind Singh Indraprastha University でコンピュータサイエンスと人工知能を学び、Razorpay の中核的な AI イニシアチブに携わり、ジェネレーティブインターフェースのプロジェクト PolyThink Labs を立ち上げた。プリンタのプロジェクトは、計画されたソフトウェア公開ではなく、家族の Mac にドライバーをインストールしてほしいという依頼から始まった。
Four hours across the printing stack
Mehta によれば、セッションは Claude Opus 4.8 で行ったもので、これは Anthropic が5月28日にコーディングや長時間実行するエージェント作業向けに公開したモデルだ。Claude Code は当初、明白な手順に従った:USB デバイスを検出し、利用可能な CUPS ドライバーを調べ、ジェネリックな PCL 構成をインストールする。
しかしその構成は停滞した。Laser 1008a は PCL や PostScript の代わりに Samsung Printer Language、つまり SPL を使用しているためだ。このプリンタは Samsung ハードウェアをベースとしており、ホストコンピュータがデバイス固有のラスターストリームを生成する必要がある。
セッションはその後、いくつかの失敗したアプローチを経た。ジェネリックドライバーではデバイスがオフラインのままだった。オープンソースの foo2zjs エンコーダーは、適切なドライバーを要求するエラーページをプリンタに出力させた。Mehta は SpliX 2.0.2 も試した(関連する HP Laser モデルのサポートが最近追加された)が、その出力は彼の 1008a では縞模様が入りページが繰り返される結果になった。
動作する経路は、HP の Unified Linux Driver に含まれる rastertospl バイナリを再利用するものだった。そのバイナリは macOS 上で直接実行できないため、インストーラはそれを Colima が管理する ARM64 の Linux コンテナ内に配置する。macOS の CUPS キューはアプリケーションの出力を CUPS ラスター形式に変換してローカルソケットに送る。root の LaunchDaemon がジョブを受け取り、HP のコーデックを通し、libusb を使って生成された SPL3 ストリームをプリンタに直接書き込む。
その分離は Mehta が遭遇した二つの macOS 制限も回避した:CUPS フィルタはサンドボックス内からコンテナを呼び出せず、標準の USB バックエンドはプリンタを恒久的にオフラインとして扱った。両方の操作を CUPS のサンドボックス外にあるデーモンに移したことで、きれいなテストページが出力された。
HP's macOS support records disagree with its driver page
HP のドキュメントは互換性の問題を読み解きにくくしている。Laser 1008a specifications page は Sonoma までの macOS バージョンを互換 OS として列挙している。しかし HP の現在の driver-download page の OS セレクタには Linux といくつかの Windows バージョンがあるのみで、macOS の選択肢はない。
HP の 2023 年の製品データシートも AirPrint に言及しているが、その脚注はワイヤレスおよびモバイル印刷を 1008w に限定している。1008a は USB 接続のみだ。Mehta のテストではその USB 接続にドライバーレスの IPP エンドポイントは存在せず、彼のマシンでは macOS 26 に組み込みで使える経路は残されていなかった。
リポジトリはこれまでのところ Mehta によれば macOS 26 を実行する Apple Silicon Mac 上でテストされている。USB のみの "a" モデルと、USB 接続された "w" モデルをサポートする。より広範な互換性は確認されていない。
Native printing, with an always-on Linux VM
結果はアプリケーションから見てネイティブなプリンタのように振る舞う。実装は "native" という語をかなり拡大解釈している。
インストールには Homebrew が必要で、Colima、Docker、libusb、および常時利用可能である必要のある小さな Linux VM が追加される。また、root の LaunchDaemon と再起動後に Colima を再起動するログイン項目もインストールされる。インストーラは Mac の管理者パスワードを要求し、セットアップ中に HP の Linux ドライバーをダウンロードする。
リポジトリは HP のコーデックではなく Mehta のグルーコードを含んでいる。インストーラは HP から専有の rastertospl バイナリを取得し、Mehta のコンポーネントは MIT ライセンスで公開されている。
再起動後の最初の印刷は VM の起動を待つため最大で1分程度かかることがある。プリンタが電源オフ状態からのジョブは、プリンタがウェイクして定着器を温めるために約10〜15秒かかると Mehta は述べている。システムが稼働していれば、変換と USB 配信は約1秒程度だ。
こうした依存関係により、このプロジェクトは軽量のユニバーサルプリンタパッケージというよりも、既にハードウェアを持っている所有者にとって実用的な修正となっている。よりきれいなバージョンを作るには、HP の SPL3 出力と SpliX が生成する不正な出力とのバイトレベルの違いを特定する必要がある。Mehta はそのオープンソースのエンコーダーをパッチする手伝いを募集しており、そうなれば Linux VM を経路から取り除ける可能性がある。
このセッションは、コーディングエージェントが有効になってきた領域を測る有用な事例だ:シェルコマンド、OS サービス、バイナリコーデック、コンテナランタイム、物理ハードウェアを横断するような曖昧な問題だ。Claude Code はこれらの層を一度の作業で横断し、パッケージ化されたインストーラを生成した。Mehta は依然としてデバイスを供給し、その物理的な出力を解釈し、試みられた各修正をテストした。出荷された成果物は、Mac を操作するエージェントとプリンタのそばに立つ開発者とのそのループから生まれたものだ。