Skip to main content

A local-first CLI mood tracker for developers

Project description

feels

A mood tracker for developers. Runs entirely in your terminal.

All data stays on your machine. No cloud. No accounts. No tracking.

Install

pip install feels

First run walks you through a quick setup. Then just type feels.

You can also use fls as a shorter alias — same thing.

Commands

Logging

feels log                        # log how you're feeling
feels log --yesterday            # log for yesterday
feels log --date DD-MM-YYYY      # log for a specific date

Viewing logs

feels logs                       # last 7 days
feels logs --all                 # everything
feels logs --oldest              # oldest first
feels logs --from DD-MM-YYYY     # from a date
feels logs --to DD-MM-YYYY       # up to a date
feels logs --project <name>      # filter by project

Visualizing

feels graph                      # monthly bar chart
feels graph --from MM            # specific month this year
feels graph --from MM-YYYY       # specific month and year

feels calendar                   # monthly calendar view
feels calendar --from MM-YYYY    # navigate to any month

Editing

feels edit <id>                  # edit an entry
feels delete <id>                # delete one or more entries

Projects

feels project add <name>         # add a project
feels project list               # list all projects
feels project delete <name>      # remove a project

Data

feels stats                      # view statistics
feels export --format json       # export as JSON
feels export --format csv        # export as CSV
feels reset                      # delete all data

Reminder

feels reminder                   # show reminder status
feels reminder set HH:MM         # set a daily reminder
feels reminder unset             # remove the reminder

The reminder opens your terminal running feels at the set time. Detects Ghostty, iTerm2, and Terminal.app automatically.

Other

feels config                     # update settings
feels help                       # all commands
feels                            # home screen

Configuration

On first run you choose your setup. Defaults are mood + asciimoji + note. You can optionally enable:

  • Focus score — 0–5, how locked in you were
  • Stress score — 0–5, lower is better
  • Projects — separate logs by what you're working on

Run feels config anytime to change these.

Data

Everything lives at ~/.feels/:

  • config.json — your settings
  • data.db — your entries (SQLite)

No internet required. Nothing leaves your machine.

Project structure

src/feels/
├── cli.py           # routing
├── config.py        # config management
├── database.py      # SQLite operations
├── utils.py         # colors, formatting, prompts
├── home.py          # home screen
├── add.py           # feels log
├── logs.py          # feels logs
├── edit.py          # feels edit
├── delete.py        # feels delete
├── graph_cmd.py     # feels graph
├── calendar_cmd.py  # feels calendar
├── stats_cmd.py     # feels stats
├── export_cmd.py    # feels export
├── reminder_cmd.py  # feels reminder
├── project_cmd.py   # feels project
├── config_cmd.py    # feels config
├── onboarding.py    # first-run setup
└── help_cmd.py      # feels help

License

MIT

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

feels-1.2.3.tar.gz (393.6 kB view details)

Uploaded Source

Built Distribution

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

feels-1.2.3-py3-none-any.whl (394.3 kB view details)

Uploaded Python 3

File details

Details for the file feels-1.2.3.tar.gz.

File metadata

  • Download URL: feels-1.2.3.tar.gz
  • Upload date:
  • Size: 393.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for feels-1.2.3.tar.gz
Algorithm Hash digest
SHA256 2583bf948f8c0ce73f4e0807b3dafa6b476aaf568fa8a9519b50019fa7d79cc8
MD5 8cc5012838a12f5fd771ee9f9375e283
BLAKE2b-256 9eb9cfe69761b734764d2e92729c69ae5e60ac3689a5f34fec017a58b9f3a71c

See more details on using hashes here.

File details

Details for the file feels-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: feels-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 394.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for feels-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fbb4eb7921bee2c8601815e0e4638d01f2e04461a372a220d70e8e62834fc9ab
MD5 b5b2c67e2ab756a48d3479ba11404c07
BLAKE2b-256 9c37ba4e2ee2956bb98c606dfe20798dd8b8c46dc164b4a8acd4085bb1f139cf

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