透明・常時最前面のデスクトップ常駐ペットアプリ(Electron製)。
白い四角+黒い目のシンプルなキャラクターが画面上を歩き回り、アクティブウィンドウ(作業中のアプリ)を検知してセリフを表示します。作業時間に応じてレベルアップし、一定レベルごとに子分(仲間)が増えていきます。
-
透明・常時最前面ウィンドウ: どのアプリを使っていても画面の一番手前に表示されます。
-
アクティブウィンドウ検知: エディタ・ブラウザ・ターミナルなど、使っているアプリに応じてセリフが変わります(頻度は最低45秒に1回程度に抑制)。
-
作業時間でレベルアップ: 一定時間ごとにレベルが上がり、経験値バーで進捗が確認できます(操作していないアイドル時間はカウントされません)。
-
子分(仲間)システム: レベルが上がると子分が増え、画面上のキャラの数も増えていきます。
-
自由に歩き回る: 画面の下端を歩き回り、時々立ち止まったり方向転換したりします。
config.jsonでON/OFFや速度を設定可能です。 -
持ち上げ→落下: ドラッグで持ち上げて離すと、重力で地面まで落ちるアニメーションと足元の影が付きます。
-
色を変更: 右クリックメニューから9色(レインボー含む)を無料で選べます。
-
見た目(スキン)を変更: 四角のほか、犬・猫・少女・ヨウガイ・魚のドット絵スキンを無料で選べます(右クリックメニュー「見た目を変える」)。犬猫のリボンや少女/ヨウガイの服は選んだ色と連動します。
-
子分は海の仲間にもなる: 主人のスキンが「魚」のときだけ、子分はクラゲ・タコ・イカのドット絵からランダムに選ばれます(それ以外のスキンでは子分も主人と同じ見た目)。
-
ウイルス討伐イベント: たまに画面上にウイルスが出現し、みんなで走って行って戦います。雑魚/通常/強敵/ボスの4段階があり、段階に応じて討伐にかかる時間や暴れ方(揺れの速さ・大きさ)、見た目のサイズ/色が変わります。
-
お宝拾いイベント: たまに画面上にご飯(骨付き肉/おにぎり/寿司/ケーキ/りんご)かコイン・宝物(金貨/銀貨/宝石/金袋)が落ちていて、拾って食べたり集めたりします。
-
お座りモード: 右クリックメニューから「お座りさせる」を選ぶと、解除するまで歩き回り・ウイルス討伐・お宝拾いを一切せずその場でじっとします。
-
CPU/メモリ使用率で表情が変化: PCの負荷が上がると目つきが変わります(口や眉は付けず、目の形だけで表現)。
-
状態の永続化: 累計作業時間・色などはアプリを再起動しても引き継がれます。
-
豊富な独り言: 通常時の雑談に加え、離席中のつぶやき、就寝中の寝言、レベルアップ/ウイルス討伐/お宝発見などイベントごとのセリフも多数用意しています。
Node.jsのインストールやコマンド操作なしで使いたい場合は、Releases ページから、お使いのOS用のインストーラーをダウンロードしてください。
| OS | ファイル |
|---|---|
| Windows | Desktop Pet Setup x.x.x.exe(実行してインストーラーの案内に従うだけ) |
| macOS | Desktop Pet-x.x.x.dmg(開いてApplicationsフォルダにドラッグ) |
| Linux | Desktop Pet-x.x.x.AppImage(実行権限を付けて起動: chmod +x の後にダブルクリックまたは実行) |
インストール後はアプリ一覧(Windowsならスタートメニュー)から「Desktop Pet」を起動できます。
Windows/macOSともに署名なしビルドのため、初回起動時に「発行元を確認できません」等の警告が出ることがあります。Windowsは「詳細情報」→「実行」、macOSは右クリック→「開く」で起動できます。
- Node.js 18以降
- npm
git clone https://github.com/ytatthan0616-debug/desktop-pet.git
cd desktop-pet
npm install
npm start起動すると、画面の右下あたりに小さな白いキャラが現れます。
- ドラッグ: キャラをクリックしたままドラッグすると好きな場所に移動できます。離すと重力で地面まで落ちます。
- 右クリック: レベル・子分の数の確認、歩き回りのON/OFF切り替え、色の変更、データのリセット、終了ができます。
プロジェクト直下の config.json を編集すると、保存と同時に(再起動なしで)設定が反映されます。
(インストーラー版の場合は、インストール先の resources/config.json が対象です。Windowsの既定インストール先は %LOCALAPPDATA%\Programs\Desktop Pet\resources\config.json です。)
{
"wander": true,
"wanderSpeedPxPerSec": 55,
"walkDurationMs": [2000, 6000],
"idleDurationMs": [1200, 4000]
}| キー | 説明 |
|---|---|
wander |
true で画面内を歩き回る、false でその場に留まる |
wanderSpeedPxPerSec |
歩く速さ(ピクセル/秒) |
walkDurationMs |
1回の「歩く」動作が続く時間の範囲(ミリ秒) |
idleDurationMs |
1回の「立ち止まる」動作が続く時間の範囲(ミリ秒) |
右クリックメニューの「歩き回るのをやめさせる/歩き回らせる」からも切り替えられます(config.json に自動で保存されます)。
- 30分の作業(アクティブ操作)ごとに1レベルアップします。
- 3レベルごとに子分が1匹増えます(最大15匹まで)。
- 進行状況は
src/petState.jsの定数(SECONDS_PER_LEVELなど)で調整できます。
os.cpus() と os.totalmem()/freemem() から使用率を5秒おきにサンプリングし、負荷に応じて目の形が変わります(いずれもしきい値は main.js の LOAD_BUSY_THRESHOLD / LOAD_STRESSED_THRESHOLD で調整可能)。
| 使用率(CPU/メモリの高い方) | 表情 |
|---|---|
| 50%未満 | 通常 |
| 50%以上 | 目を細める |
| 80%以上 | 目を見開いて震える |
desktop-pet/
├── config.json # ユーザー設定(歩き回りなど)
├── main.js # メインプロセス(ウィンドウ管理・タイマー・IPC)
├── preload.js # レンダラーへ安全にAPIを公開
├── src/
│ ├── petState.js # レベル/子分/色/スキンの進行ロジック・永続化
│ ├── speech.js # アクティブウィンドウ→セリフのマッピング
│ └── config.js # config.json の読み書き・監視
├── scripts/
│ └── gen-sprites.js # ドット絵スキンのbox-shadow CSSを生成するツール
└── renderer/
├── index.html
├── style.css # キャラの見た目・アニメーション(ドット絵スキン含む)
└── renderer.js
electron-builder を使ってインストーラーを生成できます。
npm run dist:win # Windows: NSISインストーラー(.exe)
npm run dist:mac # macOS: .dmg(macOS上でのみ実行可能)
npm run dist:linux # Linux: AppImage生成物は dist/ に出力されます(Gitには含まれません)。
v から始まるタグ(例: v0.2.0)をpushすると、GitHub Actions(.github/workflows/release.yml)がWindows/macOS/Linuxの3プラットフォームでビルドし、自動的に Releases にインストーラーを公開します。
git tag v0.2.0
git push origin v0.2.0active-winによるアクティブウィンドウ検知は、macOSでは初回にアクセシビリティ権限の許可が必要な場合があります。- 現状は単一ディスプレイ(プライマリディスプレイ)を前提にしています。
- 画像アセットは使用しておらず、ドット絵スキンも含めてすべてCSSの
box-shadowで描画しています(scripts/gen-sprites.jsで生成)。 - 配布用インストーラーはコード署名をしていないため、初回起動時にOSの警告が表示されます(ダウンロード参照)。

