An open API service indexing awesome lists of open source software.

https://github.com/zeldean/zeltimer

⏱️ A terminal-based time tracking tool with Pomodoro support, session logging, and Markdown exports — designed for flexible CLI workflows or future TUI integration.
https://github.com/zeldean/zeltimer

cli logging markdown pomodoro-timer productivity python study-tool terminal time-tracker timer tui

Last synced: about 1 month ago
JSON representation

⏱️ A terminal-based time tracking tool with Pomodoro support, session logging, and Markdown exports — designed for flexible CLI workflows or future TUI integration.

Awesome Lists containing this project

README

          

# ⏱️ Zeltimer

![Python](https://img.shields.io/badge/Python-3.10%2B-blue.svg)
![License](https://img.shields.io/badge/license-MIT-green.svg)
![Last Commit](https://img.shields.io/github/last-commit/Zeldean/zeltimer)
![Issues](https://img.shields.io/github/issues/Zeldean/zeltimer)
![Repo Size](https://img.shields.io/github/repo-size/Zeldean/zeltimer)

**Zeltimer** is a terminal-based time tracker for managing multiple timers, recording sessions, and keeping your work organized.
It supports session resuming today and will soon feature a full **Pomodoro mode** for focused work cycles.

## Getting Started

**First, install the Zel ecosystem:**
```bash
curl -sSL https://raw.githubusercontent.com/Zeldean/zelutil/main/bootstrap-zel.py | python3
```

This sets up ZelUtil and makes all Zel tools available. See the [ZelUtil repository](https://github.com/Zeldean/zelutil) for details.

Part of the **Zel-suite** of tools:
- [`zeltimer`](https://github.com/Zeldean/zeltimer) — time tracking
- `zeltask` — task tracking *(coming soon)*
- `zeljournal` — exports timers & tasks to Markdown *(coming soon)*

---

## 🚀 Overview

Zeltimer helps you track how you spend your time — whether it's studying, coding, or working on personal projects — directly from the terminal.

- **Multiple concurrent timers**
- **Persistent logs** rebuilt into JSON after every command
- **Quick start / stop / resume / list** workflows
- **Filterable status reports** (per timer, per day, or custom range)
- **Desktop notifications** with the packaged icon (Linux `notify-send`)
- **Pomodoro mode** *(planned feature)*

---

## 📦 Installation

### From source
```bash
git clone https://github.com/Zeldean/zeltimer.git
cd zeltimer
pip install -e .
````

### With `pipx` (recommended for CLI tools)

```bash
pipx install git+https://github.com/Zeldean/zeltimer.git
```

**Requirements**:

* Python 3.10+
* [click](https://pypi.org/project/click/)
* Linux desktop with `notify-send` for notifications

---

## 💻 Usage

General syntax:

```bash
zeltimer [COMMAND] [ARGS]
```

### Commands

| Command | Description |
| --------------------------- | ------------------------------------------------------- |
| `new ` | Create a new timer |
| `start [session name]` | Start a timer (auto-stops active session on same timer) |
| `stop ` | Stop the current session |
| `resume ` | Resume the last session |
| `status [id]` | Show session breakdown for one or all timers (filterable) |
| `ls` | List active timers |

`status` accepts `--date`, `--from-date`, `--to-date`, `--all-days`, and
`--refresh` to control the window of sessions that are summarised.

### Example session

```bash
# Create a new timer
zeltimer new "Study Session"

# Start it with a session name
zeltimer start 1 "Math Homework"

# Stop the timer
zeltimer stop 1

# Check status
zeltimer status 1
```

---

## ✨ Features

✅ Multiple timers with separate sessions
✅ Auto-stop on new session start for same timer
✅ Persistent storage in `~/.local/state/zel`
✅ Resume support for previous sessions
✅ Fast active timer list via `zeltimer ls`
📢 Desktop notifications (requires `notify-send` on Linux)
🔄 Pomodoro cycles *(planned)*

---

## 🛠 Planned Features

* **Pomodoro mode**: Per-timer configuration for cycles, work time, break time.
* Archive/unarchive timers directly from the CLI.
* TUI frontend.
* Full integration with `zeljournal`.

---

## 📂 Data Storage

Your data is stored in the XDG state directory:

```
~/.local/state/zel/
```

All files are created with `zelutil.resolve_state_dir()` so every Zel tool shares
the same base directory.

* `timers.json` — rebuilt timer list with session history
* `timer_log.txt` — append-only event log used to rebuild state

You can back up or sync these files if needed.

---

## 🤝 Related Projects

* `zeltask` — terminal-based task tracker *(coming soon)*
* `zeljournal` — exports timers & tasks to Markdown *(coming soon)*

---

## 📄 License

This project is licensed under the [MIT License](LICENSE).