From f19af63d91dc06af8f8489fbec109f7b85460e6c Mon Sep 17 00:00:00 2001
From: kankys
Date: Sun, 16 Aug 2026 21:13:50 +0200
Subject: [PATCH] habit+timer
---
DOXA_ROADMAP.md | 69 +--
README.md | 150 ++++-
doxa-habit/LICENSE | 21 +
doxa-habit/MANUAL.md | 41 ++
doxa-habit/MANUAL_CZ.md | 41 ++
doxa-habit/README.md | 36 ++
doxa-habit/README_CZ.md | 36 ++
doxa-habit/doxa-habit | Bin 0 -> 5544252 bytes
doxa-habit/go.mod | 33 +
doxa-habit/go.sum | 52 ++
doxa-habit/install.sh | 99 +++
doxa-habit/main.go | 18 +
doxa-habit/storage.go | 43 ++
doxa-habit/translations.go | 128 ++++
doxa-habit/tui.go | 846 ++++++++++++++++++++++++++
doxa-notes/web/assets/locales/cs.json | 37 +-
doxa-notes/web/assets/locales/en.json | 31 +-
doxa-notes/web/doxa.html | 102 +++-
doxa-timer/LICENSE | 21 +
doxa-timer/MANUAL.md | 43 ++
doxa-timer/MANUAL_CZ.md | 43 ++
doxa-timer/README.md | 32 +
doxa-timer/README_CZ.md | 32 +
doxa-timer/doxa-timer | Bin 0 -> 5071125 bytes
doxa-timer/go.mod | 31 +
doxa-timer/go.sum | 48 ++
doxa-timer/install.sh | 99 +++
doxa-timer/main.go | 18 +
doxa-timer/storage.go | 86 +++
doxa-timer/translations.go | 111 ++++
doxa-timer/tui.go | 526 ++++++++++++++++
31 files changed, 2767 insertions(+), 106 deletions(-)
create mode 100644 doxa-habit/LICENSE
create mode 100644 doxa-habit/MANUAL.md
create mode 100644 doxa-habit/MANUAL_CZ.md
create mode 100644 doxa-habit/README.md
create mode 100644 doxa-habit/README_CZ.md
create mode 100755 doxa-habit/doxa-habit
create mode 100644 doxa-habit/go.mod
create mode 100644 doxa-habit/go.sum
create mode 100755 doxa-habit/install.sh
create mode 100644 doxa-habit/main.go
create mode 100644 doxa-habit/storage.go
create mode 100644 doxa-habit/translations.go
create mode 100644 doxa-habit/tui.go
create mode 100644 doxa-timer/LICENSE
create mode 100644 doxa-timer/MANUAL.md
create mode 100644 doxa-timer/MANUAL_CZ.md
create mode 100644 doxa-timer/README.md
create mode 100644 doxa-timer/README_CZ.md
create mode 100755 doxa-timer/doxa-timer
create mode 100644 doxa-timer/go.mod
create mode 100644 doxa-timer/go.sum
create mode 100755 doxa-timer/install.sh
create mode 100644 doxa-timer/main.go
create mode 100644 doxa-timer/storage.go
create mode 100644 doxa-timer/translations.go
create mode 100644 doxa-timer/tui.go
diff --git a/DOXA_ROADMAP.md b/DOXA_ROADMAP.md
index 4857c98..d7eae1e 100644
--- a/DOXA_ROADMAP.md
+++ b/DOXA_ROADMAP.md
@@ -103,31 +103,9 @@ Tento dokument obsahuje návrhy na rozšíření kolekce DOXA aplikací. Všechn
---
-### 5. ✅ DOXA Habit Tracker 🎯
-**Popis**: Tracker návyků pro terminál
-
-- **Priorita**: Střední
-- **Integrace**: Motivace a sledování osobního růstu
-- **Cílová platforma**: Linux, FreeBSD
-- **Technologie**: Go, Bubble Tea
-
-**Plánované funkce**:
-- [ ] Vytváření návyků s cíli (denní, týdenní)
-- [ ] Denní sledování splnění
-- [ ] Statistiky a grafy (ASCII)
-- [ ] Motivující zprávy a upozornění
-- [ ] Export dat do CSV
-- [ ] Přehled streaku (počet po sobě jdoucích dnů)
-- [ ] Dvoujazyčné rozhraní (CZ/EN)
-
-**Odhadovaná složitost**: Střední
-**Odhadovaný čas**: 2 týdny
-
----
-
## 🌟 Bonusové nápady
-### 6. DOXA Finance 💰
+### 5. DOXA Finance 💰
**Popis**: Správa výdajů a příjmů
- **Funkce**: Evidence transakcí, kategorie, statistiky, rozpočty
@@ -137,7 +115,7 @@ Tento dokument obsahuje návrhy na rozšíření kolekce DOXA aplikací. Všechn
---
-### 7. DOXA Bookmarks 🔖
+### 6. DOXA Bookmarks 🔖
**Popis**: Správce záložek z příkazové řádky
- **Funkce**: Ukládání URL, tagování, vyhledávání, otevírání v prohlížeči
@@ -147,17 +125,7 @@ Tento dokument obsahuje návrhy na rozšíření kolekce DOXA aplikací. Všechn
---
-### 8. DOXA Timer ⏱️
-**Popis**: Pomodoro timer pro terminál
-
-- **Funkce**: Nastavení časových intervalů, sledování produktivity, statistiky
-- **Technologie**: Go, Bubble Tea
-- **Složitost**: Nízká
-- **Integrace**: Spuštění společně s doxa-todo
-
----
-
-### 9. DOXA Sync 🔄
+### 7. DOXA Sync 🔄
**Popis**: Lokální synchronizace mezi zařízeními
- **Funkce**: Synchronizace dat přes SSH/SCP, konflikt resolution
@@ -167,7 +135,7 @@ Tento dokument obsahuje návrhy na rozšíření kolekce DOXA aplikací. Všechn
---
-### 10. DOXA Backup 💾
+### 8. DOXA Backup 💾
**Popis**: Nástroj pro zálohování DOXA dat
- **Funkce**: Automatické zálohování, obnovení, verze, komprese
@@ -180,17 +148,15 @@ Tento dokument obsahuje návrhy na rozšíření kolekce DOXA aplikací. Všechn
## 📊 Prioritizace
| Pořadí | Aplikace | Priorita | Složitost | Čas | Integrace s existujícími |
-|--------|----------|----------|-----------|------|--------------------------|
+|--------|----------|----------|-----------|------|-----------------------------|
| 1 | DOXA Calendar | Vysoká | Střední | 2-3 týdny | ✅ Vysoká (doxa-todo) |
| 2 | DOXA Contacts | Vysoká | Nízká | 1-2 týdny | ✅ Střední |
| 3 | DOXA Password | Vysoká | Vysoká | 3-4 týdny | ✅ Střední (doxa-secret) |
| 4 | DOXA Journal | Střední | Nízká | 1-2 týdny | ⚠️ Nízká |
-| 5 | DOXA Habit Tracker | Střední | Střední | 2 týdny | ⚠️ Nízká |
-| 6 | DOXA Finance | Nízká | Vysoká | 3-4 týdny | ❌ Žádná |
-| 7 | DOXA Bookmarks | Nízká | Nízká | 1 týden | ❌ Žádná |
-| 8 | DOXA Timer | Nízká | Nízká | 1 týden | ✅ Střední (doxa-todo) |
-| 9 | DOXA Sync | Nízká | Vysoká | 4+ týdny | ✅ Vysoká (všechny) |
-| 10 | DOXA Backup | Nízká | Střední | 2-3 týdny | ✅ Vysoká (všechny) |
+| 5 | DOXA Finance | Nízká | Vysoká | 3-4 týdny | ❌ Žádná |
+| 6 | DOXA Bookmarks | Nízká | Nízká | 1 týden | ❌ Žádná |
+| 7 | DOXA Sync | Nízká | Vysoká | 4+ týdny | ✅ Vysoká (všechny) |
+| 8 | DOXA Backup | Nízká | Střední | 2-3 týdny | ✅ Vysoká (všechny) |
---
@@ -204,13 +170,9 @@ Tento dokument obsahuje návrhy na rozšíření kolekce DOXA aplikací. Všechn
3. **DOXA Password** - Bezpečný správce hesel
4. **DOXA Journal** - Osobní deník
-### Fáze 3: Pokročilé funkce (3-4 měsíce)
-5. **DOXA Habit Tracker** - Sledování návyků
-6. **DOXA Timer** - Pomodoro timer
-
-### Fáze 4: Systémové nástroje (4+ měsíce)
-7. **DOXA Sync** - Synchronizace mezi zařízeními
-8. **DOXA Backup** - Zálohovací nástroj
+### Fáze 3: Systémové nástroje (3+ měsíce)
+5. **DOXA Sync** - Synchronizace mezi zařízeními
+6. **DOXA Backup** - Zálohovací nástroj
---
@@ -232,12 +194,13 @@ Všechny nové aplikace by měly:
- [x] DOXA Notes - ✅ Kompletní
- [x] DOXA CLI - ✅ Kompletní
- [x] DOXA Secret - ✅ Kompletní
-- [x] DOXA TODO - ✅ Kompletní (nově přidáno označování splněných úkolů)
+- [x] DOXA TODO - ✅ Kompletní
+- [x] DOXA Timer - ✅ Kompletní (nově přidáno)
+- [x] DOXA Habit - ✅ Kompletní (nově přidáno)
- [ ] DOXA Calendar - ⏳ Plánováno
- [ ] DOXA Contacts - ⏳ Plánováno
- [ ] DOXA Password - ⏳ Plánováno
- [ ] DOXA Journal - ⏳ Plánováno
-- [ ] DOXA Habit Tracker - ⏳ Plánováno
---
@@ -247,4 +210,4 @@ Pokud máte nápady na další aplikace nebo chcete upřednostnit některý z n
---
-*Poslední aktualizace: 9. srpna 2026*
+*Poslední aktualizace: 16. srpna 2026*
diff --git a/README.md b/README.md
index 76f1fc1..132464c 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
-
+
@@ -16,7 +16,7 @@
## 🌍 DOXA
-**DOXA** is a collection of three minimalist, locally-focused applications for note management, message encryption, and command-line text processing. All projects share a common philosophy: **complete independence, privacy, and control over your data**. No cloud services, no tracking, no external dependencies. Your data belongs only to you.
+**DOXA** is a collection of six minimalist, locally-focused applications for note management, message encryption, task management, Pomodoro productivity and habit tracking. All projects share a common philosophy: **complete independence, privacy, and control over your data**. No cloud services, no tracking, no external dependencies. Your data belongs only to you.
---
@@ -101,20 +101,66 @@
---
+### 5. ⏱️ [DOXA Timer](doxa-timer/)
+
+**Pomodoro timer for the terminal with productivity statistics**
+
+- **Description**: A minimalist Pomodoro timer for the terminal. Helps you focus using the Pomodoro technique — alternating work sessions with short and long breaks. Tracks your daily and total completed Pomodoros.
+- **Philosophy**: Local-first productivity. No cloud apps, no subscriptions — just clean focus. Data stored in `~/.doxa-timer/`.
+- **Technologies**: Go (Golang), Bubble Tea (TUI framework), Lip Gloss (styling).
+- **Platforms**: Linux, FreeBSD.
+- **Features**:
+ - Pomodoro technique: work session (25 min), short break (5 min), long break (15 min).
+ - Live countdown timer with ASCII progress bar.
+ - Configurable session lengths.
+ - Daily and total Pomodoro statistics.
+ - Bilingual interface (Czech/English) with `l` key toggle.
+ - Data stored in `~/.doxa-timer/doxa_timer.json`.
+
+📖 [Read detailed documentation](doxa-timer/README.md)
+
+---
+
+### 6. 🎯 [DOXA Habit](doxa-habit/)
+
+**Habit tracker for the terminal with streak tracking**
+
+- **Description**: A minimalist terminal application for building and tracking habits. Monitor your daily and weekly habits, track streaks and visualize progress with ASCII heatmaps.
+- **Philosophy**: Local-first personal growth. No gamification traps, no notification manipulation — just your data and your progress. Data stored in `~/.doxa-habit/`.
+- **Technologies**: Go (Golang), Bubble Tea (TUI framework), Lip Gloss (styling).
+- **Platforms**: Linux, FreeBSD.
+- **Features**:
+ - Daily and weekly habits with completion tracking.
+ - Streak counter (consecutive days completed).
+ - ASCII heatmap for the last 7 days.
+ - Success rate statistics (7/30 days).
+ - Export data to CSV format.
+ - Search habits by name.
+ - Bilingual interface (Czech/English) with `l` key toggle.
+ - Data stored in `~/.doxa-habit/doxa_habit.json`.
+
+📖 [Read detailed documentation](doxa-habit/README.md)
+
+---
+
## 🔗 Common Features of All DOXA Projects
-| Feature | DOXA Notes | DOXA CLI | DOXA Secret | DOXA TODO |
-|---------|------------|----------|--------------|-----------|
-| **Local Data Storage** | ✅ | ✅ | ✅ | ✅ |
-| **Open Format (JSON)** | ✅ | ✅ | ✅ | ✅ |
-| **No Cloud Dependencies** | ✅ | ✅ | ✅ | ✅ |
-| **Open Source (MIT)** | ✅ | ✅ | ✅ | ✅ |
-| **Minimalist Design** | ✅ | ✅ | ✅ | ✅ |
-| **Tag Support** | ✅ | ✅ | ❌ | ✅ |
-| **Search and Filtering** | ✅ | ✅ | ❌ | ✅ |
-| **Encryption** | ❌ | ❌ | ✅ | ❌ |
-| **Priority Levels** | ❌ | ❌ | ❌ | ✅ |
-| **Categories** | ❌ | ❌ | ❌ | ✅ |
+| Feature | DOXA Notes | DOXA CLI | DOXA Secret | DOXA TODO | DOXA Timer | DOXA Habit |
+|---------|------------|----------|-------------|-----------|------------|------------|
+| **Local Data Storage** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Open Format (JSON)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **No Cloud Dependencies** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Open Source (MIT)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Minimalist Design** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Bilingual (CZ/EN)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Tag Support** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
+| **Search & Filtering** | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ |
+| **Encryption** | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Priority Levels** | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
+| **Categories** | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
+| **Pomodoro Timer** | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
+| **Streak / Habit Stats** | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
+| **Data Export** | ✅ JSON | ✅ TXT | ✅ TXT | ✅ TXT | ✅ JSON | ✅ CSV |
---
@@ -126,6 +172,8 @@ Each project has its own installation process. Detailed guides can be found in t
- [DOXA CLI – Installation](doxa-cli/README.md#installation)
- [DOXA Secret – Installation](doxa-secret/README_EN.md#installation)
- [DOXA TODO – Installation](doxa-todo/README.md#installation)
+- [DOXA Timer – Installation](doxa-timer/README.md#installation)
+- [DOXA Habit – Installation](doxa-habit/README.md#installation)
---
@@ -170,7 +218,7 @@ DOXA believes in:
## 🌍 DOXA
-**DOXA** je sbírka tří minimalistických, lokálně orientovaných aplikací pro správu poznámek, šifrování zpráv a práci s textem z příkazové řádky. Všechny projekty sdílejí společnou filozofii: **úplná nezávislost, soukromí a kontrola nad vašimi daty**. Žádné cloudové služby, žádné sledování, žádné externí závislosti. Vaše data patří pouze vám.
+**DOXA** je sbírka šesti minimalistických, lokálně orientovaných aplikací pro správu poznámek, šifrování zpráv, správu úkolů, Pomodoro produktivitu a sledování návyků. Všechny projekty sdílejí společnou filozofii: **úplná nezávislost, soukromí a kontrola nad vašimi daty**. Žádné cloudové služby, žádné sledování, žádné externí závislosti. Vaše data patří pouze vám.
---
@@ -255,20 +303,66 @@ DOXA believes in:
---
+### 5. ⏱️ [DOXA Timer](doxa-timer/)
+
+**Pomodoro timer pro terminál se statistikami produktivity**
+
+- **Popis**: Minimalistický Pomodoro timer pro terminál. Pomáhá vám se soustředit pomocí Pomodoro techniky — střídání pracovních sezení s krátkými a dlouhými přestávkami. Sleduje denní a celkový počet dokončených Pomodorů.
+- **Filozofie**: Lokální produktivita. Žádné cloudové aplikace, žádné předplatné — jen čistý fokus na vaši práci. Data uložena v `~/.doxa-timer/`.
+- **Technologie**: Go (Golang), Bubble Tea (TUI framework), Lip Gloss (stylování).
+- **Platformy**: Linux, FreeBSD.
+- **Vlastnosti**:
+ - Pomodoro technika: pracovní sezení (25 min), krátká přestávka (5 min), dlouhá přestávka (15 min).
+ - Live odpočítávání s ASCII progress barem.
+ - Konfigurovatelné délky sezení.
+ - Denní a celkové statistiky Pomodorů.
+ - Dvoujazyčné rozhraní (česky/anglicky) s přepínáním klávesou `l`.
+ - Data uložena v `~/.doxa-timer/doxa_timer.json`.
+
+📖 [Přečtěte si podrobnější dokumentaci](doxa-timer/README_CZ.md)
+
+---
+
+### 6. 🎯 [DOXA Habit](doxa-habit/)
+
+**Tracker návyků pro terminál se sledováním streaku**
+
+- **Popis**: Minimalistická terminálová aplikace pro budování a sledování návyků. Sledujte denní a týdenní návyky, streaky a vizualizujte pokrok pomocí ASCII heatmap.
+- **Filozofie**: Lokální osobní rozvoj. Žádné gamifikační pasti, žádná manipulace s notifikacemi — jen vaše data a váš pokrok. Data uložena v `~/.doxa-habit/`.
+- **Technologie**: Go (Golang), Bubble Tea (TUI framework), Lip Gloss (stylování).
+- **Platformy**: Linux, FreeBSD.
+- **Vlastnosti**:
+ - Denní a týdenní návyky se sledováním splnění.
+ - Streak čítač (po sobě jdoucí dny splnění).
+ - ASCII heatmap posledních 7 dní.
+ - Statistiky úspěšnosti (7/30 dní).
+ - Export dat do CSV formátu.
+ - Vyhledávání návyků dle názvu.
+ - Dvoujazyčné rozhraní (česky/anglicky) s přepínáním klávesou `l`.
+ - Data uložena v `~/.doxa-habit/doxa_habit.json`.
+
+📖 [Přečtěte si podrobnější dokumentaci](doxa-habit/README_CZ.md)
+
+---
+
## 🔗 Společné vlastnosti všech projektů DOXA
-| Vlastnost | DOXA Notes | DOXA CLI | DOXA Secret | DOXA TODO |
-|-----------|------------|----------|--------------|-----------|
-| **Lokální uložení dat** | ✅ | ✅ | ✅ | ✅ |
-| **Otevřený formát (JSON)** | ✅ | ✅ | ✅ | ✅ |
-| **Žádné cloudové závislosti** | ✅ | ✅ | ✅ | ✅ |
-| **Open Source (MIT)** | ✅ | ✅ | ✅ | ✅ |
-| **Minimalistický design** | ✅ | ✅ | ✅ | ✅ |
-| **Podpora tagů** | ✅ | ✅ | ❌ | ✅ |
-| **Vyhledávání a filtrování** | ✅ | ✅ | ❌ | ✅ |
-| **Šifrování** | ❌ | ❌ | ✅ | ❌ |
-| **Úrovně priority** | ❌ | ❌ | ❌ | ✅ |
-| **Kategorie** | ❌ | ❌ | ❌ | ✅ |
+| Vlastnost | DOXA Notes | DOXA CLI | DOXA Secret | DOXA TODO | DOXA Timer | DOXA Habit |
+|-----------|------------|----------|-------------|-----------|------------|------------|
+| **Lokální uložení dat** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Otevřený formát (JSON)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Žádné cloudové závislosti** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Open Source (MIT)** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Minimalistický design** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Dvoujazyčné rozhraní** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Podpora tagů** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
+| **Vyhledávání a filtrování** | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ |
+| **Šifrování** | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Úrovně priority** | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
+| **Kategorie** | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
+| **Pomodoro timer** | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
+| **Streak / Statistiky návyků** | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
+| **Export dat** | ✅ JSON | ✅ TXT | ✅ TXT | ✅ TXT | ✅ JSON | ✅ CSV |
---
@@ -280,6 +374,8 @@ Každý projekt má vlastní instalační postup. Podrobné návody naleznete v
- [DOXA CLI – Instalace](doxa-cli/README_CZ.md#instalace)
- [DOXA Secret – Instalace](doxa-secret/README.md#instalace)
- [DOXA TODO – Instalace](doxa-todo/README_CZ.md#instalace)
+- [DOXA Timer – Instalace](doxa-timer/README_CZ.md#instalace)
+- [DOXA Habit – Instalace](doxa-habit/README_CZ.md#instalace)
---
diff --git a/doxa-habit/LICENSE b/doxa-habit/LICENSE
new file mode 100644
index 0000000..b459e5f
--- /dev/null
+++ b/doxa-habit/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2026 Kankys
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/doxa-habit/MANUAL.md b/doxa-habit/MANUAL.md
new file mode 100644
index 0000000..2e965de
--- /dev/null
+++ b/doxa-habit/MANUAL.md
@@ -0,0 +1,41 @@
+# DOXA Habit User Manual 🎯
+
+This manual describes how to navigate and manage habits in the DOXA Habit tracker.
+
+## Getting Started
+
+Start the application by running:
+```bash
+doxa-habit
+```
+Press `Enter` on the splash screen to enter the main interface.
+
+## Interface States
+
+1. **MAIN VIEW**: A list showing all your habits, their current streaks (e.g., `🔥3` for 3 consecutive days, or `❄️0`), and a mini calendar heatmap showing the last 7 days (`▓` for completed, `░` for missed).
+2. **DETAIL MODAL**: Displays description, frequency, stats for last 7/30 days, and a detailed heatmap.
+3. **STATS VIEW**: Table summarizing all your habits' statistics.
+4. **ADD / EDIT FORM**: Text inputs to add or modify habits.
+
+## Controls
+
+### Main Screen
+- `1`: Add a new habit.
+- `2`: Edit the selected habit.
+- `3`: Export completion history to `~/.doxa-habit/export/_history.csv`.
+- `4`: Delete selected habit.
+- `t`: Toggle today's status (Completed ✅ vs Not Completed ⬜).
+- `s`: Show statistics of all habits.
+- `l`: Switch UI language (English/Czech).
+- `/`: Filter habits by search term.
+- `Enter`: Open details modal.
+- `q` / `Esc`: Exit the program.
+
+### Form Fields (Add/Edit)
+- `Tab`: Jump between the "Name" and "Description" fields.
+- `f`: Toggle habit frequency between "Daily" and "Weekly".
+- `Enter`: Save and create/modify the habit.
+- `q` / `Esc`: Go back to the main list without saving.
+
+### Modal & Stats Views
+- `q` / `Esc`: Return to the main list view.
diff --git a/doxa-habit/MANUAL_CZ.md b/doxa-habit/MANUAL_CZ.md
new file mode 100644
index 0000000..0608ba9
--- /dev/null
+++ b/doxa-habit/MANUAL_CZ.md
@@ -0,0 +1,41 @@
+# Uživatelský manuál DOXA Habit 🎯
+
+Tento manuál popisuje použití aplikace DOXA Habit pro sledování návyků.
+
+## Spuštění programu
+
+Spusťte aplikaci příkazem:
+```bash
+doxa-habit
+```
+Na úvodní obrazovce stiskněte `Enter` pro přechod do hlavního rozhraní.
+
+## Rozhraní aplikace
+
+1. **SEZNAM NÁVYKŮ**: Zobrazuje všechny vaše návyky, aktuální streak (např. `🔥3` nebo `❄️0`) a mini heatmapu posledních 7 dní (`▓` splněno, `░` nesplněno).
+2. **DETAIL MODAL**: Zobrazí podrobnější popis návyku, frekvenci a úspěšnost v procentech za 7/30 dní.
+3. **STATISTIKY**: Tabulkový přehled všech vašich návyků a jejich úspěšnosti.
+4. **PŘIDAT / UPRAVIT**: Formulář pro zakládání či editaci návyků.
+
+## Ovládání
+
+### Hlavní obrazovka
+- `1`: Přidat nový návyk.
+- `2`: Upravit vybraný návyk.
+- `3`: Exportovat historii splnění do souboru `~/.doxa-habit/export/_history.csv`.
+- `4`: Smazat vybraný návyk.
+- `t`: Označit návyk jako dnes splněný (střídá ✅ a ⬜).
+- `s`: Zobrazit celkové statistiky všech návyků.
+- `l`: Přepne jazyk rozhraní (čeština/angličtina).
+- `/`: Vyhledat/filtrovat návyky podle názvu.
+- `Enter`: Otevřít detail návyku v modálním okně.
+- `q` / `Esc`: Ukončit program.
+
+### Formulář (Přidat / Upravit)
+- `Tab`: Přechází mezi poli "Název" a "Popis".
+- `f`: Přepíná frekvenci návyku (Denní / Týdenní).
+- `Enter`: Uloží data.
+- `q` / `Esc`: Zruší změny a vrátí se zpět na hlavní seznam.
+
+### Okna detailu a statistik
+- `q` / `Esc`: Vrátí se na hlavní seznam návyků.
diff --git a/doxa-habit/README.md b/doxa-habit/README.md
new file mode 100644
index 0000000..27ff9fe
--- /dev/null
+++ b/doxa-habit/README.md
@@ -0,0 +1,36 @@
+# DOXA Habit 🎯
+
+**Minimalist habit tracker for the terminal with streak tracking**
+
+DOXA Habit is a terminal-based tool to organize, record, and maintain daily and weekly habits. It calculates streaks and offers a visual 7-day mini heatmap of your progress.
+
+## Features
+
+- **Daily & Weekly Habits**: Setup name, description, and execution frequency.
+- **Completion toggle**: Mark today as completed or not.
+- **Streak & Heatmap**: Displays your current streak (🔥/❄️) and a mini calendar (▓/░) of the last 7 days.
+- **Overall Statistics**: Success rates over 7 and 30 days.
+- **Local JSON Storage**: Kept securely offline at `~/.doxa-habit/doxa_habit.json`.
+- **Export to CSV**: Export your habit completion log history.
+- **Bilingual**: CZ/EN language support via the `l` key.
+
+## Installation
+
+```bash
+cd doxa-habit
+chmod +x install.sh
+./install.sh
+```
+
+## Hotkeys
+
+- `1` - Add Habit
+- `2` - Edit selected Habit
+- `3` - Export selected Habit history to CSV
+- `4` - Delete Habit
+- `t` - Toggle completed state for today
+- `s` - View Overall Statistics
+- `l` - Toggle language (EN/CS)
+- `/` - Search habits by name
+- `Enter` - View Habit Details Modal
+- `q` / `Esc` - Go back / Quit
diff --git a/doxa-habit/README_CZ.md b/doxa-habit/README_CZ.md
new file mode 100644
index 0000000..734a8d8
--- /dev/null
+++ b/doxa-habit/README_CZ.md
@@ -0,0 +1,36 @@
+# DOXA Habit 🎯
+
+**Minimalistický tracker návyků pro terminál se sledováním streaku**
+
+DOXA Habit je terminálová aplikace pro organizaci, zaznamenávání a udržování denních i týdenních návyků. Počítá aktuální sérii splnění (streak) a vizualizuje pokrok.
+
+## Vlastnosti
+
+- **Denní a týdenní návyky**: Volitelný název, popis a frekvence plnění.
+- **Označení splnění**: Rychlé označení dnešního splnění (toggle).
+- **Streak & Heatmap**: Zobrazení aktuální série (🔥/❄️) a 7denního mini kalendáře (▓/░).
+- **Celkové statistiky**: Úspěšnost plnění za posledních 7 a 30 dní.
+- **Local-first**: Data jsou uložena v offline JSON databázi `~/.doxa-habit/doxa_habit.json`.
+- **Export do CSV**: Uložení kompletní historie plnění návyku.
+- **Dvojjazyčnost**: Podpora češtiny a angličtiny přepínatelná klávesou `l`.
+
+## Instalace
+
+```bash
+cd doxa-habit
+chmod +x install.sh
+./install.sh
+```
+
+## Klávesové zkratky
+
+- `1` - Přidat návyk
+- `2` - Upravit vybraný návyk
+- `3` - Exportovat historii návyku do CSV
+- `4` - Smazat návyk
+- `t` - Změnit stav splnění pro dnešní den
+- `s` - Zobrazit celkové statistiky
+- `l` - Přepnout jazyk (CZ/EN)
+- `/` - Vyhledávání návyků podle názvu
+- `Enter` - Zobrazit detail návyku v modálním okně
+- `q` / `Esc` - Zpět / Konec
diff --git a/doxa-habit/doxa-habit b/doxa-habit/doxa-habit
new file mode 100755
index 0000000000000000000000000000000000000000..62d18f66c87a23dc24bfdc9ed7cf559230c8309d
GIT binary patch
literal 5544252
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
z