Focus Blocks: Simple and elegant daily time management tool.
Project description
fob
A CLI program for implementing Focus Blocks in your daily life.
Intro
Focus Blocks is my take on time management inspired by Flow State, Pomodoro Technique, Timeboxing, and Deep Work. Please read the Introduction to Focus Blocks first to understand the motivation for the creation of this program.
fob is a simple CLI program that lets you plan your month, and then visualize & update your progress within the Focus Blocks time management framework.
It is written in Python with minimal dependencies and can be installed on Mac, Linux, and Windows.
Quick Start
First, install uv (directions here)
Then, clone this repository to the directory of your choice.
git clone https://github.com/tensorturtle/fob.git
You can try out fob without installing it by using uv run:
uv run fob help
If you want to be able to call fob directly from your terminal, install it to your system:
./install.sh
This will compile and install fob. Now you can run:
fob help
A Day in the Life
It's the beginning of a new month - let's set our goals.
It's a new day! Say good morning!
Check off the first block of the day:
Let's remind ourselves what the day ahead looks like:
Oops, we couldn't do block 3. Let's change that block to 'Buffer', which is exactly for unforeseen things like this.
Checking off the final block for the day. Great job.
Come back tomorrow and say good morning to repeat.
Features
Cloud Sync
Bring your own cloud.
fob runs on a single database file. You can store this database on Dropbox or your own cloud. Just pass the path to the --database option when running fob. For example:
fob --database /home/tensorturtle/Dropbox/my-fob.db help
For more convenience, you can export a FOB_DB_PATH variable in your shell.
For example, add the following line to ~/.bashrc (for bash shell):
export FOB_DB_PATH="/home/tensorturtle/Dropbox/my-fob.db"
source ~/.bashrc
Development
Run app in debug mode:
uv run fob --debug
Use database at custom path:
uv run fob --database ~/Downloads/testing_fob.db
The so-called database is actually just a human-readable JSON file. To see its location:
uv run fob info
Testing
uvx pytest
This is an end-to-end test. It installs fob to a temporary directory using install.sh and runs commands against it. Github Actions is set up to run the same test upon pushing to main branch.
Publishing
Update version number in pyproject.toml and utils/utils.py
Build and publish package to PyPI:
rm -r dist/
uv build
uv publish --token $TOKEN
Wait a moment for PyPI database to be updated (maybe a minute) and run:
uvx --from focus-blocks@latest fob
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file focus_blocks-0.2.7.tar.gz.
File metadata
- Download URL: focus_blocks-0.2.7.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d3eb0b71da7fb463c684ec8d8c8fcf1c3270c9b6c0742b1f9d16c0d7b9a5a24
|
|
| MD5 |
4e2c132647955349378f4a6f2a3a5af0
|
|
| BLAKE2b-256 |
e82089e21263cd97b85e1d978d759c868522c687630691ee4e10225b2f0bbe9b
|
File details
Details for the file focus_blocks-0.2.7-py3-none-any.whl.
File metadata
- Download URL: focus_blocks-0.2.7-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9ec8ae0097d7c9081b687de55460cd55901db43cf8cf1e108b1130545460228
|
|
| MD5 |
efcc2219af6114683f8f0240f8530674
|
|
| BLAKE2b-256 |
0bce613c801df1185d10f07882599826a56664b519c21cc636876f5fbcddcd75
|