Skip to main content

Jikan (時間) - A minimalist and local time tracker. Easily track and manage your work sessions directly from the terminal.

Project description

Jikan (時間) - Minimalist Time Tracker for the CLI

Jikan (時間, “time” in Japanese) is a sleek and powerful CLI-based time tracker designed for developers, freelancers, and anyone who wants to monitor their time efficiently — without distractions.

✨ Features

  • ⏱️ Start/stop timers with custom names
  • 📋 View recorded timers per day
  • 🗓️ Generate reports by day, week, month, or year
  • 📁 Export reports as JSON, CSV, or TXT
  • 🏷️ Tag timers with predefined categories (e.g., work, break, exercise)
  • 🎯 Autocompletion for tags in CLI
  • 📊 View rounded durations (nearest 5min)
  • 📦 Store reports in customizable output paths
  • 🔄 Flush and seed the database easily

🚀 Installation

git clone https://gitlab.com/amoriceau/jikan.git
cd jikan
./install.sh
source .venv/bin/activate

🧠 Usage

Start/stop a timer

jikan start "Feature implementation" -t work dev
jikan stop

You can also start a timer if there's already one running timer, this will ask if you want to stop the currently active timer first.

View today's records

jikan records

Or a specific day:

jikan records --date 31/03/2025

Filter by tag:

jikan records --tag work

Generate a report

jikan report day --sdate 2025-04-01 --json
jikan report week --sdate 2025-04-01 --csv
jikan report month --sdate 2025-04-01 --txt

Specify output folder and filename:

jikan report week --output report.csv --output-path ~/myreports/

Tag management

jikan tags list
jikan tags add 3 work
jikan tags remove 3 break

Dev tools

jikan update --flush      # Flush and recreate DB
jikan update --seed      # Seed the database (Dev only)

🏷️ Tags

Tags are predefined categories (e.g., work, exercise, learning) with associated background colors. Tags can be referenced by ID, label, or #label.

Example:

jikan start "Weekly sync" -t #meeting break

💾 Data Storage

  • All data is stored in ~/.jikan/
  • SQLite is used under the hood
  • Reports are saved by default in ~/.jikan/reports

🛠️ Tech Stack

  • Python 3.11+
  • SQLite3
  • Rich (for beautiful CLI UI)
  • Click + rich-click

🌱 Development & Contribution

Contributions are welcome! Fork the project and submit a merge request on GitLab:
👉 https://gitlab.com/amoriceau/jikan

📄 License

MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jikan_cli-0.1.0.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jikan_cli-0.1.0-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

File details

Details for the file jikan_cli-0.1.0.tar.gz.

File metadata

  • Download URL: jikan_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for jikan_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a052e423cf23b6d323b78c8b402045c02a26da9bf4a19925fe3faef4e97a1ab7
MD5 2aab843cabd9ed347be76de8a257c453
BLAKE2b-256 7cb7c5d3e504ead42618ae6fcf5127df48fc04bb8dc2adde1051563dcd064e5b

See more details on using hashes here.

File details

Details for the file jikan_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: jikan_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for jikan_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 810ac755f9780ee6bbd0a1009c251ba36629bd1079434d295d5b1db88411bd07
MD5 934f597bacce7c5aafd1deebcc1e0b65
BLAKE2b-256 d647a1a9c90b01f2c85f6ab3d2a3ab7f5bda69ffd44190cd1486c11a632d37fe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page