はじめに
作業時間の記録は生産性向上に欠かせないが、複雑なツールは継続が難しい。gtimelogは、シンプルで直感的なインターフェースを持つ時間記録アプリケーションのようだ。
GNOMEデスクトップ向けに設計されているが、他の環境でも動作し、最小限の操作で日々の作業時間を記録できる。 少し使って試してみる。
環境
Ubuntu 24.04 LTS
gtimelog 0.12.1gtimelogの特徴
以下が特徴のようだ。
- テキスト入力のみで時間記録
- 自動的な時間計算
- 直感的なユーザーインターフェース
表示形式
- Chronological: 時系列表示
- Grouped: 同一タスクをグループ化
- Summary: カテゴリ別要約
レポート機能
- 日次・週次・月次レポート
- メール送信機能
- プレーンテキスト形式での出力
インストール
Ubuntu/Debian
sudo apt update
sudo apt install gtimelogログ
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
crack-common gyp libcares2 libgl1-amber-dri libglapi-mesa libjs-async libjs-events libjs-inherits
libjs-is-typedarray libjs-prettify libjs-regenerate libjs-source-map libjs-sprintf-js
libjs-typedarray-to-buffer libllvm17t64 liblttng-ust-common1t64 liblttng-ust-ctl5t64 liblttng-ust1t64
libnotify-bin libqt5x11extras5 libre2-10 libssl-dev libuv1-dev libxcb-damage0 mesa-utils-bin node-abbrev
node-ampproject-remapping node-ansi-regex node-ansi-styles node-aproba node-are-we-there-yet node-arrify
node-async node-async-each node-auto-bind node-babel-plugin-add-module-exports node-babel7-runtime
node-balanced-match node-base64-js node-binary-extensions node-brace-expansion node-busboy
node-camelcase node-caniuse-lite node-chownr node-chrome-trace-event node-ci-info node-cjs-module-lexer
node-cli-boxes node-cli-cursor node-clone node-collection-visit node-color-convert node-color-name
node-colors node-commander node-commondir node-concat-stream node-console-control-strings
node-convert-source-map node-core-js node-core-js-pure node-core-util-is node-data-uri-to-buffer
node-decompress-response node-deep-is node-defaults node-define-property node-delegates node-depd
node-diff node-electron-to-chromium node-encoding node-end-of-stream node-err-code node-error-ex
node-es-module-lexer node-escape-string-regexp node-eslint-utils node-eslint-visitor-keys node-esquery
node-estraverse node-esutils node-events node-fancy-log node-fast-deep-equal node-fast-levenshtein
node-fetch node-find-up node-flatted node-foreground-child node-fs-readdir-recursive
node-fs-write-stream-atomic node-fs.realpath node-function-bind node-get-caller-file node-get-stream
node-get-value node-glob node-globals node-got node-graceful-fs node-growl node-has-flag
node-has-unicode node-has-value node-has-values node-hosted-git-info node-iconv-lite node-ieee754
node-iferr node-imurmurhash node-indent-string node-inflight node-inherits node-ini node-interpret
node-ip node-ip-regex node-is-arrayish node-is-binary-path node-is-buffer node-is-descriptor
node-is-extglob node-is-path-cwd node-is-plain-obj node-is-plain-object node-is-stream
node-is-typedarray node-is-windows node-isarray node-isexe node-isobject node-js-tokens node-json-buffer
node-json-parse-better-errors node-json-schema node-json-schema-traverse node-json-stable-stringify
node-jsonify node-jsonparse node-kind-of node-levn node-loader-runner node-locate-path
node-lodash-packages node-lowercase-keys node-lru-cache node-map-visit node-memfs node-merge-stream
node-mimic-response node-minimatch node-minimist node-minipass node-mute-stream node-n3 node-negotiator
node-npm-run-path node-object-inspect node-object-visit node-once node-optimist node-optionator
node-osenv node-p-cancelable node-p-limit node-p-locate node-p-map node-pascalcase node-path-dirname
node-path-exists node-path-is-absolute node-path-is-inside node-path-type node-pify node-pkg-dir
node-postcss-value-parser node-prelude-ls node-process-nextick-args node-promise-inflight
node-promise-retry node-promzard node-prr node-pump node-punycode node-quick-lru node-randombytes
node-read node-readable-stream node-rechoir node-regenerator-runtime node-regenerator-transform
node-regexpp node-regjsgen node-repeat-string node-require-directory node-require-from-string
node-resolve node-resolve-cwd node-resolve-from node-restore-cursor node-resumer node-retry
node-run-queue node-safe-buffer node-serialize-javascript node-set-blocking node-set-immediate-shim
node-shebang-command node-shebang-regex node-shell-quote node-signal-exit node-slash node-slice-ansi
node-source-list-map node-source-map node-spdx-correct node-spdx-exceptions node-spdx-expression-parse
node-spdx-license-ids node-sprintf-js node-ssri node-stack-utils node-string-decoder node-strip-bom
node-supports-color node-tapable node-terser node-text-table node-through node-time-stamp
node-to-fast-properties node-tslib node-type-check node-typedarray node-typedarray-to-buffer node-undici
node-unicode-canonical-property-names-ecmascript node-unicode-match-property-value-ecmascript
node-unicode-property-aliases-ecmascript node-unset-value node-uri-js node-util-deprecate node-uuid
node-v8flags node-validate-npm-package-license node-wcwidth.js node-webpack-sources node-wordwrap
node-wrappy node-write-file-atomic node-xtend node-y18n node-yallist node-yaml nodejs-doc xbitmaps
Use 'sudo apt autoremove' to remove them.
Suggested packages:
vim-gnome
The following NEW packages will be installed:
gtimelog
0 upgraded, 1 newly installed, 0 to remove and 48 not upgraded.
Need to get 215 kB of archives.
After this operation, 545 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu noble/universe amd64 gtimelog all 0.12.0-1 [215 kB]
Fetched 215 kB in 2s (130 kB/s)
Selecting previously unselected package gtimelog.
(Reading database ... 116736 files and directories currently installed.)
Preparing to unpack .../gtimelog_0.12.0-1_all.deb ...
Unpacking gtimelog (0.12.0-1) ...
Setting up gtimelog (0.12.0-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1.1ubuntu3) ...
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.4) ...
Processing triggers for desktop-file-utils (0.27-2build1) ...基本的な使い方
アプリケーションの起動
gtimelog起動すると、シンプルなウィンドウが表示される。

時間記録をしてみる
- 作業開始時: 「arrived」と入力してEnter
- タスク開始時: タスク名を入力してEnter
- タスク終了時: 次のタスク名または「lunch」「break」を入力
記録例
タスクの開始、終了を記録するにはよさそう。
09:00 arrived
09:15 reading email
10:30 project A: bug fixes
12:00 lunch
13:00 project A: testing
15:30 meeting: weekly standup
17:00 project B: new feature
18:00 left便利な機能
履歴とオートコンプリート
- 過去のタスク名が自動補完される
- 上下キーで履歴を参照可能
作業時間の確認
ウィンドウ下部に以下が表示される
- 今日の作業時間
- 目標時間との差分
- 現在のタスクの継続時間
レポート生成
日次レポート
実際にこれを日報としては使えるかどうかということだけど、これをAIに渡して日報にすることはできそう。
- メニューから「Report…」を選択
- 日付と期間を選択
- プレビューで内容確認
- 必要に応じてメール送信
レポート形式
2025-09-20
project A: bug fixes 1.25 h
project A: testing 2.50 h
meeting: weekly standup 0.50 h
admin: time tracking 0.25 h
Total work done: 4.50 h設定とカスタマイズ
設定ファイル
# 設定ファイルの場所
~/.config/gtimelog/gtimelogrc
# データファイルの場所
~/.local/share/gtimelog/timelog.txt主な設定項目
- 1日の目標作業時間
- オフィス時間
- 仮想的な日付変更時刻
- レポートスタイル
参考
gtimelog - GitHub Repository
https://github.com/gtimelog/gtimeloggtimelog - Official Website
https://gtimelog.org/GTimeLog Documentation
https://github.com/gtimelog/gtimelog/blob/master/docs/index.rst
おわりに
gtimelogは複雑な機能を持たない分、継続して使いやすい時間記録ツールとなっていた。
実際に、業務でも作業時間を管理する必要があったりするので、これくらいシンプルのほうが書きやすそう。
他のツールも探しながら使うかどうかは検討しようと思う。