← 机に戻る

Mac の隅に住む相棒 POIN

MAC DESKTOP MASCOT

MacKairu

画面の隅に透明・最前面で常駐するイルカが、クリックすると Mac の操作を教える AI コンシェルジュになります。Electron を使わず SwiftUI + AppKit で実装した個人 OSS です。このサイトの右下に住んでいるのが本人です。

Swift 6.3SwiftUIAppKitSwiftPMClaude APIOpenAI APIGemini API

撫でると懐く。合言葉で現れる隠しキャラ POIN

どうして つくったの?

常駐マスコットを Web 技術で作ると、ランタイムごと常駐して重くなります。「邪魔にならず、軽く、でもちゃんと生きて見える」相棒を、Mac のネイティブで作りたいと考えました。

つくるときに 決めたこと

1

Electron を使わず SwiftUI + AppKit

常駐アプリはメモリと電力の行儀が第一です。透明ウィンドウ・最前面・Dock 非表示という挙動も、OS のネイティブ API を直接使うほうが素直に書けます。

2

ロジックは純粋状態機械 KairuCore に分離

泳ぐ・気づく・教えるといった振る舞いを、時計に依存しない純粋な状態機械として UI から切り離しました。57件のユニットテストが GUI なしで振る舞いを保証します。

3

遊び心を仕様にする

チャット履歴が増えると相棒が太ります。合言葉で隠しキャラ POIN が現れ、撫でる・運ぶ・泳ぐ。意味のない可愛さを、ちゃんと設計して実装しています。

4

スクリーンショットとクリップボードを渡せる

「いま画面で困っていること」をそのまま質問にできます(Vision 対応、Claude / OpenAI / Gemini 切替)。説明する手間が、聞くハードルにならないようにしました。

だれに うれしい?

使う人

画面の隅に小さな相棒がいて、困ったときだけ先生になります。普段は泳いでいるだけ——それでいいのです。

読む人(エンジニア)

純粋状態機械 + ネイティブ UI という構成のサンプルとして、コードごと読めます。

隠しキャラ POIN のバナー
合言葉で現れる隠しキャラ
操作を教えるモードの画面
画面の困りごとをそのまま渡せる「教えるモード」

GitHub で OSS として公開中です。このポートフォリオの右下で常駐デモが動いています。