Skip to main content

ENOUGH - Nathaniel Branden Sentence Completion Journal

A minimal, focused journaling application based on Nathaniel Branden's sentence completion exercises for personal growth and self-awareness.

Installation

pip install enough-journal

or AUR, add AUR how to install on arch

Usage

# Run the journal
python -m enough

Upon starting the program it should check the files associated with the exercises. If the program can't find a starting date to certain journals, when choosing that journal it will prompt the user to start from a custom date or start from day 1.

Upon start the user will meet the following.

Enough - Minimal Mindfulness Journal inspired by Nathaniel Branden

Choose Your exercise:

  1. Nathanial Branden - Sentence Completion Exercises from the Six Pillars of Self Esteem
  2. Custom Exercise Name here
  3. Custom Exercise Name here X. for analytics. --> this will ask for an exercise and show streaks, completions and so on. Streaks are counted even if we skip 1 day of the week. for example sunday, as only 6 exercises per week.

Let's say we choose 1.

We either prompt the user to choose a week and day or start from day 1 (should handle first day being on weekend by skipping to monday - come back monday), or if he has already a start date logged we do:

Week 1 | Day 3

If I paid 5% more energy to my family today...

  • the user is to submit 6 to 10 submissions
  • after reaching 10 the system automatically goes to the next question or
  • if he types "submit" without "" we will check if he met the minimum 6 then let them go on.
  • There are about 4-6 sentence stems for each day.

If it is the weekend we are compiling their answers to each sentence stem they have submitted that week and we show them. You were writing such and such for this question: list their answers that week, so 5 answers and they are to submit 6 additional answers saying "If any of what I have been writing this week is true.." then same submit or 10 submissions logic and go to the next sentence stem that week until the end. That is all.

That is all of what the program should do.

It should also provide analytics. Print a calendar of the current month, be able to choose a month, be able to look at a certain days submission from this screen.

Yaml files should be easy to read and contain all what we need start date, create separate files in the submission folder in this format: exercisename_datelike210431. In this you should have their submissions, saving per each sentence and from this you should resolve the compiling process.

Examples:

At startup:

=========================================
        ENOUGH - Minimal Journal
 Inspired by Nathaniel Branden's Work
=========================================

Choose your exercise:

1. Nathaniel Branden - Sentence Completion Exercises  (name of the yaml file inside of journals folder)
2. Custom Journal: [Name sourced from the yaml file]  
3. Custom Journal: [Name sourced from the yaml file]  
X. Analytics & Progress Overview

Enter your choice (1-3, or X): 

First time running that journal:

-----------------------------------------
Nathaniel Branden - Sentence Completion
-----------------------------------------

No prior journal found for this exercise.

Would you like to:

1. Start from Day 1 (auto-starts on the next Monday)  
2. Choose a custom start date  
3. Go back

Enter your choice (1-3): 

If the user chooses 1 and today is Saturday or Sunday, respond with:

You chose to start from Day 1.

Today is [Saturday/Sunday]. Exercises begin on Mondays.
Come back on Monday to begin Week 1 | Day 1.

If today is a weekday (Mon–Fri), begin immediately:

Week 1 | Day 1

Sentence Stem 1:
"If I paid 5% more attention to my feelings today..."

Enter response 1 of 6 (type 'submit' when done):

If the user selects 2 (custom date), prompt:

Enter a custom start date (YYYY-MM-DD): 
Then validate and:

If valid and not a weekend, start from that date. If it's a weekend, respond:

The date you selected falls on a weekend.
Exercises begin on Mondays. Starting from the next Monday: YYYY-MM-DD.

Example of an actual submission session for the weekday:

Week 1 | Day 1

Enter at least 6 responses (or type 'submit' to continue when ready):
# wait for 2 seconds after printing this message, then clear the terminal
Week 1 | Day 1
"If I bring more awareness to my life today…"


1. I might notice how often I drift into autopilot. #Simply presses enter 
2. I might be more intentional in my conversations.  
3. I might catch myself reacting emotionally before pausing.  
4. I might appreciate small moments more deeply.  
5. I might be less distracted by noise and more focused on what matters.  
6. I might realize I'm doing better than I thought.

#If they Type 'submit' before this point they will get: "Must submit at least 6 endings" 

✔️ Submission accepted. Proceeding to next sentence stem...
# wait for 2 seconds after this message, then clear the terminal and go to next stem like so

Week 1 | Day 1
"If I take more responsibility for my choices and actions today…"


1. I might notice...   #so on..

Example of an actual submission session for the weekend:

Week 1 | Day 6

Reflect on this weeks submissions.
Enter at least 6 responses (or type 'submit' to continue when ready):
# wait for 2 seconds after printing this message, then clear the terminal

Week 1 | Day 6 - Reflect

"If I bring more awareness to my life today…"

1. I might notice how often I drift into autopilot.
2. I might be more intentional in my conversations.  
3. I might catch myself reacting emotionally before pausing.  
4. I might appreciate small moments more deeply.  
5. I might be less distracted by noise and more focused on what matters.  
6. I might realize I'm doing better than I thought.

#notice how above are their submissions for this week.

If any of what I have been writing this week is ture...

1. I need to figure out a way to snap back to reality. 
2. I need to... #same 6 or 10 submission logic as for the weekday.

Analytics example:

=========================================
            Analytics & Progress
=========================================

Journal: Nathaniel Branden - Sentence Completion Exercises

Total Sessions Completed: 18
Total Sentence Stems Completed: 54
Total Time Spent Journaling: 6 hrs 32 mins

Current Streak: 2 weeks (6 days/week target)
Last Completed: Week 2 | Day 3 (2025-08-05)

Recent Session Summary:
- Last Session: 2025-08-05 (Tuesday)
- Start Time: 07:42
- End Time: 08:03
- Duration: 21 mins

-----------------------------------------
August 2025 Activity

Mon  Tue  Wed  Thu  Fri  Sat  Sun  
  x    x    x    x    x         .  
  x    x    x                  
                                  

Legend:
- x = Completed session
- . = Reflection submitted
- (blank) = No activity
- 6 sessions per week required to maintain streak

Example yaml file in the journal folder:

name: Nathaniel Branden - Sentence Completion Exercises
start_date: 2025-08-11  # Always a Monday
weeks:
  Week 1:
    ID1: If I bring more awareness to my life today…
    ID2: If I take more responsibility for my choices and actions today…
    ID3: If I pay more attention to how I deal with people today…
    ID4: If I boost my energy level by 5 percent today…

  Week 2:
    ID5: If I bring 5 percent more awareness to my important relationships…
    ID6: If I bring 5 percent more awareness to my insecurities…
    ID7: If I bring 5 percent more awareness to my deepest needs and wants…
    ID8: If I bring 5 percent more awareness to my emotions…

  Week 3:
    ID9: If I treat listening as a creative act…
    ID10: If I notice how people are affected by the quality of my listening…
    ID11: If I bring more awareness to my dealings with people today…
    ID12: If I commit to dealing with people with fairness and kindness…

  Week 4:
    ID13: If I bring a higher level of self-esteem to my activities today…
    ID14: If I bring a higher level of self-esteem to my dealings with people today…
    ID15: If I am 5 percent more self-accepting today…
    ID16: If I am self-accepting even when I make mistakes…
    ID17: If I am self-accepting even when I feel confused and overwhelmed…

Log file example:

journal: Nathaniel Branden - Sentence Completion Exercises
date: 2025-08-05
week: 1
day: 1

session:
  started_at: 2025-08-05T07:42:10  # ISO 8601
  ended_at: 2025-08-05T08:03:52
  duration_minutes: 21.7

submissions:
  ID1:
    stem: If I bring more awareness to my life today…
    responses:
      - ...
  ID2:
    stem: If I take more responsibility for my choices and actions today…
    responses:
      - ...
  ID3:
    stem: If I pay more attention to how I deal with people today…
    responses:
      - ...
  ID4:
    stem: If I boost my energy level by 5 percent today…
    responses:
      - ...

Features

  • Minimal Interface: Clean, distraction-free experience
  • Progress Tracking: Automatic week and day progression
  • Flexible Practice: Complete stems at your own pace
  • Local Storage: All data stored locally on your machine

License

CC0 1.0 Universal - Public Domain Dedication

Metadata

Release files for enough-journal 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for enough-journal 0.4.0
File Size Uploaded
enough_journal-0.4.0.tar.gz 17.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for enough-journal 0.4.0
File Interpreter ABI Platform
enough_journal-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.4 kB

Release files / enough_journal-0.4.0.tar.gz

Download URL enough_journal-0.4.0.tar.gz
Size 17.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d025da6fe1f55e5f089546ba13f35f41569b07d27696557d77f2537bcd8e5b0a
BLAKE2b-256 checksum
How to use checksums
a182a3244de8af291df205eb8ee485ab8fb98c38bbd9e6fcf72016ee6603b15f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / enough_journal-0.4.0-py3-none-any.whl

Download URL enough_journal-0.4.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
448c30fbb8d5bf4acd31b3350fc2e5cb2439db14db898b39c4d6a609a9eaafb6
BLAKE2b-256 checksum
How to use checksums
14cf94243577d12906b7bc27f1dc7941b0a10b1557f8fca596d29f3246bdda0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page