複数端末でタイマーをリアルタイム同期!オープンソース「DeviceTick」が登場
株式会社NITI Technologyが、複数のデバイス間でカウントダウンタイマーやポモドーロタイマーをリアルタイムに同期できるオープンソースソフトウェア「DeviceTick」をGitHub上で公開しました。このツールはMITライセンスで提供され、ログイン不要でURLを共有するだけで、PC、スマートフォン、タブレットといった異なる端末間で「今この瞬間」のタイマー状態を一致させることができます。

DeviceTickは、以下の4つの特徴を同時に満たしており、オープンソースのタイマー分野では珍しい存在です。
-
ライブ同期: 履歴ではなく、まさに「今動いているタイマーの状態」をすべての端末で揃えます。
-
ログイン不要・URLのみで即参加: アカウント登録は一切不要。リンク一つで簡単にセッションに参加できます。
-
公開プロトコル付き: API契約がJSON Schemaで公開されており、第三者が独自のクライアント(CLI、デスクトップ、物理タイマー連携など)を開発できます。
-
極めて軽量なセルフホスト: Go言語の単一バイナリで動作し、データベースも不要。
docker compose upコマンド一つで簡単に導入できます。
リポジトリはこちらから確認できます:
https://github.com/NITI-Lab/DeviceTick
これまでのタイマーアプリが抱えていた課題を解決
在宅ワークやハイブリッドワークが一般的になり、PC、スマートフォン、タブレットを使い分けることが増えました。しかし、多くのタイマーアプリでは、タイマーが端末ごとにバラバラに動いてしまうという課題がありました。
たとえば、「PCで始めた集中タイマーを、席を立った後に手元のスマートフォンから止めたい」「PCで動いているタイマーの残り時間を、スマートフォンで確認したい」といったシンプルな操作も、これまでのアプリでは難しかったのです。タイマーは開始した端末の中だけで動作し、他の端末からは見たり操作したりすることができないのが現状でした。

DeviceTickは、この「いま動いているタイマー」を端末をまたいで同期させるという、シンプルながらもこれまで提供されていなかった体験を、軽量かつオープンに提供するために開発されました。
DeviceTickのここがスゴイ!独自の特徴
DeviceTickには、ユーザーの利便性を高めるためのユニークな特徴がたくさんあります。
- 端末間で時計がズレない魔法の仕組み
タイマーの「今何秒経過したか」は、サーバー側で一元的に管理されます。この情報がすべての端末に配信されるため、たとえ各端末の時計が少しズレていたり、スリープから復帰したりしても、表示される残り時間は常にピタリと一致します。ポモドーロの集中と休憩の切り替わりもサーバーが判断して全端末に伝えるので、ある端末だけ切り替わり損ねるなんて心配はありません。 - リンク1本でサクッと参加
ルームを作成すると短いIDのURLが発行されます。このURLを共有するだけで、他の端末や参加者が同じセッションに参加できます。アカウント登録も、メール認証も、アプリのインストールも、ぜーんぶ不要!チャットにURLを貼ったり、QRコードで共有したり、先生が生徒に一括で配布したりと、共有のための手間はゼロです。 - カウントダウンもポモドーロもこれ一つでOK
シンプルに時間を計るカウントダウンタイマー(好きな分数設定)と、集中と休憩を繰り返すポモドーロタイマー(複数セット対応)を、同じアプリ、同じ操作感で利用できます。モードを切り替えるために別のアプリを開く必要はありません。 - 他の開発者も連携アプリを作れる、オープンな設計
DeviceTickは、APIの仕様(リクエスト・レスポンス形式、配信イベントの形式)を公開ドキュメントとして提供しています。これにより、DeviceTickのソースコードを読まなくても、第三者が独自のCLIツールやデスクトップアプリ、さらにはRaspberry Piなどを使った物理タイマーとの連携ツールなどを開発できます。これは、「DeviceTick」の普及だけでなく、「タイマー同期モデル」を共通基盤として広げていきたいという思いが込められています。 - 自分のサーバーで動かせる、超軽量設計
複雑なデータベースの構築も、面倒なセットアップも一切不要!たった1つのコマンドでWeb画面とAPIサーバーが起動します。個人のVPSや社内サーバー、Raspberry Piのような小型デバイスでも運用できるので、「タイマーを共有するためにクラウドサービスへの依存を増やす」必要もありません。
他のサービスと比べてどう?
DeviceTickと他のタイマーアプリを比較したマトリクスを見てみましょう。リアルタイム同期やアカウント不要での参加など、DeviceTickの強みがよくわかります。

こんなシーンで大活躍!
DeviceTickは、さまざまな場面で役立ちます。
-
個人のマルチデバイス併用: デスクのPCで作業しながら、手元のスマートフォンで残り時間をチェックしたり、操作したりできます。
-
リモートチームの集中ブロック共有: 離れた場所にいるチームメンバーと同じ25分間のポモドーロセッションを共有し、一緒に集中できます。
-
オンライン授業・勉強会・ワークショップ: 講師がチャットにURLを貼るだけで、参加者全員の画面のタイマーがピタリと揃います。
-
試験運用・ペアプログラミング・モブプログラミング: 立会人や進行役がタイマーを操作し、参加者全員の画面に同じ残り時間が表示されます。
-
物理ハードウェア連携(将来の展望): 公開された仕様を通じて、物理ポモドーロタイマーを同じセッションに接続できるようになるかもしれません。
なぜオープンソースとして公開するの?
DeviceTickは、特定のクラウドサービスや特定のアプリに縛られない、「複数の端末でタイマーを揃える」という体験そのものをオープンソースとして提供することを目的としています。API仕様を先に公開しているのは、DeviceTick本体が広まること以上に、この同期モデルと仕様が共通の基盤として広く使われることを目指しているからです。
MITライセンスのもと、個人、チーム、組織を問わず、自由に利用したり、変更したり、再配布したりできます。独自のクライアントを作ったり、社内システムに組み込んだり、商用サービスで利用したりすることも可能です。
これからもっと便利に!今後の展望
DeviceTickはこれからも進化を続けていく予定です。v0.2以降では、以下のような機能が追加されるかもしれません。
-
ルームPINによるアクセス制限
-
「全員が操作可能」と「特定の端末のみが操作可能」モードの切り替え
-
PWA(Progressive Web App)対応とモバイルブラウザでのバックグラウンド復帰強化
-
デスクトップクライアントの開発
-
公開デモ環境の提供
-
物理ポモドーロタイマーとの無線連携
開発者さん、技術メディアさん必見!技術的特徴
より技術的な視点から見ると、DeviceTickのアーキテクチャにはいくつかのポイントがあります。
-
サーバー権威型モデル: タイマーの状態はAPIサーバーが「唯一の真実の源」として管理し、すべてのスナップショットにサーバー時刻を含めて配信します。クライアントはこれを基準に時刻のズレを補正して表示します。
-
共通ステートマシン:
idle→running→paused→running→completedの状態遷移で、カウントダウンとポモドーロの両モードを処理します。 -
配信モデル: RESTful APIで状態変更を受け付け、成功した変更はWebSocketを通じて接続中の全クライアントに
session.updatedイベントとしてプッシュ配信されます。
技術スタック

公開API(抜粋)

スナップショットの完全な型定義は、リポジトリ内の protocol/session.schema.json を参照してください。
株式会社NITI Technologyについて
NITI Technologyは、最先端のAI技術を駆使して企業のビジネスプロセスを革新するテクノロジーカンパニーです。「面白さ」を追求しながら社会の課題を解決し、新しい価値を創造することをミッションに掲げ、エッジAIや小規模言語モデルの開発に取り組んでいます。
ユニークなアイデアを製品として形にし、より良い社会の実現を目指しています。
-
社名: 株式会社NITI Technology
-
URL: https://nititech.jp/
-
事業内容: AI製品の開発・販売、企業のDX支援、AI受託開発


コメント