深い緑で描いた図。5 つのセットアップ手順が完了したコンピューターが、メッセージと 4 つのコードボタンを表示したスマートフォンへ電波を送っている。

ケーススタディ Personal project

チャットから様子を確かめ、電源も落とせるコンピューター。

クライアント
Personal project
種類
デスクトップアプリとリモートエージェント
役割
デザインとフルスタック開発
年
2026

コンピューターを Telegram のチャットから扱えるようにする、デスクトップアプリとローカルエージェント。Electron のパネルがセットアップをすべて行い、Node.js のエージェントが許可された 1 つのチャットからの 37 のコマンドに応答します。

手元にないマシンの様子を確かめるには、たいていリモートデスクトップのソフト、開いたポート、VPN のいずれかが必要です。そして、コンピューター上でコマンドを実行できるボットの安全性は、それが受け入れる最も危険なメッセージで決まります。

持ち主がいつも持ち歩いているチャットアプリを使い、主導権はコンピューター側に残すこと。エージェントは外向きに Telegram をポーリングするので、ネットワーク上で待ち受けるものはありません。設定された 1 つのチャットにだけ応答して他はすべて無視し、マシンを変更する操作は必ず事前に確認を求めます。

実際につくったもの

  1. 01

    Electron のセットアップパネル。ボットのトークンとチャット ID を貼り付けると、Telegram で検証し(getMe とテストメッセージ)、エージェントをインストールして起動時に立ち上がるよう設定し、各ステップの完了を順に表示します。

  2. 02

    ランタイム依存ゼロの Node.js エージェント。offset を保存するロングポーリングで古いメッセージを再処理せず、システム、ネットワーク、プロセス、ファイル、メディア、電源にわたる 37 のコマンドをプラットフォームごとに実装。安全な実装がない場合は「まだ利用できません」とはっきり返します。

  3. 03

    あらゆる機密操作にガードレール。シャットダウン、再起動、サスペンド、画面ロック、クリーンアップ、アップグレードには、4 つのボタンから 30 秒以内に 6 桁のコードを選ぶ確認が必要です。/cmd では汎用の sudo をブロックし、破壊的なパターンを拒否。特権操作は範囲を限定した sudoers で許可された固定のラッパースクリプト経由でのみ実行し、NOPASSWD: ALL は決して使いません。

  4. 04

    Linux では systemd サービス、Windows ではタスクスケジューラ、macOS では LaunchAgent を作るインストーラー。設定ファイルはパーミッション 600 で保存し、トークンは画面上でマスクされ、エラーメッセージからも取り除かれます。

技術

  • Electron
  • Node.js
  • JavaScript
  • Telegram Bot API
  • systemd
  • Bash
  • PowerShell

動作するプロトタイプ(v0.1.0)。Linux で開発しており、サポートも Linux が最も充実しています。Windows と macOS は一部のみ対応で、README にも未解決の問題が記載されています。1 つのパネルで複数の PC を管理する機能はロードマップ上にあり、まだ作られていません。

次のプロジェクトRoomFlowGrupo Transire · 会議室予約