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-0.1.1.tar.gz (393.0 kB view details)

Uploaded Source

Built Distribution

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

feels-0.1.1-py3-none-any.whl (393.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for feels-0.1.1.tar.gz
Algorithm Hash digest
SHA256 75aea7f64980cbc5841dfbd374b1ac9ff31b8016f5173516397a76c78920fa8e
MD5 56503612a15c3162f458fe36fde43047
BLAKE2b-256 257df82f54205d4e171bc7bb508fe01b6f38deeb440e90466aea265022814e89

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for feels-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8a78ad52a39a21f37dc0134ab39ede2d4c4f1055811f13568e3544ca19d049a3
MD5 2a01526d238def77f72c96d0e48a65ab
BLAKE2b-256 ef1d1cf3ea39e3ba941dd640a525aff6150f2682273469961f5b7edf47938ef0

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